mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-26 10:12:17 +00:00
the-figment-that-was-is-now-gone
This commit is contained in:
@@ -99,5 +99,6 @@
|
||||
|
||||
/obj/effect/dummy/spell_jaunt/ex_act(blah)
|
||||
return
|
||||
|
||||
/obj/effect/dummy/spell_jaunt/bullet_act(blah)
|
||||
return
|
||||
@@ -286,35 +286,18 @@
|
||||
src.occupant.forceMove(src.loc)
|
||||
src.occupant = null
|
||||
src.icon_state = "scanner_open"
|
||||
return
|
||||
|
||||
/obj/machinery/dna_scannernew/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
ex_act(severity)
|
||||
//Foreach goto(35)
|
||||
//SN src = null
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
ex_act(severity)
|
||||
//Foreach goto(108)
|
||||
//SN src = null
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
ex_act(severity)
|
||||
//Foreach goto(181)
|
||||
//SN src = null
|
||||
qdel(src)
|
||||
if(occupant)
|
||||
occupant.ex_act(severity)
|
||||
..()
|
||||
|
||||
/obj/machinery/dna_scannernew/handle_atom_del(atom/A)
|
||||
..()
|
||||
if(A == occupant)
|
||||
occupant = null
|
||||
updateUsrDialog()
|
||||
update_icon()
|
||||
|
||||
// Checks if occupants can be irradiated/mutated - prevents exploits where wearing full rad protection would still let you gain mutations
|
||||
/obj/machinery/dna_scannernew/proc/radiation_check()
|
||||
@@ -371,18 +354,6 @@
|
||||
return
|
||||
else
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/scan_consolenew/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
//SN src = null
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
//SN src = null
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/computer/scan_consolenew/New()
|
||||
..()
|
||||
|
||||
@@ -46,6 +46,10 @@
|
||||
GLOB.poi_list.Remove(src)
|
||||
return ..()
|
||||
|
||||
/obj/structure/blob/core/ex_act(severity)
|
||||
var/damage = 50 - 10 * severity //remember, the core takes half brute damage, so this is 20/15/10 damage based on severity
|
||||
take_damage(damage, BRUTE, "bomb", 0)
|
||||
|
||||
/obj/structure/blob/core/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, overmind_reagent_trigger = 1)
|
||||
. = ..()
|
||||
if(obj_integrity > 0)
|
||||
|
||||
@@ -129,18 +129,13 @@
|
||||
A.blob_act(src)
|
||||
return 1
|
||||
|
||||
/obj/structure/blob/ex_act(severity)
|
||||
..()
|
||||
var/damage = 150 - 20 * severity
|
||||
take_damage(damage, BRUTE)
|
||||
|
||||
/obj/structure/blob/Crossed(var/mob/living/L, oldloc)
|
||||
..()
|
||||
L.blob_act(src)
|
||||
|
||||
/obj/structure/blob/tesla_act(power)
|
||||
..()
|
||||
take_damage(power/400, BURN)
|
||||
take_damage(power / 400, BURN, "energy")
|
||||
|
||||
/obj/structure/blob/hulk_damage()
|
||||
return 15
|
||||
|
||||
@@ -201,6 +201,18 @@
|
||||
add_fingerprint(user)
|
||||
qdel(G)
|
||||
|
||||
/obj/machinery/abductor/experiment/ex_act(severity)
|
||||
if(occupant)
|
||||
occupant.ex_act(severity)
|
||||
..()
|
||||
|
||||
/obj/machinery/abductor/experiment/handle_atom_del(atom/A)
|
||||
..()
|
||||
if(A == occupant)
|
||||
occupant = null
|
||||
updateUsrDialog()
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/abductor/experiment/proc/eject_abductee()
|
||||
if(!occupant)
|
||||
return
|
||||
|
||||
@@ -516,17 +516,6 @@
|
||||
spawn(5)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/swarmer/attackby(obj/item/I, mob/living/user, params)
|
||||
if(istype(I, /obj/item))
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(src)
|
||||
take_damage(I.force)
|
||||
return
|
||||
|
||||
/obj/structure/swarmer/ex_act()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/structure/swarmer/emp_act()
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -333,9 +333,6 @@ var/bomb_set
|
||||
|
||||
SSnanoui.update_uis(src)
|
||||
|
||||
/obj/machinery/nuclearbomb/ex_act(severity)
|
||||
return
|
||||
|
||||
/obj/machinery/nuclearbomb/blob_act(obj/structure/blob/B)
|
||||
if(timing == -1.0)
|
||||
return
|
||||
|
||||
@@ -35,21 +35,6 @@
|
||||
victim = null
|
||||
return ..()
|
||||
|
||||
/obj/machinery/optable/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
//SN src = null
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
//SN src = null
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
src.density = 0
|
||||
|
||||
/obj/machinery/optable/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
..(user, TRUE)
|
||||
|
||||
@@ -43,6 +43,21 @@
|
||||
QDEL_NULL(storedpda)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/pdapainter/on_deconstruction()
|
||||
if(storedpda)
|
||||
storedpda.forceMove(loc)
|
||||
storedpda = null
|
||||
|
||||
/obj/machinery/pdapainter/ex_act(severity)
|
||||
if(storedpda)
|
||||
storedpda.ex_act(severity)
|
||||
..()
|
||||
|
||||
/obj/machinery/pdapainter/handle_atom_del(atom/A)
|
||||
if(A == storedpda)
|
||||
storedpda = null
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/pdapainter/attackby(obj/item/I, mob/user, params)
|
||||
if(default_unfasten_wrench(user, I))
|
||||
power_change()
|
||||
|
||||
@@ -346,27 +346,7 @@
|
||||
/obj/machinery/sleeper/ex_act(severity)
|
||||
if(filtering)
|
||||
toggle_filter()
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/machinery/sleeper/emp_act(severity)
|
||||
if(filtering)
|
||||
|
||||
@@ -172,26 +172,16 @@
|
||||
A.forceMove(loc)
|
||||
|
||||
/obj/machinery/bodyscanner/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
for(var/atom/movable/A in src)
|
||||
A.forceMove(loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(2)
|
||||
if(prob(50))
|
||||
for(var/atom/movable/A in src)
|
||||
A.forceMove(loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(3)
|
||||
if(prob(25))
|
||||
for(var/atom/movable/A in src)
|
||||
A.forceMove(loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
if(occupant)
|
||||
occupant.ex_act(severity)
|
||||
..()
|
||||
|
||||
/obj/machinery/bodyscanner/handle_atom_del(atom/A)
|
||||
..()
|
||||
if(A == occupant)
|
||||
occupant = null
|
||||
updateUsrDialog()
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/bodyscanner/narsie_act()
|
||||
go_out()
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/camera/obj_break(damage_flag)
|
||||
if(status)
|
||||
if(status && !(flags & NODECONSTRUCT))
|
||||
triggerCameraAlarm()
|
||||
toggle_cam(null, FALSE)
|
||||
wires.CutAll()
|
||||
|
||||
@@ -538,29 +538,14 @@
|
||||
..()
|
||||
|
||||
/obj/machinery/clonepod/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
return
|
||||
..()
|
||||
if(!QDELETED(src) && occupant)
|
||||
go_out()
|
||||
|
||||
/obj/machinery/clonepod/handle_atom_del(atom/A)
|
||||
if(A == occupant)
|
||||
occupant = null
|
||||
countdown.stop()
|
||||
|
||||
/obj/machinery/clonepod/deconstruct(disassembled = TRUE)
|
||||
if(occupant)
|
||||
|
||||
@@ -347,7 +347,7 @@
|
||||
// HOLOFLOOR DOES NOT GIVE A FUCK
|
||||
|
||||
/obj/structure/table/holotable
|
||||
can_deconstruct = FALSE
|
||||
flags = NODECONSTRUCT
|
||||
canSmoothWith = list(/obj/structure/table/holotable)
|
||||
|
||||
/obj/structure/table/holotable/wood
|
||||
@@ -375,7 +375,7 @@
|
||||
flags = ON_BORDER
|
||||
|
||||
/obj/structure/rack/holorack
|
||||
can_deconstruct = FALSE
|
||||
flags = NODECONSTRUCT
|
||||
|
||||
/obj/item/holo
|
||||
damtype = STAMINA
|
||||
|
||||
@@ -30,31 +30,6 @@
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/obj/machinery/computer/emp_act(severity)
|
||||
if(prob(20/severity)) set_broken()
|
||||
..()
|
||||
|
||||
|
||||
/obj/machinery/computer/ex_act(severity)
|
||||
if(!(resistance_flags & INDESTRUCTIBLE))
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(25))
|
||||
qdel(src)
|
||||
return
|
||||
if(prob(50))
|
||||
for(var/x in verbs)
|
||||
verbs -= x
|
||||
set_broken()
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
for(var/x in verbs)
|
||||
verbs -= x
|
||||
set_broken()
|
||||
|
||||
/obj/machinery/computer/extinguish_light()
|
||||
set_light(0)
|
||||
visible_message("<span class='danger'>[src] grows dim, its screen barely readable.</span>")
|
||||
|
||||
@@ -73,15 +73,31 @@
|
||||
break
|
||||
|
||||
/obj/machinery/atmospherics/unary/cryo_cell/Destroy()
|
||||
var/turf/T = get_turf(src)
|
||||
if(istype(T))
|
||||
T.contents += contents
|
||||
var/obj/item/reagent_containers/glass/B = beaker
|
||||
if(beaker)
|
||||
B.forceMove(get_step(T, SOUTH)) //Beaker is carefully ejected from the wreckage of the cryotube
|
||||
beaker = null
|
||||
QDEL_NULL(beaker)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/atmospherics/unary/cryo_cell/ex_act(severity)
|
||||
if(occupant)
|
||||
occupant.ex_act(severity)
|
||||
if(beaker)
|
||||
beaker.ex_act(severity)
|
||||
..()
|
||||
|
||||
/obj/machinery/atmospherics/unary/cryo_cell/handle_atom_del(atom/A)
|
||||
..()
|
||||
if(A == beaker)
|
||||
beaker = null
|
||||
updateUsrDialog()
|
||||
if(A == occupant)
|
||||
occupant = null
|
||||
updateUsrDialog()
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/atmospherics/unary/cryo_cell/on_deconstruction()
|
||||
if(beaker)
|
||||
beaker.forceMove(drop_location())
|
||||
beaker = null
|
||||
|
||||
/obj/machinery/atmospherics/unary/cryo_cell/MouseDrop_T(atom/movable/O as mob|obj, mob/living/user as mob)
|
||||
if(O.loc == user) //no you can't pull things out of your ass
|
||||
return
|
||||
|
||||
@@ -1278,7 +1278,7 @@ About the new airlock wires panel:
|
||||
safe = TRUE
|
||||
|
||||
/obj/machinery/door/airlock/obj_break(damage_flag)
|
||||
if(!(flags & BROKEN) && can_deconstruct)
|
||||
if(!(flags & BROKEN) && !(flags & NODECONSTRUCT))
|
||||
stat |= BROKEN
|
||||
if(!panel_open)
|
||||
panel_open = TRUE
|
||||
|
||||
@@ -372,5 +372,10 @@
|
||||
if(!stat) //Opens only powered doors.
|
||||
open() //Open everything!
|
||||
|
||||
/obj/machinery/door/ex_act(severity)
|
||||
//if it blows up a wall it should blow up a door
|
||||
..(severity ? max(1, severity - 1) : 0)
|
||||
|
||||
|
||||
/obj/machinery/door/GetExplosionBlock()
|
||||
return density ? real_explosion_block : 0
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
return 0
|
||||
|
||||
//"BLAST" doors are obviously stronger than regular doors when it comes to BLASTS.
|
||||
/obj/machinery/door/poddoor/ex_act(severity, target)
|
||||
/obj/machinery/door/poddoor/ex_act(severity)
|
||||
if(severity == 3)
|
||||
return
|
||||
..()
|
||||
|
||||
@@ -233,7 +233,7 @@
|
||||
|
||||
add_fingerprint(user)
|
||||
|
||||
if(can_deconstruct)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
if(isscrewdriver(I))
|
||||
if(density || operating)
|
||||
to_chat(user, "<span class='warning'>You need to open the door to access the maintenance panel!</span>")
|
||||
|
||||
@@ -27,20 +27,6 @@
|
||||
stat |= NOPOWER
|
||||
set_light(0)
|
||||
|
||||
/obj/machinery/dye_generator/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
stat |= BROKEN
|
||||
icon_state = "[initial(icon_state)]-broken"
|
||||
|
||||
/obj/machinery/dye_generator/attack_hand(mob/user)
|
||||
..()
|
||||
src.add_fingerprint(user)
|
||||
|
||||
@@ -87,6 +87,11 @@ var/list/holopads = list()
|
||||
if(outgoing_call)
|
||||
outgoing_call.ConnectionFailure(src)
|
||||
|
||||
/obj/machinery/hologram/holopad/obj_break()
|
||||
. = ..()
|
||||
if(outgoing_call)
|
||||
outgoing_call.ConnectionFailure(src)
|
||||
|
||||
/obj/machinery/hologram/holopad/RefreshParts()
|
||||
var/holograph_range = 4
|
||||
for(var/obj/item/stock_parts/capacitor/B in component_parts)
|
||||
|
||||
@@ -176,20 +176,6 @@ Class Procs:
|
||||
new /obj/effect/temp_visual/emp(loc)
|
||||
..()
|
||||
|
||||
/obj/machinery/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
qdel(src)
|
||||
|
||||
|
||||
//sets the use_power var and then forces an area power update
|
||||
/obj/machinery/proc/update_use_power(var/new_use_power)
|
||||
use_power = new_use_power
|
||||
@@ -385,7 +371,7 @@ Class Procs:
|
||||
gl_uid++
|
||||
|
||||
/obj/machinery/proc/default_deconstruction_crowbar(var/obj/item/crowbar/C, var/ignore_panel = 0)
|
||||
if(istype(C) && (panel_open || ignore_panel))
|
||||
if(istype(C) && (panel_open || ignore_panel) && !(flags & NODECONSTRUCT))
|
||||
playsound(loc, C.usesound, 50, 1)
|
||||
deconstruct(TRUE)
|
||||
return 1
|
||||
@@ -416,7 +402,7 @@ Class Procs:
|
||||
stat |= BROKEN
|
||||
|
||||
/obj/machinery/proc/default_deconstruction_screwdriver(var/mob/user, var/icon_state_open, var/icon_state_closed, var/obj/item/screwdriver/S)
|
||||
if(istype(S))
|
||||
if(!(flags & NODECONSTRUCT) && istype(S))
|
||||
playsound(loc, S.usesound, 50, 1)
|
||||
if(!panel_open)
|
||||
panel_open = 1
|
||||
@@ -438,7 +424,7 @@ Class Procs:
|
||||
return 0
|
||||
|
||||
/obj/proc/default_unfasten_wrench(mob/user, obj/item/wrench/W, time = 20)
|
||||
if(istype(W))
|
||||
if(!(flags & NODECONSTRUCT) && istype(W))
|
||||
to_chat(user, "<span class='notice'>Now [anchored ? "un" : ""]securing [name].</span>")
|
||||
playsound(loc, W.usesound, 50, 1)
|
||||
if(do_after(user, time * W.toolspeed, target = src))
|
||||
@@ -453,6 +439,8 @@ Class Procs:
|
||||
|
||||
/obj/machinery/proc/exchange_parts(mob/user, obj/item/storage/part_replacer/W)
|
||||
var/shouldplaysound = 0
|
||||
if((flags & NODECONSTRUCT))
|
||||
return FALSE
|
||||
if(istype(W) && component_parts)
|
||||
if(panel_open || W.works_from_distance)
|
||||
var/obj/item/circuitboard/CB = locate(/obj/item/circuitboard) in component_parts
|
||||
|
||||
@@ -163,22 +163,6 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/newscaster/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
return
|
||||
if(2)
|
||||
stat |= BROKEN
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
else
|
||||
update_icon() //can't place it above the return and outside the if-else. or we might get runtimes of null.update_icon() if(prob(50)) goes in.
|
||||
else
|
||||
if(prob(50))
|
||||
stat |= BROKEN
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/newscaster/attack_ghost(mob/user)
|
||||
ui_interact(user)
|
||||
|
||||
|
||||
@@ -63,26 +63,16 @@
|
||||
return 1
|
||||
|
||||
/obj/machinery/recharge_station/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
if(occupant)
|
||||
occupant.ex_act(severity)
|
||||
..()
|
||||
|
||||
/obj/machinery/recharge_station/handle_atom_del(atom/A)
|
||||
..()
|
||||
if(A == occupant)
|
||||
occupant = null
|
||||
updateUsrDialog()
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/recharge_station/narsie_act()
|
||||
go_out()
|
||||
|
||||
@@ -37,6 +37,14 @@
|
||||
if(.)
|
||||
payload.detonate()
|
||||
|
||||
/obj/machinery/syndicatebomb/obj_break()
|
||||
if(!try_detonate())
|
||||
..()
|
||||
|
||||
/obj/machinery/syndicatebomb/obj_destruction()
|
||||
if(!try_detonate())
|
||||
..()
|
||||
|
||||
/obj/machinery/syndicatebomb/process()
|
||||
if(!active)
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
maint_access = 0
|
||||
damage_absorption = list("brute"=0.7,"fire"=1,"bullet"=0.7,"laser"=0.85,"energy"=1,"bomb"=0.8)
|
||||
armor = list(melee = 30, bullet = 30, laser = 15, energy = 20, bomb = 20, bio = 0, rad = 0, fire = 100, acid = 100)
|
||||
destruction_sleep_duration = 2
|
||||
var/am = "d3c2fbcadca903a41161ccc9df9cf948"
|
||||
|
||||
/obj/mecha/combat/moved_inside(var/mob/living/carbon/human/H as mob)
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
max_equip = 4
|
||||
maxsize = 2
|
||||
starting_voice = /obj/item/mecha_modkit/voice/syndicate
|
||||
destruction_sleep_duration = 1
|
||||
|
||||
/obj/mecha/combat/gygax/dark/loaded/New()
|
||||
..()
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
force = 45
|
||||
max_equip = 5
|
||||
starting_voice = /obj/item/mecha_modkit/voice/nanotrasen
|
||||
destruction_sleep_duration = 1
|
||||
|
||||
/obj/mecha/combat/marauder/GrantActions(mob/living/user, human_occupant = 0)
|
||||
. = ..()
|
||||
|
||||
@@ -82,6 +82,8 @@
|
||||
var/activated = FALSE
|
||||
var/power_warned = FALSE
|
||||
|
||||
var/destruction_sleep_duration = 1 //Time that mech pilot is put to sleep for if mech is destroyed
|
||||
|
||||
var/melee_cooldown = 10
|
||||
var/melee_can_hit = 1
|
||||
|
||||
@@ -620,6 +622,8 @@
|
||||
|
||||
|
||||
/obj/mecha/Destroy()
|
||||
if(occupant)
|
||||
occupant.SetSleeping(destruction_sleep_duration)
|
||||
go_out()
|
||||
for(var/mob/M in src) //Let's just be ultra sure
|
||||
if(isAI(M))
|
||||
@@ -627,36 +631,15 @@
|
||||
else
|
||||
M.forceMove(loc)
|
||||
|
||||
if(prob(30))
|
||||
explosion(get_turf(loc), 0, 0, 1, 3)
|
||||
|
||||
if(wreckage)
|
||||
var/obj/effect/decal/mecha_wreckage/WR = new wreckage(loc)
|
||||
for(var/obj/item/mecha_parts/mecha_equipment/E in equipment)
|
||||
if(E.salvageable && prob(30))
|
||||
WR.crowbar_salvage += E
|
||||
E.forceMove(WR)
|
||||
E.equip_ready = 1
|
||||
else
|
||||
E.forceMove(loc)
|
||||
E.detach(loc)
|
||||
qdel(E)
|
||||
if(cell)
|
||||
WR.crowbar_salvage += cell
|
||||
cell.forceMove(WR)
|
||||
cell.charge = rand(0, cell.charge)
|
||||
if(internal_tank)
|
||||
WR.crowbar_salvage += internal_tank
|
||||
internal_tank.forceMove(WR)
|
||||
else
|
||||
QDEL_LIST(equipment)
|
||||
equipment.Cut()
|
||||
QDEL_NULL(cell)
|
||||
QDEL_NULL(internal_tank)
|
||||
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
GLOB.poi_list.Remove(src)
|
||||
equipment.Cut()
|
||||
cell = null
|
||||
internal_tank = null
|
||||
if(loc)
|
||||
loc.assume_air(cabin_air)
|
||||
air_update_turf()
|
||||
@@ -1492,6 +1475,32 @@
|
||||
visual_effect_icon = ATTACK_EFFECT_MECHTOXIN
|
||||
..()
|
||||
|
||||
/obj/mecha/obj_destruction()
|
||||
if(wreckage)
|
||||
var/mob/living/silicon/ai/AI
|
||||
if(isAI(occupant))
|
||||
AI = occupant
|
||||
occupant = null
|
||||
var/obj/effect/decal/mecha_wreckage/WR = new wreckage(loc, AI)
|
||||
for(var/obj/item/mecha_parts/mecha_equipment/E in equipment)
|
||||
if(E.salvageable && prob(30))
|
||||
WR.crowbar_salvage += E
|
||||
E.detach(WR) //detaches from src into WR
|
||||
E.equip_ready = 1
|
||||
else
|
||||
E.detach(loc)
|
||||
qdel(E)
|
||||
if(cell)
|
||||
WR.crowbar_salvage += cell
|
||||
cell.forceMove(WR)
|
||||
cell.charge = rand(0, cell.charge)
|
||||
cell = null
|
||||
if(internal_tank)
|
||||
WR.crowbar_salvage += internal_tank
|
||||
internal_tank.forceMove(WR)
|
||||
cell = null
|
||||
. = ..()
|
||||
|
||||
/obj/mecha/CtrlClick(mob/living/L)
|
||||
if(occupant != L || !istype(L))
|
||||
return ..()
|
||||
|
||||
@@ -123,11 +123,6 @@
|
||||
|
||||
/obj/item/mecha_parts/mecha_tracking/emp_act()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/mecha_parts/mecha_tracking/ex_act()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/mecha_parts/mecha_tracking/proc/in_mecha()
|
||||
if(istype(loc, /obj/mecha))
|
||||
|
||||
@@ -22,9 +22,7 @@
|
||||
|
||||
/obj/effect/decal/mecha_wreckage/ex_act(severity)
|
||||
if(severity < 2)
|
||||
spawn
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/effect/decal/mecha_wreckage/bullet_act(obj/item/projectile/Proj)
|
||||
return
|
||||
|
||||
@@ -172,6 +172,9 @@ var/global/list/image/splatter_cache = list()
|
||||
overlays += giblets
|
||||
. = ..()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity)
|
||||
return
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/up
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gibup1", "gibup1", "gibup1")
|
||||
|
||||
|
||||
@@ -75,6 +75,9 @@
|
||||
. = ..()
|
||||
QDEL_IN(src, 2 MINUTES)
|
||||
|
||||
/obj/effect/decal/cleanable/greenglow/ex_act()
|
||||
return
|
||||
|
||||
/obj/effect/decal/cleanable/cobweb
|
||||
name = "cobweb"
|
||||
desc = "Somebody should remove that."
|
||||
|
||||
@@ -34,6 +34,17 @@
|
||||
/obj/effect/experience_pressure_difference()
|
||||
return
|
||||
|
||||
/obj/effect/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(60))
|
||||
qdel(src)
|
||||
if(3)
|
||||
if(prob(25))
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/decal
|
||||
plane = FLOOR_PLANE
|
||||
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
@@ -68,7 +79,7 @@
|
||||
if(reagents)
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
R.on_ex_act()
|
||||
..()
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/decal/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
|
||||
if(reagents)
|
||||
|
||||
@@ -168,17 +168,6 @@
|
||||
endurance -= damage_to_do
|
||||
CheckEndurance()
|
||||
|
||||
/obj/structure/glowshroom/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
if(3)
|
||||
if(prob(5))
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/glowshroom/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
|
||||
if(damage_type == BURN && damage_amount)
|
||||
playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE)
|
||||
|
||||
@@ -26,18 +26,6 @@
|
||||
master_commander = null
|
||||
return ..()
|
||||
|
||||
//similar to weeds, but only barfed out by nurses manually
|
||||
/obj/structure/spider/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
if(3)
|
||||
if(prob(5))
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/spider/attackby(obj/item/W, mob/user, params)
|
||||
if(W.attack_verb.len)
|
||||
visible_message("<span class='danger'>[user] has [pick(W.attack_verb)] [src] with [W]!</span>")
|
||||
|
||||
@@ -141,22 +141,6 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
if(B && B.loc == loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(5))
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
return
|
||||
|
||||
/obj/item/verb/move_to_top()
|
||||
set name = "Move To Top"
|
||||
set category = null
|
||||
|
||||
@@ -105,12 +105,3 @@
|
||||
update_icon()
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/aicard/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
if(2.0)
|
||||
if(prob(50)) qdel(src)
|
||||
if(3.0)
|
||||
if(prob(25)) qdel(src)
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
/obj/effect/dummy/chameleon/attack_alien()
|
||||
master.disrupt()
|
||||
|
||||
/obj/effect/dummy/chameleon/ex_act(var/severity) //no longer bomb-proof
|
||||
/obj/effect/dummy/chameleon/ex_act(severity) //no longer bomb-proof
|
||||
for(var/mob/M in src)
|
||||
to_chat(M, "<span class='danger'>Your chameleon-projector deactivates.</span>")
|
||||
spawn()
|
||||
|
||||
@@ -335,12 +335,6 @@
|
||||
M.emp_act(severity)
|
||||
..()
|
||||
|
||||
/obj/item/paicard/ex_act(severity)
|
||||
if(pai)
|
||||
pai.ex_act(severity)
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
/obj/item/paicard/extinguish_light()
|
||||
pai.extinguish_light()
|
||||
set_light(0)
|
||||
@@ -33,11 +33,6 @@
|
||||
else
|
||||
to_chat(user, "<span class='notice'>The gift was empty!</span>")
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/a_gift/ex_act()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/effect/spresent/relaymove(mob/user as mob)
|
||||
if(user.stat)
|
||||
|
||||
@@ -193,12 +193,10 @@
|
||||
if(!proximity)
|
||||
return
|
||||
if(wielded) //destroys windows and grilles in one hit
|
||||
if(istype(A, /obj/structure/window))
|
||||
var/obj/structure/window/W = A
|
||||
W.take_damage(200, BRUTE, "melee", 0)
|
||||
else if(istype(A, /obj/structure/grille))
|
||||
var/obj/structure/grille/G = A
|
||||
G.take_damage(40, BRUTE, "melee", 0)
|
||||
if(istype(A, /obj/structure/window) || istype(A, /obj/structure/grille))
|
||||
var/obj/structure/W = A
|
||||
W.obj_destruction("fireaxe")
|
||||
|
||||
|
||||
/obj/item/twohanded/fireaxe/boneaxe // Blatant imitation of the fireaxe, but made out of bone.
|
||||
icon_state = "bone_axe0"
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
var/list/species_exception = null // list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item
|
||||
var/sharp = 0 // whether this object cuts
|
||||
var/in_use = 0 // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING!
|
||||
var/can_deconstruct = TRUE
|
||||
var/damtype = "brute"
|
||||
var/force = 0
|
||||
var/list/armor
|
||||
|
||||
@@ -5,18 +5,6 @@
|
||||
var/mob/climber
|
||||
var/broken = FALSE
|
||||
|
||||
/obj/structure/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
return
|
||||
|
||||
/obj/structure/New()
|
||||
if (!armor)
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
|
||||
|
||||
@@ -301,6 +301,7 @@
|
||||
break
|
||||
|
||||
/obj/structure/alien/egg/obj_break(damage_flag)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
if(status != BURST)
|
||||
Burst(kill = TRUE)
|
||||
|
||||
|
||||
@@ -38,6 +38,10 @@
|
||||
else
|
||||
desc = "It displays \"[name]\"."
|
||||
|
||||
/obj/structure/sign/barsign/obj_break(damage_flag)
|
||||
if(!broken && !(flags & NODECONSTRUCT))
|
||||
broken = TRUE
|
||||
|
||||
/obj/structure/sign/barsign/deconstruct(disassembled = TRUE)
|
||||
new /obj/item/stack/sheet/metal(drop_location(), 2)
|
||||
new /obj/item/stack/cable_coil(drop_location(), 2)
|
||||
|
||||
@@ -124,32 +124,20 @@
|
||||
if(!(opened ? close() : open()))
|
||||
to_chat(user, "<span class='notice'>It won't budge!</span>")
|
||||
|
||||
/obj/structure/closet/proc/bust_open()
|
||||
welded = FALSE //applies to all lockers
|
||||
locked = FALSE //applies to critter crates and secure lockers only
|
||||
broken = TRUE //applies to secure lockers only
|
||||
open()
|
||||
|
||||
/obj/structure/closet/deconstruct(disassembled = TRUE)
|
||||
if(ispath(material_drop) && material_drop_amount && !(flags & NODECONSTRUCT))
|
||||
new material_drop(loc, material_drop_amount)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/closet/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
for(var/atom/movable/A in src)//pulls everything out of the locker and hits it with an explosion
|
||||
A.ex_act(severity++)
|
||||
dump_contents()
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
for(var/atom/movable/A in src)
|
||||
A.ex_act(severity++)
|
||||
dump_contents()
|
||||
new /obj/item/stack/sheet/metal(loc)
|
||||
qdel(src)
|
||||
if(3)
|
||||
if(prob(5))
|
||||
for(var/atom/movable/A in src)
|
||||
A.ex_act(severity++)
|
||||
dump_contents()
|
||||
new /obj/item/stack/sheet/metal(loc)
|
||||
qdel(src)
|
||||
/obj/structure/closet/obj_break(damage_flag)
|
||||
if(!broken && !(flags & NODECONSTRUCT))
|
||||
bust_open()
|
||||
|
||||
/obj/structure/closet/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/rcs) && !opened)
|
||||
@@ -407,6 +395,16 @@
|
||||
if(user.stat == DEAD || !(user.sight & (SEEOBJS|SEEMOBS)))
|
||||
user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 1)
|
||||
|
||||
/obj/structure/closet/ex_act(severity)
|
||||
for(var/atom/A in contents)
|
||||
A.ex_act(severity)
|
||||
CHECK_TICK
|
||||
..()
|
||||
|
||||
/obj/structure/closet/singularity_act()
|
||||
dump_contents()
|
||||
..()
|
||||
|
||||
/obj/structure/closet/AllowDrop()
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -92,12 +92,6 @@
|
||||
for(var/mob/M in src)
|
||||
shatter(M)
|
||||
|
||||
/obj/structure/closet/statue/ex_act(severity)
|
||||
for(var/mob/M in src)
|
||||
M.ex_act(severity)
|
||||
health -= 60 / severity
|
||||
check_health()
|
||||
|
||||
/obj/structure/closet/statue/attackby(obj/item/I as obj, mob/user as mob, params)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
health -= I.force
|
||||
|
||||
@@ -178,23 +178,6 @@
|
||||
return
|
||||
else return attack_hand(user)
|
||||
|
||||
/obj/structure/closet/crate/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
for(var/obj/O in src.contents)
|
||||
qdel(O)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
for(var/obj/O in src.contents)
|
||||
if(prob(50))
|
||||
qdel(O)
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/closet/singularity_act()
|
||||
dump_contents()
|
||||
..()
|
||||
|
||||
@@ -178,21 +178,14 @@ GLOBAL_LIST_INIT(captain_display_cases, list())
|
||||
burglar_alarm()
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/displaycase/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
new /obj/item/shard(loc)
|
||||
if(occupant)
|
||||
dump()
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
src.health -= 15
|
||||
src.healthcheck()
|
||||
if(3)
|
||||
if(prob(50))
|
||||
src.health -= 5
|
||||
src.healthcheck()
|
||||
/obj/structure/displaycase/obj_break(damage_flag)
|
||||
if(!broken && !(flags & NODECONSTRUCT))
|
||||
density = FALSE
|
||||
broken = 1
|
||||
new /obj/item/shard( src.loc )
|
||||
playsound(src, "shatter", 70, TRUE)
|
||||
update_icon()
|
||||
burglar_alarm()
|
||||
|
||||
/obj/structure/displaycase/proc/healthcheck()
|
||||
if(src.health <= 0)
|
||||
|
||||
@@ -48,6 +48,16 @@
|
||||
QDEL_NULL(has_extinguisher)
|
||||
return ..()
|
||||
|
||||
/obj/structure/extinguisher_cabinet/ex_act(severity)
|
||||
if(has_extinguisher)
|
||||
has_extinguisher.ex_act(severity)
|
||||
..()
|
||||
|
||||
/obj/structure/extinguisher_cabinet/handle_atom_del(atom/A)
|
||||
if(A == has_extinguisher)
|
||||
has_extinguisher = null
|
||||
update_icon()
|
||||
|
||||
/obj/structure/extinguisher_cabinet/attackby(obj/item/O, mob/user, params)
|
||||
if(isrobot(user) || isalien(user))
|
||||
return
|
||||
@@ -125,6 +135,15 @@
|
||||
opened = !opened
|
||||
update_icon()
|
||||
|
||||
/obj/structure/extinguisher_cabinet/obj_break(damage_flag)
|
||||
if(!broken && !(flags & NODECONSTRUCT))
|
||||
broken = 1
|
||||
opened = 1
|
||||
if(has_extinguisher)
|
||||
has_extinguisher.forceMove(loc)
|
||||
has_extinguisher = null
|
||||
update_icon()
|
||||
|
||||
/obj/structure/extinguisher_cabinet/deconstruct(disassembled = TRUE)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
new /obj/item/stack/sheet/metal(loc)
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
density = TRUE
|
||||
opacity = TRUE
|
||||
|
||||
can_deconstruct = TRUE
|
||||
|
||||
canSmoothWith = list(
|
||||
/turf/simulated/wall,
|
||||
/turf/simulated/wall/r_wall,
|
||||
@@ -123,22 +121,17 @@
|
||||
if(istype(W, /obj/item/weldingtool))
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(WT.remove_fuel(0,user))
|
||||
dismantle(user)
|
||||
dismantle(user, TRUE)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You can't reach, close it first!</span>")
|
||||
|
||||
if(istype(W, /obj/item/gun/energy/plasmacutter) || istype(W, /obj/item/pickaxe/drill/diamonddrill) || istype(W, /obj/item/pickaxe/drill/jackhammer) || istype(W, /obj/item/melee/energy/blade))
|
||||
dismantle(user)
|
||||
dismantle(user, TRUE)
|
||||
|
||||
/obj/structure/falsewall/proc/dismantle(mob/user)
|
||||
/obj/structure/falsewall/proc/dismantle(mob/user, disassembled = TRUE)
|
||||
user.visible_message("<span class='notice'>[user] dismantles the false wall.</span>", "<span class='warning'>You dismantle the false wall.</span>")
|
||||
if(can_deconstruct)
|
||||
new girder_type(loc)
|
||||
if(mineral_amount)
|
||||
for(var/i in 1 to mineral_amount)
|
||||
new mineral(loc)
|
||||
playsound(src, 'sound/items/welder.ogg', 100, 1)
|
||||
qdel(src)
|
||||
playsound(src, 'sound/items/welder.ogg', 100, TRUE)
|
||||
deconstruct(disassembled)
|
||||
|
||||
/obj/structure/falsewall/deconstruct(disassembled = TRUE)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
|
||||
@@ -370,26 +370,6 @@
|
||||
new /obj/structure/girder/cult(loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/girder/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
return
|
||||
if(2)
|
||||
if(prob(75))
|
||||
var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal)
|
||||
new remains(loc)
|
||||
qdel(src)
|
||||
return
|
||||
if(3)
|
||||
if(prob(40))
|
||||
var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal)
|
||||
new remains(loc)
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
return
|
||||
|
||||
/obj/structure/girder/displaced
|
||||
name = "displaced girder"
|
||||
icon_state = "displaced"
|
||||
|
||||
@@ -42,13 +42,6 @@
|
||||
//height=42
|
||||
icon='icons/fence-ns.dmi'
|
||||
|
||||
/obj/structure/grille/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
else
|
||||
take_damage(rand(5,10), BRUTE, 0)
|
||||
|
||||
/obj/structure/grille/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
|
||||
. = ..()
|
||||
update_icon()
|
||||
@@ -234,9 +227,9 @@
|
||||
..()
|
||||
|
||||
/obj/structure/grille/obj_break()
|
||||
if(!broken && can_deconstruct)
|
||||
if(!broken && !(flags & NODECONSTRUCT))
|
||||
new broken_type(loc)
|
||||
var/obj/R = new rods_type(loc, rods_broken)
|
||||
var/obj/R = new rods_type(drop_location(), rods_broken)
|
||||
transfer_fingerprints_to(R)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -10,21 +10,6 @@
|
||||
var/occupied = 1
|
||||
var/destroyed = 0
|
||||
|
||||
/obj/structure/lamarr/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
new /obj/item/shard(loc)
|
||||
Break()
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
src.health -= 15
|
||||
src.healthcheck()
|
||||
if(3)
|
||||
if(prob(50))
|
||||
src.health -= 5
|
||||
src.healthcheck()
|
||||
|
||||
/obj/structure/lamarr/proc/healthcheck()
|
||||
if(src.health <= 0)
|
||||
if(!( src.destroyed ))
|
||||
|
||||
@@ -49,15 +49,6 @@
|
||||
/obj/structure/lattice/blob_act(obj/structure/blob/B)
|
||||
return
|
||||
|
||||
/obj/structure/lattice/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
if(2)
|
||||
qdel(src)
|
||||
if(3)
|
||||
return
|
||||
|
||||
/obj/structure/lattice/singularity_pull(S, current_size)
|
||||
if(current_size >= STAGE_FOUR)
|
||||
deconstruct()
|
||||
|
||||
@@ -136,23 +136,7 @@
|
||||
else if(user.a_intent != INTENT_HARM)
|
||||
attack_hand(user)
|
||||
else
|
||||
attacked_by(W, user)
|
||||
|
||||
/obj/structure/mineral_door/attacked_by(obj/item/I, mob/user)
|
||||
if(I.damtype != STAMINA)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(src)
|
||||
visible_message("<span class='notice'>[user] hits \the [src] with \the [I].</span>")
|
||||
if(damageSound)
|
||||
playsound(loc, damageSound, 100, 1)
|
||||
else
|
||||
playsound(loc, I.hitsound, 100, 1)
|
||||
hardness -= I.force / 100
|
||||
CheckHardness()
|
||||
|
||||
/obj/structure/mineral_door/proc/CheckHardness()
|
||||
if(hardness <= 0)
|
||||
deconstruct(FALSE)
|
||||
return ..()
|
||||
|
||||
/obj/structure/mineral_door/deconstruct(disassembled = TRUE)
|
||||
var/turf/T = get_turf(src)
|
||||
@@ -163,20 +147,6 @@
|
||||
new sheetType(T, max(sheetAmount - 2, 1))
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/mineral_door/ex_act(severity = 1)
|
||||
switch(severity)
|
||||
if(1)
|
||||
deconstruct(FALSE)
|
||||
if(2)
|
||||
if(prob(20))
|
||||
deconstruct(FALSE)
|
||||
else
|
||||
hardness--
|
||||
CheckHardness()
|
||||
if(3)
|
||||
hardness -= 0.1
|
||||
CheckHardness()
|
||||
|
||||
/obj/structure/mineral_door/iron
|
||||
hardness = 3
|
||||
|
||||
|
||||
@@ -34,16 +34,16 @@
|
||||
ui_users[user] = AC
|
||||
AC.ui_interact(user)
|
||||
|
||||
/obj/structure/mirror/proc/shatter()
|
||||
if(broken)
|
||||
return
|
||||
broken = TRUE
|
||||
/obj/structure/mirror/obj_break(damage_flag, mapload)
|
||||
if(!broken && !(flags & NODECONSTRUCT))
|
||||
icon_state = "mirror_broke"
|
||||
playsound(src, "shatter", 70, 1)
|
||||
if(!mapload)
|
||||
playsound(src, "shatter", 70, TRUE)
|
||||
if(desc == initial(desc))
|
||||
desc = "Oh no, seven years of bad luck!"
|
||||
broken = TRUE
|
||||
|
||||
/obj/structure/mirror/attackby(obj/item/I, mob/living/user, params)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
if(isscrewdriver(I))
|
||||
user.visible_message("<span class='notice'>[user] begins to unfasten [src].</span>", "<span class='notice'>You begin to unfasten [src].</span>")
|
||||
if(do_after(user, 30 * I.toolspeed, target = src))
|
||||
@@ -55,18 +55,7 @@
|
||||
new /obj/item/mounted/mirror(get_turf(user))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
user.do_attack_animation(src)
|
||||
if(broken)
|
||||
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
|
||||
return
|
||||
|
||||
if(prob(I.force * 2))
|
||||
visible_message("<span class='warning'>[user] smashes [src] with [I]!</span>")
|
||||
shatter()
|
||||
else
|
||||
visible_message("<span class='warning'>[user] hits [src] with [I]!</span>")
|
||||
playsound(src.loc, 'sound/effects/Glasshit.ogg', 70, 1)
|
||||
return ..()
|
||||
|
||||
/obj/structure/mirror/deconstruct(disassembled = TRUE)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
@@ -167,8 +156,5 @@
|
||||
/obj/structure/mirror/magic/attackby(obj/item/I, mob/living/user, params)
|
||||
return
|
||||
|
||||
/obj/structure/mirror/magic/shatter()
|
||||
return //can't be broken. it's magic, i ain't gotta explain shit
|
||||
|
||||
/obj/structure/mirror/magic/proc/curse(mob/living/user)
|
||||
return
|
||||
@@ -33,18 +33,3 @@
|
||||
playsound(src.loc, 'sound/effects/slosh.ogg', 25, 1)
|
||||
if(src.reagents.total_volume < 1)
|
||||
to_chat(user, "<span class='notice'>Out of water!</span>")
|
||||
return
|
||||
|
||||
/obj/structure/mopbucket/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(5))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -95,19 +95,8 @@
|
||||
return CanAStarPass(ID, to_dir, M.pulling)
|
||||
return TRUE //diseases, stings, etc can pass
|
||||
|
||||
/obj/structure/plasticflaps/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
if(3)
|
||||
if(prob(5))
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/plasticflaps/deconstruct(disassembled = TRUE)
|
||||
if(can_deconstruct)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
new /obj/item/stack/sheet/plastic/five(loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -16,17 +16,6 @@
|
||||
if(BURN)
|
||||
playsound(loc, 'sound/items/welder.ogg', 80, TRUE)
|
||||
|
||||
/obj/structure/sign/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/sign/attackby(obj/item/tool as obj, mob/user as mob) //deconstruction
|
||||
if(istype(tool, /obj/item/screwdriver) && !istype(src, /obj/structure/sign/double))
|
||||
to_chat(user, "You unfasten the sign with your [tool].")
|
||||
|
||||
@@ -295,21 +295,6 @@
|
||||
icon_state = "bar"
|
||||
item_chair = /obj/item/chair/stool/bar
|
||||
|
||||
/obj/structure/chair/stool/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(70))
|
||||
new buildstacktype(loc, buildstackamount)
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(50))
|
||||
new buildstacktype(loc, buildstackamount)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/chair
|
||||
name = "chair"
|
||||
desc = "Bar brawl essential."
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
if(istype(I, /obj/item/grab))
|
||||
tablepush(I, user)
|
||||
return
|
||||
if(can_deconstruct)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
if(isscrewdriver(I) && deconstruction_ready)
|
||||
to_chat(user, "<span class='notice'>You start disassembling [src]...</span>")
|
||||
playsound(loc, I.usesound, 50, 1)
|
||||
@@ -386,7 +386,7 @@
|
||||
|
||||
/obj/structure/table/glass/Crossed(atom/movable/AM, oldloc)
|
||||
. = ..()
|
||||
if(!can_deconstruct)
|
||||
if(flags & NODECONSTRUCT)
|
||||
return
|
||||
if(!isliving(AM))
|
||||
return
|
||||
@@ -616,7 +616,7 @@
|
||||
held_items += item.UID()
|
||||
|
||||
/obj/structure/table/tray/deconstruct(disassembled = TRUE, wrench_disassembly = 0)
|
||||
if(can_deconstruct)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
var/turf/T = get_turf(src)
|
||||
new buildstack(T, buildstackamount)
|
||||
qdel(src)
|
||||
|
||||
@@ -257,7 +257,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
|
||||
take_damage(75)
|
||||
return
|
||||
|
||||
if(can_deconstruct)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
if(isscrewdriver(I))
|
||||
playsound(src, I.usesound, 75, 1)
|
||||
if(reinf)
|
||||
|
||||
@@ -198,14 +198,3 @@
|
||||
if(master)
|
||||
master.receive_signal()
|
||||
return TRUE
|
||||
|
||||
/obj/item/assembly_holder/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
if(3)
|
||||
if(prob(25))
|
||||
qdel(src)
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
return ..()
|
||||
|
||||
/obj/effect/countdown/ex_act(severity, target) //immune to explosions
|
||||
/obj/effect/countdown/ex_act(severity) //immune to explosions
|
||||
return
|
||||
|
||||
/obj/effect/countdown/singularity_pull()
|
||||
|
||||
@@ -95,4 +95,3 @@
|
||||
|
||||
/obj/effect/space_dust/ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -40,6 +40,13 @@
|
||||
beaker.ex_act(severity)
|
||||
..()
|
||||
|
||||
/obj/machinery/biogenerator/handle_atom_del(atom/A)
|
||||
..()
|
||||
if(A == beaker)
|
||||
beaker = null
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/biogenerator/RefreshParts()
|
||||
var/E = 0
|
||||
var/P = 0
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
light_color = "#DDFFD3"
|
||||
max_n_of_items = 10
|
||||
pixel_y = -4
|
||||
can_deconstruct = FALSE
|
||||
flags = NODECONSTRUCT
|
||||
var/empty = FALSE
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/Initialize(mapload)
|
||||
|
||||
@@ -26,17 +26,6 @@
|
||||
base_icon = "[icon_state][rand(1, 4)]"
|
||||
icon_state = base_icon
|
||||
|
||||
/obj/structure/flora/ash/ex_act(severity, target)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(80))
|
||||
qdel(src)
|
||||
if(3)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/flora/ash/proc/harvest(user)
|
||||
if(harvested)
|
||||
return 0
|
||||
|
||||
@@ -368,14 +368,9 @@
|
||||
to_chat(usr, "<span class='warning'>Required access not found.</span>")
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/mineral/ore_redemption/ex_act(severity, target)
|
||||
do_sparks(5, 1, src)
|
||||
if(severity == 1)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
else if(severity == 2)
|
||||
if(prob(25))
|
||||
qdel(src)
|
||||
/obj/machinery/mineral/ore_redemption/ex_act(severity)
|
||||
do_sparks(5, TRUE, src)
|
||||
..()
|
||||
|
||||
/obj/machinery/mineral/ore_redemption/power_change()
|
||||
..()
|
||||
|
||||
@@ -124,6 +124,11 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
to_chat(C, "<span class='userdanger'>[src] gets into your eyes! The pain, it burns!</span>")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/stack/ore/glass/ex_act(severity)
|
||||
if(severity == EXPLODE_NONE)
|
||||
return
|
||||
qdel(src)
|
||||
|
||||
/obj/item/stack/ore/glass/basalt
|
||||
name = "volcanic ash"
|
||||
icon_state = "volcanic_sand"
|
||||
|
||||
@@ -137,22 +137,6 @@ var/global/totaltribbles = 0 //global variable so it updates for all tribbles,
|
||||
var/occupied = 1
|
||||
var/destroyed = 0
|
||||
|
||||
/obj/structure/tribble_cage/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
new /obj/item/shard( src.loc )
|
||||
Break()
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
src.health -= 15
|
||||
src.healthcheck()
|
||||
if(3)
|
||||
if(prob(50))
|
||||
src.health -= 5
|
||||
src.healthcheck()
|
||||
|
||||
|
||||
/obj/structure/tribble_cage/bullet_act(var/obj/item/projectile/Proj)
|
||||
health -= Proj.damage
|
||||
..()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
break_apart()
|
||||
|
||||
/obj/item/modular_computer/proc/break_apart()
|
||||
if(can_deconstruct)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
physical.visible_message("\The [src] breaks apart!")
|
||||
var/turf/newloc = get_turf(src)
|
||||
new /obj/item/stack/sheet/metal(newloc, round(steel_sheet_cost/2))
|
||||
|
||||
@@ -180,24 +180,6 @@
|
||||
copyitem.forceMove(get_turf(src))
|
||||
copyitem = null
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
/obj/machinery/photocopier/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
else
|
||||
if(toner > 0)
|
||||
new /obj/effect/decal/cleanable/blood/oil(get_turf(src))
|
||||
toner = 0
|
||||
else
|
||||
if(prob(50))
|
||||
if(toner > 0)
|
||||
new /obj/effect/decal/cleanable/blood/oil(get_turf(src))
|
||||
toner = 0
|
||||
|
||||
/obj/machinery/photocopier/proc/copy(var/obj/item/paper/copy)
|
||||
var/obj/item/paper/c = new /obj/item/paper (loc)
|
||||
@@ -318,6 +300,11 @@
|
||||
P.pixel_x = rand(-9, 9)
|
||||
return P
|
||||
|
||||
/obj/machinery/photocopier/obj_break(damage_flag)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
if(toner > 0)
|
||||
new /obj/effect/decal/cleanable/blood/oil(get_turf(src))
|
||||
toner = 0
|
||||
|
||||
/obj/machinery/photocopier/MouseDrop_T(mob/target, mob/user)
|
||||
check_ass() //Just to make sure that you can re-drag somebody onto it after they moved off.
|
||||
|
||||
@@ -1294,27 +1294,6 @@
|
||||
update()
|
||||
..()
|
||||
|
||||
/obj/machinery/power/apc/ex_act(severity)
|
||||
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
//set_broken() //now Destroy() do what we need
|
||||
if(cell)
|
||||
cell.ex_act(1.0) // more lags woohoo
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
set_broken()
|
||||
if(cell && prob(50))
|
||||
cell.ex_act(2.0)
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
set_broken()
|
||||
if(cell && prob(25))
|
||||
cell.ex_act(3.0)
|
||||
return
|
||||
|
||||
/obj/machinery/power/apc/blob_act(obj/structure/blob/B)
|
||||
set_broken()
|
||||
|
||||
|
||||
@@ -145,19 +145,13 @@
|
||||
..()
|
||||
|
||||
/obj/item/stock_parts/cell/ex_act(severity)
|
||||
..()
|
||||
if(!QDELETED(src))
|
||||
switch(severity)
|
||||
if(EXPLODE_DEVASTATE)
|
||||
qdel(src)
|
||||
if(EXPLODE_HEAVY)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
return
|
||||
if(2)
|
||||
if(prob(50))
|
||||
corrupt()
|
||||
if(EXPLODE_LIGHT)
|
||||
if(prob(25))
|
||||
qdel(src)
|
||||
return
|
||||
if(3)
|
||||
if(prob(25))
|
||||
corrupt()
|
||||
|
||||
|
||||
@@ -569,19 +569,6 @@
|
||||
explosion(loc,0,0,0,flame_range = 5, adminlog = 0)
|
||||
qdel(src)
|
||||
|
||||
// explosion effect
|
||||
// destroy the whole light fixture or just shatter it
|
||||
|
||||
/obj/machinery/light/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
break_light_tube()
|
||||
if(3.0)
|
||||
break_light_tube()
|
||||
|
||||
// timed process
|
||||
// use power
|
||||
|
||||
|
||||
@@ -96,13 +96,10 @@ var/global/list/rad_collectors = list()
|
||||
..()
|
||||
return 1
|
||||
|
||||
|
||||
/obj/machinery/power/rad_collector/ex_act(severity)
|
||||
switch(severity)
|
||||
if(2, 3)
|
||||
/obj/machinery/power/rad_collector/obj_break(damage_flag)
|
||||
if(!(stat & BROKEN) && !(flags & NODECONSTRUCT))
|
||||
eject()
|
||||
return ..()
|
||||
|
||||
stat |= BROKEN
|
||||
|
||||
/obj/machinery/power/rad_collector/proc/eject()
|
||||
locked = 0
|
||||
|
||||
@@ -310,20 +310,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
if(process_tool_hit(W,user))
|
||||
return
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/machinery/particle_accelerator/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/particle_accelerator/proc/update_state()
|
||||
return 0
|
||||
|
||||
@@ -142,19 +142,6 @@
|
||||
stat |= BROKEN
|
||||
unset_control()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/power/solar/ex_act(severity, target)
|
||||
..()
|
||||
if(!QDELETED(src))
|
||||
switch(severity)
|
||||
if(2)
|
||||
if(prob(50) && broken())
|
||||
new /obj/item/shard(src.loc)
|
||||
if(3)
|
||||
if(prob(25) && broken())
|
||||
new /obj/item/shard(src.loc)
|
||||
|
||||
/obj/machinery/power/solar/fake/New(var/turf/loc, var/obj/item/solar_assembly/S)
|
||||
..(loc, S, 0)
|
||||
@@ -447,6 +434,12 @@
|
||||
if(BURN)
|
||||
playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE)
|
||||
|
||||
/obj/machinery/power/solar_control/obj_break(damage_flag)
|
||||
if(!(stat & BROKEN) && !(flags & NODECONSTRUCT))
|
||||
playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE)
|
||||
stat |= BROKEN
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/power/solar_control/process()
|
||||
lastgen = gen
|
||||
gen = 0
|
||||
@@ -518,18 +511,6 @@
|
||||
stat |= BROKEN
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/machinery/power/solar_control/ex_act(severity, target)
|
||||
..()
|
||||
if(!QDELETED(src))
|
||||
switch(severity)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
broken()
|
||||
if(3)
|
||||
if(prob(25))
|
||||
broken()
|
||||
|
||||
//
|
||||
// MISC
|
||||
//
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
/obj/machinery/chem_dispenser/mutagensaltpeter
|
||||
name = "botanical chemical dispenser"
|
||||
desc = "Creates and dispenses chemicals useful for botany."
|
||||
can_deconstruct = FALSE
|
||||
flags = NODECONSTRUCT
|
||||
|
||||
dispensable_reagents = list(
|
||||
"mutagen",
|
||||
@@ -134,12 +134,16 @@
|
||||
SSnanoui.update_uis(src) // update all UIs attached to src
|
||||
|
||||
/obj/machinery/chem_dispenser/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
if(severity < 3)
|
||||
if(beaker)
|
||||
beaker.ex_act(severity)
|
||||
..()
|
||||
|
||||
/obj/machinery/chem_dispenser/handle_atom_del(atom/A)
|
||||
..()
|
||||
if(A == beaker)
|
||||
beaker = null
|
||||
overlays.Cut()
|
||||
|
||||
/obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1)
|
||||
// update the ui if it exists, returns null if no ui is passed/found
|
||||
|
||||
@@ -42,12 +42,21 @@
|
||||
reagents.maximum_volume += B.reagents.maximum_volume
|
||||
|
||||
/obj/machinery/chem_master/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
if(severity < 3)
|
||||
if(beaker)
|
||||
beaker.ex_act(severity)
|
||||
if(loaded_pill_bottle)
|
||||
loaded_pill_bottle.ex_act(severity)
|
||||
..()
|
||||
|
||||
/obj/machinery/chem_master/handle_atom_del(atom/A)
|
||||
..()
|
||||
if(A == beaker)
|
||||
beaker = null
|
||||
reagents.clear_reagents()
|
||||
update_icon()
|
||||
else if(A == loaded_pill_bottle)
|
||||
loaded_pill_bottle = null
|
||||
|
||||
/obj/machinery/chem_master/update_icon()
|
||||
overlays.Cut()
|
||||
|
||||
@@ -122,6 +122,11 @@
|
||||
beaker.ex_act(severity)
|
||||
..()
|
||||
|
||||
/obj/machinery/reagentgrinder/handle_atom_del(atom/A)
|
||||
if(A == beaker)
|
||||
beaker = null
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/reagentgrinder/update_icon()
|
||||
if(beaker)
|
||||
icon_state = "juicer1"
|
||||
|
||||
@@ -45,6 +45,7 @@ obj/item/reagent_containers/proc/add_initial_reagents()
|
||||
if(reagents)
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
R.on_ex_act()
|
||||
if(!QDELETED(src))
|
||||
..()
|
||||
|
||||
/obj/item/reagent_containers/attack_self(mob/user)
|
||||
|
||||
@@ -827,8 +827,6 @@
|
||||
H.vent_gas(T) // all gas vent to turf
|
||||
qdel(H)
|
||||
|
||||
return
|
||||
|
||||
// call to break the pipe
|
||||
// will expel any holder inside at the time
|
||||
// then delete the pipe
|
||||
@@ -863,24 +861,6 @@
|
||||
spawn(2) // delete pipe after 2 ticks to ensure expel proc finished
|
||||
qdel(src)
|
||||
|
||||
|
||||
// pipe affected by explosion
|
||||
/obj/structure/disposalpipe/ex_act(severity)
|
||||
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
broken(0)
|
||||
return
|
||||
if(2.0)
|
||||
health -= rand(5,15)
|
||||
healthcheck()
|
||||
return
|
||||
if(3.0)
|
||||
health -= rand(0,15)
|
||||
healthcheck()
|
||||
return
|
||||
|
||||
|
||||
// test health for brokenness
|
||||
/obj/structure/disposalpipe/proc/healthcheck()
|
||||
if(health < -2)
|
||||
|
||||
@@ -10,6 +10,18 @@
|
||||
var/giftwrapped = 0
|
||||
var/sortTag = 0
|
||||
|
||||
/obj/structure/bigDelivery/Destroy()
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/atom/movable/AM in contents)
|
||||
AM.forceMove(T)
|
||||
return ..()
|
||||
|
||||
/obj/structure/bigDelivery/ex_act(severity)
|
||||
for(var/atom/movable/AM in contents)
|
||||
AM.ex_act()
|
||||
CHECK_TICK
|
||||
..()
|
||||
|
||||
/obj/structure/bigDelivery/attack_hand(mob/user as mob)
|
||||
playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
if(wrapped)
|
||||
@@ -75,6 +87,12 @@
|
||||
var/giftwrapped = 0
|
||||
var/sortTag = 0
|
||||
|
||||
/obj/item/smallDelivery/ex_act(severity)
|
||||
for(var/atom/movable/AM in contents)
|
||||
AM.ex_act()
|
||||
CHECK_TICK
|
||||
..()
|
||||
|
||||
/obj/item/smallDelivery/attack_self(mob/user as mob)
|
||||
if(wrapped && wrapped.loc) //sometimes items can disappear. For example, bombs. --rastaf0
|
||||
wrapped.loc = user.loc
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
|
||||
/obj/machinery/r_n_d/server/ex_act(severity)
|
||||
griefProtection()
|
||||
..()
|
||||
return ..()
|
||||
|
||||
/obj/machinery/r_n_d/server/blob_act(obj/structure/blob/B)
|
||||
griefProtection()
|
||||
|
||||
@@ -77,7 +77,6 @@
|
||||
icon_state = "wall_gear"
|
||||
climbable = TRUE
|
||||
max_integrity = 100
|
||||
can_deconstruct = TRUE
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
@@ -141,7 +140,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/clockwork/wall_gear/deconstruct(disassembled = TRUE)
|
||||
if(can_deconstruct && disassembled)
|
||||
if(!(flags & NODECONSTRUCT) && disassembled)
|
||||
new /obj/item/stack/tile/brass(loc, 3)
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -237,25 +237,6 @@
|
||||
gen_collision() //Generate collision again
|
||||
return 1
|
||||
|
||||
//////////////////////DAMAGE PROCS
|
||||
/obj/tram/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/tram/blob_act(obj/structure/blob/B)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
|
||||
/obj/tram/attack_animal(var/mob/living/simple_animal/M as mob)
|
||||
if(M.melee_damage_upper == 0) return
|
||||
if(prob(M.melee_damage_upper))
|
||||
|
||||
Reference in New Issue
Block a user