mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-30 12:03:11 +00:00
Merge branch 'dev' into ofBotsAndMobs
Conflicts: code/game/machinery/bots/cleanbot.dm code/game/machinery/bots/ed209bot.dm code/game/machinery/bots/farmbot.dm code/game/machinery/bots/floorbot.dm code/game/machinery/bots/medbot.dm code/game/machinery/bots/secbot.dm code/game/objects/items/robot/robot_parts.dm
This commit is contained in:
@@ -177,7 +177,7 @@ datum
|
||||
BR.reaction(target, INGEST)
|
||||
spawn(5)
|
||||
BR.trans_to(target, BR.total_volume)
|
||||
del(B)
|
||||
qdel(B)
|
||||
|
||||
return amount
|
||||
|
||||
@@ -405,7 +405,7 @@ datum
|
||||
var/datum/reagent/R = A
|
||||
if (R.id == reagent)
|
||||
reagent_list -= A
|
||||
del(A)
|
||||
qdel(A)
|
||||
update_total()
|
||||
my_atom.on_reagent_change()
|
||||
return 0
|
||||
@@ -649,6 +649,15 @@ datum
|
||||
|
||||
return trans_data
|
||||
|
||||
datum/reagents/Destroy()
|
||||
..()
|
||||
for(var/datum/reagent/R in reagent_list)
|
||||
qdel(R)
|
||||
reagent_list.Cut()
|
||||
reagent_list = null
|
||||
if(my_atom && my_atom.reagents == src)
|
||||
my_atom.reagents = null
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
@@ -37,19 +37,19 @@
|
||||
/obj/machinery/chem_master/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
del(src)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if (prob(50))
|
||||
del(src)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/machinery/chem_master/blob_act()
|
||||
if (prob(50))
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/chem_master/meteorhit()
|
||||
del(src)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/machinery/chem_master/attackby(var/obj/item/weapon/B as obj, var/mob/user as mob)
|
||||
@@ -751,7 +751,7 @@
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/remove_object(var/obj/item/O)
|
||||
holdingitems -= O
|
||||
del(O)
|
||||
qdel(O)
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/grind()
|
||||
|
||||
|
||||
@@ -162,7 +162,7 @@ datum
|
||||
|
||||
/* Must check the transfering of reagents and their data first. They all can point to one disease datum.
|
||||
|
||||
Del()
|
||||
Destroy()
|
||||
if(src.data["virus"])
|
||||
var/datum/disease/D = src.data["virus"]
|
||||
D.cure(0)
|
||||
@@ -246,7 +246,7 @@ datum
|
||||
//Put out fires.
|
||||
var/hotspot = (locate(/obj/fire) in T)
|
||||
if(hotspot)
|
||||
del(hotspot)
|
||||
qdel(hotspot)
|
||||
if(environment)
|
||||
environment.react() //react at the new temperature
|
||||
|
||||
@@ -258,7 +258,7 @@ datum
|
||||
lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
|
||||
lowertemp.react()
|
||||
T.assume_air(lowertemp)
|
||||
del(hotspot)
|
||||
qdel(hotspot)
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/monkeycube))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O
|
||||
if(!cube.wrapped)
|
||||
@@ -372,7 +372,7 @@ datum
|
||||
M.invisibility = 101
|
||||
for(var/obj/item/W in M)
|
||||
if(istype(W, /obj/item/weapon/implant)) //TODO: Carn. give implants a dropped() or something
|
||||
del(W)
|
||||
qdel(W)
|
||||
continue
|
||||
W.layer = initial(W.layer)
|
||||
W.loc = M.loc
|
||||
@@ -384,7 +384,7 @@ datum
|
||||
M.mind.transfer_to(new_mob)
|
||||
else
|
||||
new_mob.key = M.key
|
||||
del(M)
|
||||
qdel(M)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -940,7 +940,7 @@ datum
|
||||
|
||||
reaction_obj(var/obj/O, var/volume)
|
||||
if(istype(O,/obj/effect/decal/cleanable))
|
||||
del(O)
|
||||
qdel(O)
|
||||
else
|
||||
if(O)
|
||||
O.clean_blood()
|
||||
@@ -953,7 +953,7 @@ datum
|
||||
T.clean_blood()
|
||||
for(var/obj/effect/decal/cleanable/C in T.contents)
|
||||
src.reaction_obj(C, volume)
|
||||
del(C)
|
||||
qdel(C)
|
||||
|
||||
for(var/mob/living/carbon/slime/M in T)
|
||||
M.adjustToxLoss(rand(5,10))
|
||||
@@ -1790,7 +1790,7 @@ datum
|
||||
..()
|
||||
return
|
||||
|
||||
Del()
|
||||
Destroy()
|
||||
if(holder && ismob(holder.my_atom))
|
||||
var/mob/M = holder.my_atom
|
||||
M.status_flags &= ~FAKEDEATH
|
||||
@@ -1847,7 +1847,7 @@ datum
|
||||
var/turf/simulated/wall/W = T
|
||||
if(W.rotting)
|
||||
W.rotting = 0
|
||||
for(var/obj/effect/E in W) if(E.name == "Wallrot") del E
|
||||
for(var/obj/effect/E in W) if(E.name == "Wallrot") qdel(E)
|
||||
|
||||
for(var/mob/O in viewers(W, null))
|
||||
O.show_message(text("\blue The fungi are completely dissolved by the solution!"), 1)
|
||||
@@ -2036,7 +2036,7 @@ datum
|
||||
if(H.head)
|
||||
if(prob(meltprob) && !H.head.unacidable)
|
||||
H << "<span class='danger'>Your headgear melts away but protects you from the acid!</span>"
|
||||
del(H.head)
|
||||
qdel(H.head)
|
||||
H.update_inv_head(0)
|
||||
H.update_hair(0)
|
||||
else
|
||||
@@ -2046,7 +2046,7 @@ datum
|
||||
if(H.wear_mask)
|
||||
if(prob(meltprob) && !H.wear_mask.unacidable)
|
||||
H << "<span class='danger'>Your mask melts away but protects you from the acid!</span>"
|
||||
del (H.wear_mask)
|
||||
qdel (H.wear_mask)
|
||||
H.update_inv_wear_mask(0)
|
||||
H.update_hair(0)
|
||||
else
|
||||
@@ -2056,7 +2056,7 @@ datum
|
||||
if(H.glasses) //Doesn't protect you from the acid but can melt anyways!
|
||||
if(prob(meltprob) && !H.glasses.unacidable)
|
||||
H << "<span class='danger'>Your glasses melts away!</span>"
|
||||
del (H.glasses)
|
||||
qdel (H.glasses)
|
||||
H.update_inv_glasses(0)
|
||||
|
||||
if(!M.unacidable)
|
||||
@@ -2083,7 +2083,7 @@ datum
|
||||
I.desc = "Looks like this was \an [O] some time ago."
|
||||
for(var/mob/M in viewers(5, O))
|
||||
M << "\red \the [O] melts."
|
||||
del(O)
|
||||
qdel(O)
|
||||
|
||||
toxin/acid/polyacid
|
||||
name = "Polytrinic acid"
|
||||
@@ -2467,7 +2467,7 @@ datum
|
||||
lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
|
||||
lowertemp.react()
|
||||
T.assume_air(lowertemp)
|
||||
del(hotspot)
|
||||
qdel(hotspot)
|
||||
|
||||
enzyme
|
||||
name = "Universal Enzyme"
|
||||
@@ -4428,5 +4428,9 @@ datum
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/Destroy() // This should only be called by the holder, so it's already handled clearing its references
|
||||
..()
|
||||
holder = null
|
||||
|
||||
// Undefine the alias for REAGENTS_EFFECT_MULTIPLER
|
||||
#undef REM
|
||||
|
||||
@@ -869,7 +869,7 @@ datum
|
||||
M.client.screen += blueeffect
|
||||
sleep(20)
|
||||
M.client.screen -= blueeffect
|
||||
del(blueeffect)
|
||||
qdel(blueeffect)
|
||||
slimecrit
|
||||
name = "Slime Crit"
|
||||
id = "m_tele"
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
processing_objects.Add(src)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/borghypo/Del()
|
||||
/obj/item/weapon/reagent_containers/borghypo/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
..()
|
||||
|
||||
|
||||
@@ -173,8 +173,7 @@
|
||||
center_of_mass = list("x"=16, "y"=10)
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("cola", 15)
|
||||
reagents.add_reagent("orangejuice", 15)
|
||||
reagents.add_reagent("brownstar", 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/cans/space_up
|
||||
name = "Space-Up"
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
user.put_in_active_hand(B)
|
||||
src.transfer_fingerprints_to(B)
|
||||
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/attack(mob/living/target as mob, mob/living/user as mob)
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
O.show_message(text("\blue <B>The contents of the [src] splashes all over [target]!</B>"), 1)
|
||||
src.reagents.reaction(target, TOUCH)
|
||||
|
||||
//Finally, smash the bottle. This kills (del) the bottle.
|
||||
//Finally, smash the bottle. This kills (qdel) the bottle.
|
||||
src.smash(target, user)
|
||||
|
||||
return
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
if(istype(W,/obj/item/weapon/shard) || istype(W,/obj/item/weapon/reagent_containers/food/snacks))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/csandwich/S = new(get_turf(src))
|
||||
S.attackby(W,user)
|
||||
del(src)
|
||||
qdel(src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/csandwich
|
||||
@@ -73,9 +73,9 @@
|
||||
if(length(name) > 80) name = "[pick(list("absurd","colossal","enormous","ridiculous"))] sandwich"
|
||||
w_class = n_ceil(Clamp((ingredients.len/2),2,4))
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/csandwich/Del()
|
||||
/obj/item/weapon/reagent_containers/food/snacks/csandwich/Destroy()
|
||||
for(var/obj/item/O in ingredients)
|
||||
del(O)
|
||||
qdel(O)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/csandwich/examine(mob/user)
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
usr.put_in_hands(TrashItem)
|
||||
else if(istype(trash,/obj/item))
|
||||
usr.put_in_hands(trash)
|
||||
del(src)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/attack_self(mob/user as mob)
|
||||
@@ -38,7 +38,7 @@
|
||||
if(!reagents.total_volume)
|
||||
user << "<span class='danger'>None of [src] left!</span>"
|
||||
user.drop_from_inventory(src)
|
||||
del(src)
|
||||
qdel(src)
|
||||
return 0
|
||||
|
||||
if(istype(M, /mob/living/carbon))
|
||||
@@ -152,7 +152,7 @@
|
||||
reagents.trans_to(U,min(reagents.total_volume,5))
|
||||
|
||||
if (reagents.total_volume <= 0)
|
||||
del(src)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
if (is_sliceable())
|
||||
@@ -187,13 +187,13 @@
|
||||
for(var/i=1 to (slices_num-slices_lost))
|
||||
var/obj/slice = new slice_path (src.loc)
|
||||
reagents.trans_to(slice,reagents_per_slice)
|
||||
del(src)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/proc/is_sliceable()
|
||||
return (slices_num && slice_path && slices_num > 0)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/Del()
|
||||
/obj/item/weapon/reagent_containers/food/snacks/Destroy()
|
||||
if(contents)
|
||||
for(var/atom/movable/something in contents)
|
||||
something.loc = get_turf(src)
|
||||
@@ -212,7 +212,7 @@
|
||||
spawn(5)
|
||||
if(!src && !user.client)
|
||||
user.custom_emote(1,"[pick("burps", "cries for more", "burps twice", "looks at the area where the food was")]")
|
||||
del(src)
|
||||
qdel(src)
|
||||
On_Consume(user)
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
@@ -477,14 +477,14 @@
|
||||
user << "You crack \the [src] into \the [O]."
|
||||
reagents.trans_to(O, reagents.total_volume)
|
||||
user.drop_from_inventory(src)
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/egg/throw_impact(atom/hit_atom)
|
||||
..()
|
||||
new/obj/effect/decal/cleanable/egg_smudge(src.loc)
|
||||
src.reagents.reaction(hit_atom, TOUCH)
|
||||
src.visible_message("\red [src.name] has been squashed.","\red You hear a smack.")
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/egg/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype( W, /obj/item/toy/crayon ))
|
||||
@@ -924,7 +924,7 @@
|
||||
..()
|
||||
new/obj/effect/decal/cleanable/pie_smudge(src.loc)
|
||||
src.visible_message("\red [src.name] splats.","\red You hear a splat.")
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/berryclafoutis
|
||||
name = "Berry Clafoutis"
|
||||
@@ -1588,7 +1588,7 @@
|
||||
M << "\red \The [src] expands!"
|
||||
var/mob/living/carbon/human/H = new (src)
|
||||
H.set_species(monkey_type)
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
proc/Unwrap(mob/user as mob)
|
||||
icon_state = "monkeycube"
|
||||
@@ -2830,7 +2830,7 @@
|
||||
if(istype(W,/obj/item/weapon/kitchen/rollingpin))
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough(src)
|
||||
user << "You flatten the dough."
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
// slicable into 3xdoughslices
|
||||
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
|
||||
@@ -2872,30 +2872,30 @@
|
||||
if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/meatball))
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/monkeyburger(src)
|
||||
user << "You make a burger."
|
||||
del(W)
|
||||
del(src)
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
|
||||
// Bun + cutlet = hamburger
|
||||
else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/cutlet))
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/monkeyburger(src)
|
||||
user << "You make a burger."
|
||||
del(W)
|
||||
del(src)
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
|
||||
// Bun + sausage = hotdog
|
||||
else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/sausage))
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/hotdog(src)
|
||||
user << "You make a hotdog."
|
||||
del(W)
|
||||
del(src)
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
|
||||
// Burger + cheese wedge = cheeseburger
|
||||
/obj/item/weapon/reagent_containers/food/snacks/monkeyburger/attackby(obj/item/weapon/reagent_containers/food/snacks/cheesewedge/W as obj, mob/user as mob)
|
||||
if(istype(W))// && !istype(src,/obj/item/weapon/reagent_containers/food/snacks/cheesewedge))
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/cheeseburger(src)
|
||||
user << "You make a cheeseburger."
|
||||
del(W)
|
||||
del(src)
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
..()
|
||||
@@ -2905,8 +2905,8 @@
|
||||
if(istype(W))
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/cheeseburger(src)
|
||||
user << "You make a cheeseburger."
|
||||
del(W)
|
||||
del(src)
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
..()
|
||||
@@ -2975,7 +2975,7 @@
|
||||
if(istype(W,/obj/item/weapon/kitchen/utensil/knife))
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/rawsticks(src)
|
||||
user << "You cut the potato."
|
||||
del(src)
|
||||
qdel(src)
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/rawcutlet(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/rawcutlet(src)
|
||||
user << "You cut the meat into thin strips."
|
||||
del(src)
|
||||
qdel(src)
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
@@ -270,10 +270,10 @@
|
||||
attackby(var/obj/D, mob/user as mob)
|
||||
if(isprox(D))
|
||||
user << "You add [D] to [src]."
|
||||
del(D)
|
||||
qdel(D)
|
||||
user.put_in_hands(new /obj/item/weapon/bucket_sensor)
|
||||
user.drop_from_inventory(src)
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
update_icon()
|
||||
overlays.Cut()
|
||||
|
||||
@@ -31,9 +31,9 @@
|
||||
M.drop_from_inventory(src) //icon update
|
||||
if(reagents.total_volume)
|
||||
reagents.trans_to_ingest(M, reagents.total_volume)
|
||||
del(src)
|
||||
qdel(src)
|
||||
else
|
||||
del(src)
|
||||
qdel(src)
|
||||
return 1
|
||||
|
||||
else if(istype(M, /mob/living/carbon/human) )
|
||||
@@ -58,9 +58,9 @@
|
||||
|
||||
if(reagents.total_volume)
|
||||
reagents.trans_to_ingest(M, reagents.total_volume)
|
||||
del(src)
|
||||
qdel(src)
|
||||
else
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
return 1
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
O.show_message("\red [user] puts something in \the [target].", 1)
|
||||
|
||||
spawn(5)
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
spawn(0)
|
||||
D.reagents.reaction(A)
|
||||
sleep(5)
|
||||
del(D)
|
||||
qdel(D)
|
||||
else
|
||||
var/obj/effect/decal/chempuff/D = new/obj/effect/decal/chempuff(get_turf(src))
|
||||
D.create_reagents(amount_per_transfer_from_this)
|
||||
@@ -93,7 +93,7 @@
|
||||
D.reagents.reaction(A_turf)
|
||||
sleep(2)
|
||||
sleep(3)
|
||||
del(D)
|
||||
qdel(D)
|
||||
|
||||
return
|
||||
|
||||
@@ -229,7 +229,7 @@
|
||||
for(var/atom/t in get_turf(D))
|
||||
D.reagents.reaction(t)
|
||||
sleep(2)
|
||||
del(D)
|
||||
qdel(D)
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -251,7 +251,7 @@
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red <B>[user] tries to stab [target] in \the [hit_area] with [src.name], but the attack is deflected by armor!</B>"), 1)
|
||||
user.remove_from_mob(src)
|
||||
del(src)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
|
||||
@@ -44,17 +44,17 @@
|
||||
ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
del(src)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if (prob(50))
|
||||
new /obj/effect/effect/water(src.loc)
|
||||
del(src)
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if (prob(5))
|
||||
new /obj/effect/effect/water(src.loc)
|
||||
del(src)
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
return
|
||||
@@ -62,7 +62,7 @@
|
||||
blob_act()
|
||||
if(prob(50))
|
||||
new /obj/effect/effect/water(src.loc)
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
else
|
||||
explosion(src.loc,-1,1,2)
|
||||
if(src)
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/reagent_dispensers/fueltank/fire_act(datum/gas_mixture/air, temperature, volume)
|
||||
if(temperature > T0C+500)
|
||||
@@ -225,7 +225,7 @@
|
||||
|
||||
/obj/structure/reagent_dispensers/beerkeg/blob_act()
|
||||
explosion(src.loc,0,3,5,7,10)
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/reagent_dispensers/virusfood
|
||||
name = "Virus Food Dispenser"
|
||||
|
||||
Reference in New Issue
Block a user