From 6c634b8654aabf49c465b3c8048ef877ddd7c4e5 Mon Sep 17 00:00:00 2001 From: TimChi <123629996+timchigaming@users.noreply.github.com> Date: Fri, 17 Jan 2025 23:26:22 +0300 Subject: [PATCH 1/3] working properly --- .gitignore | 2 ++ code/__DEFINES/_helpers.dm | 1 - code/modules/power/lighting.dm | 30 ++++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2de803a5dca..0a0cedc0107 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,5 @@ stddef.dm #Ignore cached sound files. /sound/tts_cache/**/* /sound/tts_scrambled/**/* +.vscode/launch.json +.gitignore diff --git a/code/__DEFINES/_helpers.dm b/code/__DEFINES/_helpers.dm index 5912feb1784..58660434fa6 100644 --- a/code/__DEFINES/_helpers.dm +++ b/code/__DEFINES/_helpers.dm @@ -25,4 +25,3 @@ /// A null statement to guard against EmptyBlock lint without necessitating the use of pass() /// Used to avoid proc-call overhead. But use sparingly. Probably pointless in most places. #define EMPTY_BLOCK_GUARD ; - diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index f74aa3bd023..44efd60ebdc 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -480,6 +480,36 @@ 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() + log_admin("LOG: [user.name] ([user.ckey]) sprayed [src] with [spraycan.name] at [AREACOORD(src)]") + return ATTACK_CHAIN_BLOCKED_ALL return ..() From b09705f6fa6b56427c83428b80f7fe543dd2f412 Mon Sep 17 00:00:00 2001 From: TimChi <123629996+timchigaming@users.noreply.github.com> Date: Mon, 20 Jan 2025 22:45:26 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D1=87=D1=82=D0=BE=20=D0=B7=D0=B0=20=D1=83?= =?UTF-8?q?=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=B2=D0=BE=D0=BB=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=D0=B0=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8=3F!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/__DEFINES/_helpers.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/__DEFINES/_helpers.dm b/code/__DEFINES/_helpers.dm index 58660434fa6..5912feb1784 100644 --- a/code/__DEFINES/_helpers.dm +++ b/code/__DEFINES/_helpers.dm @@ -25,3 +25,4 @@ /// A null statement to guard against EmptyBlock lint without necessitating the use of pass() /// Used to avoid proc-call overhead. But use sparingly. Probably pointless in most places. #define EMPTY_BLOCK_GUARD ; + From f8e057a2e81c662a874b2cc4a7d64c018f093fbb Mon Sep 17 00:00:00 2001 From: BeebBeebBoob Date: Sun, 2 Feb 2025 12:35:06 +0300 Subject: [PATCH 3/3] Update lighting.dm --- code/modules/power/lighting.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 44efd60ebdc..846cbb8713c 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -508,7 +508,6 @@ light_color = spraycan.colour playsound(src, 'sound/effects/spray.ogg', 50, TRUE) update() - log_admin("LOG: [user.name] ([user.ckey]) sprayed [src] with [spraycan.name] at [AREACOORD(src)]") return ATTACK_CHAIN_BLOCKED_ALL return ..()