/
githubmirror
/
vgstation13
Обзор
Документация
Войти
/
githubmirror
/
vgstation13
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
Bleeding-Edge
code/game/objects/items/devices/geiger.dm
46 строк
1 KB
Exxion
nameof (#34826)
03 авг 2023, 06:27
Не верифицирован
03 авг 2023, 06:27
81fecc2
Код
Авторство
О чём код?
#define COOLDOWN 1 SECONDS #define SOUND_COOLDOWN 5 SECONDS /obj/item/device/geiger_counter name = "geiger counter" desc = "A device used for detecting and measuring ambient radiation." icon_state = "geiger_counter" w_class = W_CLASS_SMALL origin_tech = Tc_ENGINEERING + "=3;" + Tc_MATERIALS + "=4" var/on = 0 var/last_call = 0 var/last_sound = 0 /obj/item/device/geiger_counter/New() ..() update_icon() /obj/item/device/geiger_counter/pickup(mob/user) user.register_event(/event/irradiate, src, nameof(src::measure_rad())) /obj/item/device/geiger_counter/dropped(mob/user) user.unregister_event(/event/irradiate, src, nameof(src::measure_rad())) /obj/item/device/geiger_counter/proc/measure_rad(mob/living/carbon/human/user, rads) if(on && world.time > last_call + COOLDOWN) to_chat(user, "<span class = 'notice'>Radiation detected.</span>") last_call = world.time spawn(5) if(user && on) to_chat(user, "<span class = 'soghun'>Radiation dosage: [rads] rads.</span>") if(world.time > last_sound + SOUND_COOLDOWN) playsound(src, 'sound/items/geiger_strong.ogg', 50) last_sound = world.time /obj/item/device/geiger_counter/attack_self(mob/user) on = !on update_icon() /obj/item/device/geiger_counter/update_icon() icon_state = initial(icon_state)+"[on]" #undef COOLDOWN #undef SOUND_COOLDOWN