suffering (aka, a bunch of fixes)

This commit is contained in:
DeltaFire
2021-06-21 19:05:31 +02:00
parent 19e44efef1
commit c7a098da06
10 changed files with 143 additions and 47 deletions
@@ -292,7 +292,7 @@
switch(type)
if(1)
host_mob.investigate_log("[src] nanite program was deleted by software error.", INVESTIGATE_NANITES)
qdel(src) //kill switch
self_destruct() //kill switch
return
if(2) //deprogram codes
if(corruptable)
@@ -306,7 +306,7 @@
toggle() //enable/disable
host_mob.investigate_log("[src] nanite program was toggled by software error.", INVESTIGATE_NANITES)
if(4)
if(can_trigger)
if(error_flicking && can_trigger)
host_mob.investigate_log("[src] nanite program was triggered by software error.", INVESTIGATE_NANITES)
trigger()
if(5) //Program is scrambled and does something different
@@ -315,7 +315,7 @@
var/datum/nanite_program/rogue = new rogue_type
host_mob.investigate_log("[src] nanite program was converted into [rogue.name] by software error.", INVESTIGATE_NANITES)
nanites.add_program(null, rogue, src)
self_destruct(src)
self_destruct()
/datum/nanite_program/proc/receive_signal(code, source)
if(activation_code && code == activation_code && !activated)
@@ -87,8 +87,11 @@
addtimer(CALLBACK(src, .proc/boom), clamp((nanites.nanite_volume * 0.35), 25, 150))
/datum/nanite_program/explosive/proc/boom()
dyn_explosion(get_turf(host_mob), nanites.nanite_volume / 50)
qdel(nanites)
var/nanite_amount = nanites.nanite_volume
var/heavy_range = FLOOR(nanite_amount/100, 1) - 1
var/light_range = FLOOR(nanite_amount/50, 1) - 1
explosion(host_mob, 0, heavy_range, light_range)
nanites.delete_nanites()
//TODO make it defuse if triggered again