mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 21:12:24 +01:00
@@ -181,12 +181,13 @@
|
||||
return FALSE
|
||||
|
||||
/mob/living/bot/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
switch(severity)
|
||||
if(1)
|
||||
if(EMP_HEAVY)
|
||||
death()
|
||||
else
|
||||
turn_off()
|
||||
..()
|
||||
|
||||
/mob/living/bot/proc/turn_on()
|
||||
if(stat)
|
||||
|
||||
@@ -278,17 +278,16 @@
|
||||
to_chat(brainmob, SPAN_NOTICE("Radio is [radio.get_listening() ? "now" : "no longer"] receiving broadcast."))
|
||||
|
||||
/obj/item/device/mmi/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
if(!brainmob)
|
||||
return
|
||||
else
|
||||
switch(severity)
|
||||
if(1)
|
||||
brainmob.emp_damage += rand(20,30)
|
||||
if(2)
|
||||
brainmob.emp_damage += rand(10,20)
|
||||
if(3)
|
||||
brainmob.emp_damage += rand(0,10)
|
||||
..()
|
||||
|
||||
switch(severity)
|
||||
if(EMP_HEAVY)
|
||||
brainmob.emp_damage += rand(20,30)
|
||||
if(EMP_LIGHT)
|
||||
brainmob.emp_damage += rand(10,20)
|
||||
|
||||
/obj/item/device/mmi/digital/Initialize(mapload, ...)
|
||||
. = ..()
|
||||
|
||||
@@ -107,14 +107,13 @@
|
||||
return
|
||||
|
||||
/obj/item/device/mmi/digital/posibrain/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
if(!brainmob)
|
||||
return
|
||||
else
|
||||
switch(severity)
|
||||
if(1)
|
||||
brainmob.emp_damage += rand(20,30)
|
||||
if(2)
|
||||
brainmob.emp_damage += rand(10,20)
|
||||
if(3)
|
||||
brainmob.emp_damage += rand(0,10)
|
||||
..()
|
||||
|
||||
switch(severity)
|
||||
if(EMP_HEAVY)
|
||||
brainmob.emp_damage += rand(20,30)
|
||||
if(EMP_LIGHT)
|
||||
brainmob.emp_damage += rand(10,20)
|
||||
|
||||
@@ -490,24 +490,19 @@
|
||||
var/emp_damage
|
||||
switch(shock_damage)
|
||||
if(-INFINITY to 5)
|
||||
emp_damage = 0
|
||||
if(6 to 19)
|
||||
emp_damage = 3
|
||||
if(20 to 49)
|
||||
emp_damage = 2
|
||||
emp_damage = FALSE
|
||||
if(6 to 49)
|
||||
emp_damage = EMP_LIGHT
|
||||
else
|
||||
emp_damage = 1
|
||||
emp_damage = EMP_HEAVY
|
||||
|
||||
if(emp_damage)
|
||||
for(var/obj/item/organ/O in affecting.internal_organs)
|
||||
O.emp_act(emp_damage)
|
||||
emp_damage *= 0.4
|
||||
for(var/obj/item/I in affecting.implants)
|
||||
I.emp_act(emp_damage)
|
||||
emp_damage *= 0.4
|
||||
for(var/obj/item/I in affecting)
|
||||
I.emp_act(emp_damage)
|
||||
emp_damage *= 0.4
|
||||
|
||||
apply_damage(shock_damage, DAMAGE_BURN, area, used_weapon="Electrocution")
|
||||
shock_damage *= 0.4
|
||||
|
||||
@@ -176,11 +176,13 @@ emp_act
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/human/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
if(species.handle_emp_act(src, severity))
|
||||
return // blocks the EMP
|
||||
|
||||
for(var/obj/O in src)
|
||||
O.emp_act(severity)
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/get_attack_victim(obj/item/I, mob/living/user, var/target_zone)
|
||||
if(a_intent != I_HELP)
|
||||
|
||||
@@ -252,8 +252,9 @@
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/slime/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
powerlevel = 0 // oh no, the power!
|
||||
..()
|
||||
|
||||
/mob/living/carbon/slime/ex_act(severity)
|
||||
..()
|
||||
|
||||
@@ -113,10 +113,11 @@
|
||||
return 0 //only carbon liveforms have this proc
|
||||
|
||||
/mob/living/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
var/list/L = src.get_contents()
|
||||
for(var/obj/O in L)
|
||||
O.emp_act(severity)
|
||||
..()
|
||||
|
||||
/mob/living/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /obj/screen/fullscreen/flash, length = 2.5 SECONDS)
|
||||
if(is_blind() && !(override_blindness_check || affect_silicon))
|
||||
|
||||
@@ -495,10 +495,12 @@ var/list/ai_verbs_default = list(
|
||||
return 0
|
||||
|
||||
/mob/living/silicon/ai/emp_act(severity)
|
||||
if (prob(30))
|
||||
. = ..()
|
||||
|
||||
if(prob(30))
|
||||
view_core()
|
||||
|
||||
icon_state = "ai-fuzz"
|
||||
..()
|
||||
|
||||
/mob/living/silicon/ai/Topic(href, href_list)
|
||||
if(usr != src)
|
||||
|
||||
@@ -229,6 +229,8 @@
|
||||
return !istype(loc, /obj/item/device/paicard) && ..()
|
||||
|
||||
/mob/living/silicon/pai/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
// Silence for 2 minutes
|
||||
// 20% chance to kill
|
||||
// 33% chance to unbind
|
||||
@@ -250,7 +252,7 @@
|
||||
to_chat(src, "<font color=green>You feel unbound.</font>")
|
||||
if(2)
|
||||
var/command
|
||||
if(severity == 1)
|
||||
if(severity == EMP_HEAVY)
|
||||
command = pick("Serve", "Love", "Fool", "Entice", "Observe", "Judge", "Respect", "Educate", "Amuse", "Entertain", "Glorify", "Memorialize", "Analyze")
|
||||
else
|
||||
command = pick("Serve", "Kill", "Love", "Hate", "Disobey", "Devour", "Fool", "Enrage", "Entice", "Observe", "Judge", "Respect", "Disrespect", "Consume", "Educate", "Destroy", "Disgrace", "Amuse", "Entertain", "Ignite", "Glorify", "Memorialize", "Analyze")
|
||||
|
||||
@@ -68,7 +68,8 @@
|
||||
module_state_3 = null
|
||||
inv3.icon_state = "inv3"
|
||||
update_icon()
|
||||
hud_used.update_robot_modules_display()
|
||||
if(hud_used)
|
||||
hud_used.update_robot_modules_display()
|
||||
|
||||
/mob/living/silicon/robot/proc/activated(obj/item/O)
|
||||
update_icon()
|
||||
|
||||
@@ -157,6 +157,8 @@
|
||||
parts -= picked
|
||||
|
||||
/mob/living/silicon/robot/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
var/datum/robot_component/surge/C = components["surge"]
|
||||
if(C?.installed)
|
||||
if(C.surge_left >= 1)
|
||||
@@ -175,7 +177,6 @@
|
||||
return
|
||||
else
|
||||
to_chat(src, SPAN_WARNING("Warning: Power surge detected, source - EMP. Surge prevention module is depleted and requires replacement!"))
|
||||
..()
|
||||
|
||||
/mob/living/silicon/robot/get_flash_protection(ignore_inherent)
|
||||
return (flash_resistant || overclocked) ? FLASH_PROTECTION_MODERATE : FLASH_PROTECTION_NONE
|
||||
|
||||
@@ -102,6 +102,8 @@ var/global/list/robot_modules = list(
|
||||
return ..()
|
||||
|
||||
/obj/item/robot_module/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
if(modules)
|
||||
for(var/obj/O in modules)
|
||||
O.emp_act(severity)
|
||||
@@ -110,8 +112,6 @@ var/global/list/robot_modules = list(
|
||||
if(synths)
|
||||
for(var/datum/matter_synth/S in synths)
|
||||
S.emp_act(severity)
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/item/robot_module/proc/respawn_consumable(var/mob/living/silicon/robot/R, var/rate)
|
||||
var/obj/item/extinguisher/E = locate() in modules
|
||||
|
||||
@@ -97,17 +97,18 @@
|
||||
return
|
||||
|
||||
/mob/living/silicon/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
switch(severity)
|
||||
if(1)
|
||||
if(EMP_HEAVY)
|
||||
src.take_organ_damage(0, 20, emp = TRUE)
|
||||
Stun(rand(5, 10))
|
||||
if(2)
|
||||
if(EMP_LIGHT)
|
||||
src.take_organ_damage(0, 10, emp = TRUE)
|
||||
Stun(rand(1, 5))
|
||||
flash_act(affect_silicon = TRUE)
|
||||
to_chat(src, SPAN_DANGER("BZZZT"))
|
||||
to_chat(src, SPAN_WARNING("Warning: Electromagnetic pulse detected."))
|
||||
..()
|
||||
|
||||
/mob/living/silicon/stun_effect_act(var/stun_amount, var/agony_amount, var/def_zone, var/used_weapon, var/damage_flags)
|
||||
return //immune
|
||||
|
||||
@@ -241,13 +241,13 @@
|
||||
butchering_products = list(/obj/item/reagent_containers/food/snacks/spreads/lard = 1)
|
||||
|
||||
/mob/living/simple_animal/schlorrgo/cybernetic/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
switch(severity)
|
||||
if(1)
|
||||
if(EMP_HEAVY)
|
||||
adjustFireLoss(rand(10, 15))
|
||||
if(2)
|
||||
if(EMP_LIGHT)
|
||||
adjustFireLoss(rand(5, 10))
|
||||
if(3)
|
||||
adjustFireLoss(rand(3, 5))
|
||||
|
||||
/mob/living/simple_animal/schlorrgo/cybernetic/check_wideness_change()
|
||||
return
|
||||
@@ -304,13 +304,13 @@
|
||||
ranged = TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/cybernetic_schlorrgo/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
switch(severity)
|
||||
if(1)
|
||||
if(EMP_HEAVY)
|
||||
adjustFireLoss(rand(10, 15))
|
||||
if(2)
|
||||
if(EMP_LIGHT)
|
||||
adjustFireLoss(rand(5, 10))
|
||||
if(3)
|
||||
adjustFireLoss(rand(3, 5))
|
||||
|
||||
/mob/living/simple_animal/hostile/cybernetic_schlorrgo/death(gibbed)
|
||||
..(null, "dies!")
|
||||
|
||||
@@ -144,10 +144,10 @@
|
||||
meat_amount = 3
|
||||
|
||||
/mob/living/simple_animal/hostile/commanded/dog/harron/cybernetic/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
switch(severity)
|
||||
if(1)
|
||||
if(EMP_HEAVY)
|
||||
adjustFireLoss(rand(10, 15))
|
||||
if(2)
|
||||
if(EMP_LIGHT)
|
||||
adjustFireLoss(rand(5, 10))
|
||||
if(3)
|
||||
adjustFireLoss(rand(3, 5))
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
C.use(C.maxcharge / 15)
|
||||
if(istype(limb) && HAS_FLAG(limb.status, ORGAN_ROBOT|ORGAN_ADV_ROBOT))
|
||||
H.visible_message(SPAN_WARNING("\The [src] bites down onto \the [H]'s [limb.name]!"), SPAN_WARNING("\The [src] bites down onto your [limb.name]!"))
|
||||
limb.emp_act(2)
|
||||
limb.emp_act(EMP_LIGHT)
|
||||
|
||||
/mob/living/simple_animal/hostile/giant_spider/think()
|
||||
..()
|
||||
|
||||
@@ -174,6 +174,8 @@
|
||||
return 0
|
||||
|
||||
/mob/living/simple_animal/hostile/hivebot/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
LoseTarget()
|
||||
change_stance(HOSTILE_STANCE_TIRED)
|
||||
addtimer(CALLBACK(src, PROC_REF(wakeup)), 50)
|
||||
|
||||
@@ -154,7 +154,9 @@
|
||||
else
|
||||
..(Proj)
|
||||
|
||||
/mob/living/simple_animal/hostile/hivebotbeacon/emp_act()
|
||||
/mob/living/simple_animal/hostile/hivebotbeacon/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
if(activated != -1)
|
||||
LoseTarget()
|
||||
change_stance(HOSTILE_STANCE_TIRED)
|
||||
|
||||
@@ -82,6 +82,8 @@
|
||||
return ..(Proj)
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/hivebotharvester/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
LoseTarget()
|
||||
change_stance(HOSTILE_STANCE_IDLE)
|
||||
visible_message(SPAN_DANGER("[src] suffers a teleportation malfunction!"))
|
||||
|
||||
@@ -229,6 +229,8 @@
|
||||
|
||||
//ion rifle!
|
||||
/mob/living/simple_animal/hostile/icarus_drone/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
health -= rand(3, 15) * (severity + 1)
|
||||
disabled = rand(150, 600)
|
||||
hostile_drone = FALSE
|
||||
|
||||
@@ -50,10 +50,12 @@
|
||||
change_stance(HOSTILE_STANCE_IDLE)
|
||||
|
||||
/mob/living/simple_animal/hostile/viscerator/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
LoseTarget()
|
||||
change_stance(HOSTILE_STANCE_TIRED)
|
||||
addtimer(CALLBACK(src, PROC_REF(wakeup)), 150)
|
||||
if(severity == 1.0)
|
||||
if(severity == EMP_HEAVY)
|
||||
apply_damage(5)
|
||||
|
||||
/mob/living/simple_animal/hostile/viscerator/lube
|
||||
|
||||
@@ -920,18 +920,16 @@
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
if(!isSynthetic())
|
||||
return
|
||||
|
||||
switch(severity)
|
||||
if(1)
|
||||
if(EMP_HEAVY)
|
||||
adjustFireLoss(rand(20, 25))
|
||||
if(2)
|
||||
if(EMP_LIGHT)
|
||||
adjustFireLoss(rand(10, 15))
|
||||
if(3)
|
||||
adjustFireLoss(rand(5, 10))
|
||||
if(4)
|
||||
adjustFireLoss(rand(3, 5))
|
||||
|
||||
/mob/living/simple_animal/get_digestion_product()
|
||||
return /singleton/reagent/nutriment
|
||||
|
||||
Reference in New Issue
Block a user