mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Mecha + misc. Destroy() because I had already begun.
This commit is contained in:
@@ -14,6 +14,9 @@
|
|||||||
var/obj/master = null //A reference to the object in the slot. Grabs or items, generally.
|
var/obj/master = null //A reference to the object in the slot. Grabs or items, generally.
|
||||||
var/gun_click_time = -100 //I'm lazy.
|
var/gun_click_time = -100 //I'm lazy.
|
||||||
|
|
||||||
|
/obj/screen/Destroy()
|
||||||
|
master = null
|
||||||
|
..()
|
||||||
|
|
||||||
/obj/screen/text
|
/obj/screen/text
|
||||||
icon = null
|
icon = null
|
||||||
|
|||||||
@@ -151,4 +151,8 @@ Data storage vars:
|
|||||||
start()
|
start()
|
||||||
return active()
|
return active()
|
||||||
|
|
||||||
|
/datum/global_iterator/Destroy()
|
||||||
|
tag = null
|
||||||
|
arg_list.Cut()
|
||||||
|
stop()
|
||||||
|
//Do not call ..()
|
||||||
|
|||||||
@@ -76,6 +76,10 @@
|
|||||||
ME.attach(src)
|
ME.attach(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
/obj/mecha/combat/marauder/Destroy()
|
||||||
|
qdel(smoke_system)
|
||||||
|
..()
|
||||||
|
|
||||||
/obj/mecha/combat/marauder/relaymove(mob/user,direction)
|
/obj/mecha/combat/marauder/relaymove(mob/user,direction)
|
||||||
if(user != src.occupant) //While not "realistic", this piece is player friendly.
|
if(user != src.occupant) //While not "realistic", this piece is player friendly.
|
||||||
user.loc = get_turf(src)
|
user.loc = get_turf(src)
|
||||||
|
|||||||
@@ -21,6 +21,10 @@
|
|||||||
pr_mech_sleeper.set_delay(equip_cooldown)
|
pr_mech_sleeper.set_delay(equip_cooldown)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
Destroy()
|
||||||
|
qdel(pr_mech_sleeper)
|
||||||
|
..()
|
||||||
|
|
||||||
allow_drop()
|
allow_drop()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
action(atom/target)
|
action(atom/target)
|
||||||
if(!action_checks(target)) return
|
if(!action_checks(target)) return
|
||||||
if(!cargo_holder) return
|
if(!cargo_holder) return
|
||||||
|
|
||||||
//loading
|
//loading
|
||||||
if(istype(target,/obj))
|
if(istype(target,/obj))
|
||||||
var/obj/O = target
|
var/obj/O = target
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
if(cargo_holder.cargo.len >= cargo_holder.cargo_capacity)
|
if(cargo_holder.cargo.len >= cargo_holder.cargo_capacity)
|
||||||
occupant_message("<font color='red'>Not enough room in cargo compartment.</font>")
|
occupant_message("<font color='red'>Not enough room in cargo compartment.</font>")
|
||||||
return
|
return
|
||||||
|
|
||||||
occupant_message("You lift [target] and start to load it into cargo compartment.")
|
occupant_message("You lift [target] and start to load it into cargo compartment.")
|
||||||
chassis.visible_message("[chassis] lifts [target] and starts to load it into cargo compartment.")
|
chassis.visible_message("[chassis] lifts [target] and starts to load it into cargo compartment.")
|
||||||
set_ready_state(0)
|
set_ready_state(0)
|
||||||
@@ -637,6 +637,11 @@
|
|||||||
pr_repair_droid.set_delay(equip_cooldown)
|
pr_repair_droid.set_delay(equip_cooldown)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
Destroy()
|
||||||
|
qdel(pr_repair_droid)
|
||||||
|
pr_repair_droid = null
|
||||||
|
..()
|
||||||
|
|
||||||
attach(obj/mecha/M as obj)
|
attach(obj/mecha/M as obj)
|
||||||
..()
|
..()
|
||||||
droid_overlay = new(src.icon, icon_state = "repair_droid")
|
droid_overlay = new(src.icon, icon_state = "repair_droid")
|
||||||
@@ -726,6 +731,11 @@
|
|||||||
pr_energy_relay.set_delay(equip_cooldown)
|
pr_energy_relay.set_delay(equip_cooldown)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
Destroy()
|
||||||
|
qdel(pr_energy_relay)
|
||||||
|
pr_energy_relay = null
|
||||||
|
..()
|
||||||
|
|
||||||
detach()
|
detach()
|
||||||
pr_energy_relay.stop()
|
pr_energy_relay.stop()
|
||||||
// chassis.proc_res["dynusepower"] = null
|
// chassis.proc_res["dynusepower"] = null
|
||||||
@@ -842,6 +852,11 @@
|
|||||||
init()
|
init()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
Destroy()
|
||||||
|
qdel(pr_mech_generator)
|
||||||
|
pr_mech_generator = null
|
||||||
|
..()
|
||||||
|
|
||||||
proc/init()
|
proc/init()
|
||||||
fuel = new /obj/item/stack/sheet/mineral/phoron(src)
|
fuel = new /obj/item/stack/sheet/mineral/phoron(src)
|
||||||
fuel.amount = 0
|
fuel.amount = 0
|
||||||
|
|||||||
@@ -82,6 +82,7 @@
|
|||||||
/obj/mecha/New()
|
/obj/mecha/New()
|
||||||
..()
|
..()
|
||||||
events = new
|
events = new
|
||||||
|
|
||||||
icon_state += "-open"
|
icon_state += "-open"
|
||||||
add_radio()
|
add_radio()
|
||||||
add_cabin()
|
add_cabin()
|
||||||
@@ -98,11 +99,60 @@
|
|||||||
mechas_list += src //global mech list
|
mechas_list += src //global mech list
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/mecha/Del()
|
/obj/mecha/Destroy()
|
||||||
src.go_out()
|
src.go_out()
|
||||||
|
for(var/mob/M in src) //Let's just be ultra sure
|
||||||
|
M.Move(loc)
|
||||||
|
|
||||||
|
if(loc)
|
||||||
|
loc.Exited(src)
|
||||||
|
loc = null
|
||||||
|
|
||||||
|
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
|
||||||
|
E.reliability = round(rand(E.reliability/3,E.reliability))
|
||||||
|
else
|
||||||
|
E.forceMove(loc)
|
||||||
|
E.destroy()
|
||||||
|
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
|
||||||
|
for(var/obj/item/mecha_parts/mecha_equipment/E in equipment)
|
||||||
|
E.detach(loc)
|
||||||
|
E.destroy()
|
||||||
|
if(cell)
|
||||||
|
qdel(cell)
|
||||||
|
if(internal_tank)
|
||||||
|
qdel(internal_tank)
|
||||||
|
equipment.Cut()
|
||||||
|
cell = null
|
||||||
|
internal_tank = null
|
||||||
|
|
||||||
|
qdel(pr_int_temp_processor)
|
||||||
|
qdel(pr_inertial_movement)
|
||||||
|
qdel(pr_give_air)
|
||||||
|
qdel(pr_internal_damage)
|
||||||
|
qdel(spark_system)
|
||||||
|
pr_int_temp_processor = null
|
||||||
|
pr_give_air = null
|
||||||
|
pr_internal_damage = null
|
||||||
|
spark_system = null
|
||||||
|
|
||||||
mechas_list -= src //global mech list
|
mechas_list -= src //global mech list
|
||||||
..()
|
..()
|
||||||
return
|
|
||||||
|
|
||||||
////////////////////////
|
////////////////////////
|
||||||
////// Helpers /////////
|
////// Helpers /////////
|
||||||
@@ -452,7 +502,7 @@
|
|||||||
if(src.health > 0)
|
if(src.health > 0)
|
||||||
src.spark_system.start()
|
src.spark_system.start()
|
||||||
else
|
else
|
||||||
src.destroy()
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/mecha/attack_hand(mob/user as mob)
|
/obj/mecha/attack_hand(mob/user as mob)
|
||||||
@@ -555,52 +605,6 @@
|
|||||||
Proj.on_hit(src)
|
Proj.on_hit(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/mecha/proc/destroy()
|
|
||||||
spawn()
|
|
||||||
go_out()
|
|
||||||
var/turf/T = get_turf(src)
|
|
||||||
tag = "\ref[src]" //better safe then sorry
|
|
||||||
if(loc)
|
|
||||||
loc.Exited(src)
|
|
||||||
loc = null
|
|
||||||
if(T)
|
|
||||||
if(istype(src, /obj/mecha/working/ripley/))
|
|
||||||
var/obj/mecha/working/ripley/R = src
|
|
||||||
if(R.cargo)
|
|
||||||
for(var/obj/O in R.cargo) //Dump contents of stored cargo
|
|
||||||
O.loc = T
|
|
||||||
R.cargo -= O
|
|
||||||
T.Entered(O)
|
|
||||||
|
|
||||||
if(prob(30))
|
|
||||||
explosion(T, 0, 0, 1, 3)
|
|
||||||
spawn(0)
|
|
||||||
if(wreckage)
|
|
||||||
var/obj/effect/decal/mecha_wreckage/WR = new wreckage(T)
|
|
||||||
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
|
|
||||||
E.reliability = round(rand(E.reliability/3,E.reliability))
|
|
||||||
else
|
|
||||||
E.forceMove(T)
|
|
||||||
E.destroy()
|
|
||||||
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
|
|
||||||
for(var/obj/item/mecha_parts/mecha_equipment/E in equipment)
|
|
||||||
E.forceMove(T)
|
|
||||||
E.destroy()
|
|
||||||
spawn(0)
|
|
||||||
del(src)
|
|
||||||
return
|
|
||||||
|
|
||||||
/obj/mecha/ex_act(severity)
|
/obj/mecha/ex_act(severity)
|
||||||
src.log_message("Affected by explosion of severity: [severity].",1)
|
src.log_message("Affected by explosion of severity: [severity].",1)
|
||||||
if(prob(src.deflect_chance))
|
if(prob(src.deflect_chance))
|
||||||
@@ -608,16 +612,16 @@
|
|||||||
src.log_append_to_last("Armor saved, changing severity to [severity].")
|
src.log_append_to_last("Armor saved, changing severity to [severity].")
|
||||||
switch(severity)
|
switch(severity)
|
||||||
if(1.0)
|
if(1.0)
|
||||||
src.destroy()
|
qdel(src)
|
||||||
if(2.0)
|
if(2.0)
|
||||||
if (prob(30))
|
if (prob(30))
|
||||||
src.destroy()
|
qdel(src)
|
||||||
else
|
else
|
||||||
src.take_damage(initial(src.health)/2)
|
src.take_damage(initial(src.health)/2)
|
||||||
src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),1)
|
src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),1)
|
||||||
if(3.0)
|
if(3.0)
|
||||||
if (prob(5))
|
if (prob(5))
|
||||||
src.destroy()
|
qdel(src)
|
||||||
else
|
else
|
||||||
src.take_damage(initial(src.health)/5)
|
src.take_damage(initial(src.health)/5)
|
||||||
src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),1)
|
src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),1)
|
||||||
|
|||||||
@@ -9,6 +9,16 @@
|
|||||||
wreckage = /obj/effect/decal/mecha_wreckage/ripley
|
wreckage = /obj/effect/decal/mecha_wreckage/ripley
|
||||||
cargo_capacity = 10
|
cargo_capacity = 10
|
||||||
|
|
||||||
|
/obj/mecha/working/ripley/Destroy()
|
||||||
|
for(var/atom/movable/A in src.cargo)
|
||||||
|
A.loc = loc
|
||||||
|
var/turf/T = loc
|
||||||
|
if(istype(T))
|
||||||
|
T.Entered(A)
|
||||||
|
step_rand(A)
|
||||||
|
cargo.Cut()
|
||||||
|
..()
|
||||||
|
|
||||||
/obj/mecha/working/ripley/firefighter
|
/obj/mecha/working/ripley/firefighter
|
||||||
desc = "Standart APLU chassis was refitted with additional thermal protection and cistern."
|
desc = "Standart APLU chassis was refitted with additional thermal protection and cistern."
|
||||||
name = "APLU \"Firefighter\""
|
name = "APLU \"Firefighter\""
|
||||||
|
|||||||
Reference in New Issue
Block a user