Skip to content

Commit

Permalink
add: Light frame coloring (#6381)
Browse files Browse the repository at this point in the history
* working properly

* что за удаление символа переноса строки?!

* Update lighting.dm

---------

Co-authored-by: BeebBeebBoob <beebbeebboob@mail.ru>
  • Loading branch information
timchigaming and BeebBeebBoob authored Feb 2, 2025
1 parent 8e35d68 commit 6c5e69d
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,5 @@ stddef.dm
#Ignore cached sound files.
/sound/tts_cache/**/*
/sound/tts_scrambled/**/*
.vscode/launch.json
.gitignore
29 changes: 29 additions & 0 deletions code/modules/power/lighting.dm
Original file line number Diff line number Diff line change
Expand Up @@ -480,6 +480,35 @@
explode()
return ATTACK_CHAIN_BLOCKED_ALL

if(istype(I, /obj/item/toy/crayon/spraycan))
add_fingerprint(user)
var/obj/item/toy/crayon/spraycan/spraycan = I
if(spraycan.colour == light_color)
return ATTACK_CHAIN_BLOCKED_ALL
/* Реализация проверки цвета, который был выбран в распылителе
Если цвет слишком тёмный, то return */
var/r = hex2num(copytext(spraycan.colour, 2, 4))
var/g = hex2num(copytext(spraycan.colour, 4, 6))
var/b = hex2num(copytext(spraycan.colour, 6, 8))

var/brightness = (0.299 * r + 0.587 * g + 0.114 * b) // Формула для определения яркости цвета(Да, магические числа)
if(brightness < 100) // Порог яркости
to_chat(user, span_warning("Выбранный цвет слишком тёмный для того чтоб он мог пропускать свет!"))
return ATTACK_CHAIN_BLOCKED_ALL
var/min_rgb = min(r, g, b)
var/max_rgb = max(r, g, b)
var/saturation = (max_rgb - min_rgb) / max_rgb
if(saturation > 0.8) // Максимально допустимая насыщенность
to_chat(user, span_warning("Цвет слишком насыщенный для освещения!"))
return ATTACK_CHAIN_BLOCKED_ALL
/* Конец проверки цвета */
to_chat(user, span_warning("Вы покрасили [src] при помощи [spraycan.name]!"))
spraycan.uses--
color = spraycan.colour
light_color = spraycan.colour
playsound(src, 'sound/effects/spray.ogg', 50, TRUE)
update()
return ATTACK_CHAIN_BLOCKED_ALL
return ..()


Expand Down

0 comments on commit 6c5e69d

Please sign in to comment.