Merge branch 'dev' into ofChemistryAndStuff

Conflicts:
	code/datums/recipe.dm
	code/game/machinery/bots/farmbot.dm
	code/game/machinery/bots/medbot.dm
	code/game/mecha/equipment/tools/tools.dm
	code/game/objects/effects/chem/chemsmoke.dm
	code/game/objects/effects/effect_system.dm
	code/game/objects/items/toys.dm
	code/game/objects/items/weapons/extinguisher.dm
	code/game/objects/items/weapons/mop.dm
	code/modules/mob/living/carbon/human/human.dm
	code/modules/organs/organ_internal.dm
	code/modules/reagents/Chemistry-Holder.dm
	code/modules/reagents/Chemistry-Reagents.dm
	code/modules/reagents/Chemistry-Recipes.dm
	code/modules/reagents/reagent_containers/food/snacks.dm
	code/modules/reagents/reagent_containers/pill.dm
	code/modules/reagents/reagent_containers/spray.dm
	maps/exodus-1.dmm
This commit is contained in:
Kelenius
2015-04-28 10:49:26 +03:00
999 changed files with 26502 additions and 23206 deletions
+6 -2
View File
@@ -2,8 +2,9 @@
icon = 'icons/obj/barsigns.dmi'
icon_state = "empty"
anchored = 1
var/cult = 0
New()
ChangeSign(pick("pinkflamingo", "magmasea", "limbo", "rustyaxe", "armokbar", "brokendrum", "meadbay", "thedamnwall", "thecavern", "cindikate", "theorchard", "thesaucyclown", "theclownshead", "whiskeyimplant", "carpecarp", "robustroadhouse", "greytide", "theredshirt"))
ChangeSign(pick("pinkflamingo", "magmasea", "limbo", "rustyaxe", "armokbar", "brokendrum", "meadbay", "thedamnwall", "thecavern", "cindikate", "theorchard", "thesaucyclown", "theclownshead", "whiskeyimplant", "carpecarp", "robustroadhouse", "greytide", "theredshirt","thebark","theharmbaton","theharmedbaton","thesingulo","thedrukcarp","thedrunkcarp", "scotch","officerbeersky","on"))
return
proc/ChangeSign(var/Text)
src.icon_state = "[Text]"
@@ -12,10 +13,13 @@
return
/obj/structure/sign/double/barsign/attackby(obj/item/I, mob/user)
if(cult)
return
if(istype(I, /obj/item/weapon/card/id))
var/obj/item/weapon/card/id/card = I
if(access_bar in card.GetAccess())
var/sign_type = input(user, "What would you like to change the barsign to?") as null|anything in list("Off", "Pink Flamingo", "Magma Sea", "Limbo", "Rusty Axe", "Armok Bar", "Broken Drum", "Mead Bay", "The Damn Wall", "The Cavern", "Cindi Kate", "The Orchard", "The Saucy Clown", "The Clowns Head", "Whiskey Implant", "Carpe Carp", "Robust Roadhouse", "Greytide", "The Redshirt")
var/sign_type = input(user, "What would you like to change the barsign to?") as null|anything in list("Off", "Pink Flamingo", "Magma Sea", "Limbo", "Rusty Axe", "Armok Bar", "Broken Drum", "Mead Bay", "The Damn Wall", "The Cavern", "Cindi Kate", "The Orchard", "The Saucy Clown", "The Clowns Head", "Whiskey Implant", "Carpe Carp", "Robust Roadhouse", "Greytide", "The Redshirt", "The Bark", "The Harm Baton", "The Harmed Baton", "The Singulo", "The Druk Carp", "The Drunk Carp", "Scotch", "Officer Beersky", "On")
if(sign_type == null)
return
else
@@ -15,8 +15,6 @@ LINEN BINS
throw_speed = 1
throw_range = 2
w_class = 2.0
item_color = "white"
/obj/item/weapon/bedsheet/attack_self(mob/user as mob)
user.drop_item()
@@ -30,67 +28,51 @@ LINEN BINS
/obj/item/weapon/bedsheet/blue
icon_state = "sheetblue"
item_color = "blue"
/obj/item/weapon/bedsheet/green
icon_state = "sheetgreen"
item_color = "green"
/obj/item/weapon/bedsheet/orange
icon_state = "sheetorange"
item_color = "orange"
/obj/item/weapon/bedsheet/purple
icon_state = "sheetpurple"
item_color = "purple"
/obj/item/weapon/bedsheet/rainbow
icon_state = "sheetrainbow"
item_color = "rainbow"
/obj/item/weapon/bedsheet/red
icon_state = "sheetred"
item_color = "red"
/obj/item/weapon/bedsheet/yellow
icon_state = "sheetyellow"
item_color = "yellow"
/obj/item/weapon/bedsheet/mime
icon_state = "sheetmime"
item_color = "mime"
/obj/item/weapon/bedsheet/clown
icon_state = "sheetclown"
item_color = "clown"
/obj/item/weapon/bedsheet/captain
icon_state = "sheetcaptain"
item_color = "captain"
/obj/item/weapon/bedsheet/rd
icon_state = "sheetrd"
item_color = "director"
/obj/item/weapon/bedsheet/medical
icon_state = "sheetmedical"
item_color = "medical"
/obj/item/weapon/bedsheet/hos
icon_state = "sheethos"
item_color = "hosred"
/obj/item/weapon/bedsheet/hop
icon_state = "sheethop"
item_color = "hop"
/obj/item/weapon/bedsheet/ce
icon_state = "sheetce"
item_color = "chief"
/obj/item/weapon/bedsheet/brown
icon_state = "sheetbrown"
item_color = "brown"
/obj/structure/bedsheetbin
+1 -2
View File
@@ -21,8 +21,7 @@
if (can_hang && !coat)
user.visible_message("[user] hangs [W] on \the [src].", "You hang [W] on the \the [src]")
coat = W
user.drop_item(src)
coat.loc = src
user.drop_from_inventory(coat, src)
update_icon()
else
user << "<span class='notice'>You cannot hang [W] on [src]</span>"
@@ -146,30 +146,33 @@
for(var/atom/movable/A as mob|obj in src)//pulls everything out of the locker and hits it with an explosion
A.loc = src.loc
A.ex_act(severity++)
del(src)
qdel(src)
if(2)
if(prob(50))
for (var/atom/movable/A as mob|obj in src)
A.loc = src.loc
A.ex_act(severity++)
del(src)
qdel(src)
if(3)
if(prob(5))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
A.ex_act(severity++)
del(src)
qdel(src)
/obj/structure/closet/proc/damage(var/damage)
health -= damage
if(health <= 0)
for(var/atom/movable/A in src)
A.loc = src.loc
qdel(src)
/obj/structure/closet/bullet_act(var/obj/item/projectile/Proj)
if(!(Proj.damage_type == BRUTE || Proj.damage_type == BURN))
return
health -= Proj.damage
..()
if(health <= 0)
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
del(src)
damage(Proj.damage)
return
@@ -178,14 +181,14 @@
if(prob(75))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
del(src)
qdel(src)
/obj/structure/closet/meteorhit(obj/O as obj)
if(O.icon_state == "flaming")
for(var/mob/M in src)
M.meteorhit(O)
src.dump_contents()
del(src)
qdel(src)
/obj/structure/closet/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(src.opened)
@@ -202,7 +205,7 @@
new /obj/item/stack/sheet/metal(src.loc)
for(var/mob/M in viewers(src))
M.show_message("<span class='notice'>\The [src] has been cut apart by [user] with \the [WT].</span>", 3, "You hear welding.", 2)
del(src)
qdel(src)
return
if(isrobot(user))
return
@@ -249,6 +252,10 @@
src.add_fingerprint(user)
return
/obj/structure/closet/attack_ai(mob/user)
if(istype(user, /mob/living/silicon/robot) && Adjacent(user)) // Robots can open/close it, but not the AI.
attack_hand(user)
/obj/structure/closet/relaymove(mob/user as mob)
if(user.stat || !isturf(src.loc))
return
@@ -306,5 +313,5 @@
return
visible_message("<span class='danger'>[user] [attack_message] the [src]!</span>")
dump_contents()
spawn(1) del(src)
spawn(1) qdel(src)
return 1
@@ -61,7 +61,7 @@
user << "\red Unwield the axe first."
return
fireaxe = O
user.drop_item(O)
user.remove_from_mob(O)
src.contents += O
user << "\blue You place the fire axe back in the [src.name]."
update_icon()
@@ -18,6 +18,7 @@
/obj/structure/closet/l3closet/general/New()
..()
qdel(contents)
contents = list()
new /obj/item/clothing/suit/bio_suit/general( src )
new /obj/item/clothing/head/bio_hood/general( src )
@@ -30,6 +31,7 @@
/obj/structure/closet/l3closet/virology/New()
..()
qdel(contents)
contents = list()
new /obj/item/clothing/suit/bio_suit/virology( src )
new /obj/item/clothing/head/bio_hood/virology( src )
@@ -44,6 +46,7 @@
/obj/structure/closet/l3closet/security/New()
..()
qdel(contents)
contents = list()
new /obj/item/clothing/suit/bio_suit/security( src )
new /obj/item/clothing/head/bio_hood/security( src )
@@ -56,6 +59,7 @@
/obj/structure/closet/l3closet/janitor/New()
..()
qdel(contents)
contents = list()
new /obj/item/clothing/suit/bio_suit/janitor( src )
new /obj/item/clothing/head/bio_hood/janitor( src )
@@ -68,6 +72,7 @@
/obj/structure/closet/l3closet/scientist/New()
..()
qdel(contents)
contents = list()
new /obj/item/clothing/suit/bio_suit/scientist( src )
new /obj/item/clothing/head/bio_hood/scientist( src )
@@ -19,7 +19,7 @@
New()
..()
for(var/i = 0, i < 6, i++)
new /obj/item/weapon/reagent_containers/food/snacks/flour(src)
new /obj/item/weapon/reagent_containers/food/condiment/flour(src)
new /obj/item/weapon/reagent_containers/food/condiment/sugar(src)
for(var/i = 0, i < 3, i++)
new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src)
@@ -24,5 +24,6 @@
new /obj/item/weapon/minihoe(src)
new /obj/item/weapon/hatchet(src)
new /obj/item/weapon/wirecutters/clippers(src)
new /obj/item/weapon/reagent_containers/spray/plantbgone(src)
// new /obj/item/weapon/bee_net(src) //No more bees, March 2014
return
@@ -23,7 +23,7 @@
spawn(4)
// Not really the best way to do this, but it's better than "contents = list()"!
for(var/atom/movable/AM in contents)
del(AM)
qdel(AM)
new /obj/item/clothing/under/color/white( src )
new /obj/item/clothing/shoes/white( src )
return
@@ -55,7 +55,7 @@
spawn(4)
// Not really the best way to do this, but it's better than "contents = list()"!
for(var/atom/movable/AM in contents)
del(AM)
qdel(AM)
new /obj/item/weapon/storage/backpack/satchel/withwallet( src )
new /obj/item/device/radio/headset( src )
return
@@ -0,0 +1,133 @@
/obj/structure/closet/statue
name = "statue"
desc = "An incredibly lifelike marble carving"
icon = 'icons/obj/statue.dmi'
icon_state = "human_male"
density = 1
anchored = 1
health = 0 //destroying the statue kills the mob within
var/intialTox = 0 //these are here to keep the mob from taking damage from things that logically wouldn't affect a rock
var/intialFire = 0 //it's a little sloppy I know but it was this or the GODMODE flag. Lesser of two evils.
var/intialBrute = 0
var/intialOxy = 0
var/timer = 240 //eventually the person will be freed
/obj/structure/closet/statue/New(loc, var/mob/living/L)
if(L && (ishuman(L) || L.isMonkey() || iscorgi(L)))
if(L.buckled)
L.buckled = 0
L.anchored = 0
if(L.client)
L.client.perspective = EYE_PERSPECTIVE
L.client.eye = src
L.loc = src
L.sdisabilities |= MUTE
health = L.health + 100 //stoning damaged mobs will result in easier to shatter statues
intialTox = L.getToxLoss()
intialFire = L.getFireLoss()
intialBrute = L.getBruteLoss()
intialOxy = L.getOxyLoss()
if(ishuman(L))
name = "statue of [L.name]"
if(L.gender == "female")
icon_state = "human_female"
else if(L.isMonkey())
name = "statue of a monkey"
icon_state = "monkey"
else if(iscorgi(L))
name = "statue of a corgi"
icon_state = "corgi"
desc = "If it takes forever, I will wait for you..."
if(health == 0) //meaning if the statue didn't find a valid target
qdel(src)
return
processing_objects.Add(src)
..()
/obj/structure/closet/statue/process()
timer--
for(var/mob/living/M in src) //Go-go gadget stasis field
M.setToxLoss(intialTox)
M.adjustFireLoss(intialFire - M.getFireLoss())
M.adjustBruteLoss(intialBrute - M.getBruteLoss())
M.setOxyLoss(intialOxy)
if (timer <= 0)
dump_contents()
processing_objects.Remove(src)
qdel(src)
/obj/structure/closet/statue/dump_contents()
for(var/obj/O in src)
O.loc = src.loc
for(var/mob/living/M in src)
M.loc = src.loc
M.sdisabilities &= ~MUTE
M.take_overall_damage((M.health - health - 100),0) //any new damage the statue incurred is transfered to the mob
if(M.client)
M.client.eye = M.client.mob
M.client.perspective = MOB_PERSPECTIVE
/obj/structure/closet/statue/open()
return
/obj/structure/closet/statue/close()
return
/obj/structure/closet/statue/toggle()
return
/obj/structure/closet/statue/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
if(health <= 0)
for(var/mob/M in src)
shatter(M)
return
/obj/structure/closet/statue/attack_generic(var/mob/user, damage, attacktext, environment_smash)
if(damage && environment_smash)
for(var/mob/M in src)
shatter(M)
/obj/structure/closet/statue/blob_act()
for(var/mob/M in src)
shatter(M)
/obj/structure/closet/statue/meteorhit(obj/O as obj)
if(O.icon_state == "flaming")
for(var/mob/M in src)
M.meteorhit(O)
shatter(M)
/obj/structure/closet/statue/attackby(obj/item/I as obj, mob/user as mob)
health -= I.force
visible_message("<span class='danger'>[user] strikes [src] with [I].</span>")
if(health <= 0)
for(var/mob/M in src)
shatter(M)
/obj/structure/closet/statue/MouseDrop_T()
return
/obj/structure/closet/statue/relaymove()
return
/obj/structure/closet/statue/attack_hand()
return
/obj/structure/closet/statue/verb_toggleopen()
return
/obj/structure/closet/statue/update_icon()
return
/obj/structure/closet/statue/proc/shatter(mob/user as mob)
if (user)
user.dust()
dump_contents()
visible_message("<span class='warning'>[src] shatters!.</span>")
qdel(src)
@@ -56,12 +56,12 @@
// teehee - Ah, tg coders...
if ("delete")
del(src)
qdel(src)
//If you want to re-add fire, just add "fire" = 15 to the pick list.
/*if ("fire")
new /obj/structure/closet/firecloset(src.loc)
del(src)*/
qdel(src)*/
/obj/structure/closet/emcloset/legacy/New()
..()
@@ -105,18 +105,18 @@
switch(severity)
if(1.0)
for(var/obj/O in src.contents)
del(O)
del(src)
qdel(O)
qdel(src)
return
if(2.0)
for(var/obj/O in src.contents)
if(prob(50))
del(O)
del(src)
qdel(O)
qdel(src)
return
if(3.0)
if (prob(50))
del(src)
qdel(src)
return
else
return
@@ -18,7 +18,7 @@
user.visible_message("<span class='notice'>[user] pries \the [src] open.</span>", \
"<span class='notice'>You pry open \the [src].</span>", \
"<span class='notice'>You hear splitting wood.</span>")
del(src)
qdel(src)
else
return attack_hand(user)
+17 -5
View File
@@ -1,20 +1,23 @@
#define SHOWER_OPEN_LAYER MOB_LAYER + 0.1
#define SHOWER_CLOSED_LAYER OBJ_LAYER + 0.4
/obj/structure/curtain
name = "curtain"
icon = 'icons/obj/curtain.dmi'
icon_state = "closed"
layer = MOB_LAYER + 0.1
layer = SHOWER_OPEN_LAYER
opacity = 1
density = 0
/obj/structure/curtain/open
icon_state = "open"
layer = OBJ_LAYER
layer = SHOWER_CLOSED_LAYER
opacity = 0
/obj/structure/curtain/bullet_act(obj/item/projectile/P, def_zone)
if(!P.nodamage)
visible_message("<span class='warning'>[P] tears [src] down!</span>")
del(src)
qdel(src)
else
..(P, def_zone)
@@ -27,10 +30,10 @@
opacity = !opacity
if(opacity)
icon_state = "closed"
layer = MOB_LAYER + 0.1
layer = SHOWER_CLOSED_LAYER
else
icon_state = "open"
layer = OBJ_LAYER
layer = SHOWER_OPEN_LAYER
/obj/structure/curtain/black
name = "black curtain"
@@ -45,3 +48,12 @@
name = "shower curtain"
color = "#ACD1E9"
alpha = 200
/obj/structure/curtain/open/shower/engineering
color = "#FFA500"
/obj/structure/curtain/open/shower/security
color = "#AA0000"
#undef SHOWER_OPEN_LAYER
#undef SHOWER_CLOSED_LAYER
+3 -3
View File
@@ -17,7 +17,7 @@
if (occupied)
new /obj/item/weapon/gun/energy/captain( src.loc )
occupied = 0
del(src)
qdel(src)
if (2)
if (prob(50))
src.health -= 15
@@ -41,13 +41,13 @@
if (occupied)
new /obj/item/weapon/gun/energy/captain( src.loc )
occupied = 0
del(src)
qdel(src)
/obj/structure/displaycase/meteorhit(obj/O as obj)
new /obj/item/weapon/shard( src.loc )
new /obj/item/weapon/gun/energy/captain( src.loc )
del(src)
qdel(src)
/obj/structure/displaycase/proc/healthcheck()
@@ -166,7 +166,7 @@
if(!src || !WT.isOn()) return
user << "\blue You dissasembled the airlock assembly!"
new /obj/item/stack/sheet/metal(src.loc, 4)
del (src)
qdel (src)
else
user << "\blue You need more welding fuel."
return
@@ -277,7 +277,7 @@
var/obj/machinery/door/new_airlock = new path(src.loc, src)
new_airlock.dir = src.dir
del(src)
qdel(src)
else
..()
update_state()
@@ -19,7 +19,7 @@
part.loc = loc
part.master = null
part = null
del(src)
qdel(src)
return
return
+11 -11
View File
@@ -13,7 +13,7 @@
relativewall_neighbours()
..()
/obj/structure/falsewall/Del()
/obj/structure/falsewall/Destroy()
var/temploc = src.loc
@@ -98,7 +98,7 @@
T.ChangeTurf(/turf/simulated/wall)
else
T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]"))
del(src)
qdel(src)
if( istype(W, /obj/item/weapon/weldingtool) )
var/obj/item/weapon/weldingtool/WT = W
@@ -110,7 +110,7 @@
if(mineral != "phoron")//Stupid shit keeps me from pushing the attackby() to phoron walls -Sieve
T = get_turf(src)
T.attackby(W,user)
del(src)
qdel(src)
else
user << "\blue You can't reach, close it first!"
@@ -123,7 +123,7 @@
if(mineral != "phoron")
T = get_turf(src)
T.attackby(W,user)
del(src)
qdel(src)
//DRILLING
else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill))
@@ -134,7 +134,7 @@
T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]"))
T = get_turf(src)
T.attackby(W,user)
del(src)
qdel(src)
else if( istype(W, /obj/item/weapon/melee/energy/blade) )
var/turf/T = get_turf(src)
@@ -145,7 +145,7 @@
if(mineral != "phoron")
T = get_turf(src)
T.attackby(W,user)
del(src)
qdel(src)
/obj/structure/falsewall/update_icon()//Calling icon_update will refresh the smoothwalls if it's closed, otherwise it will make sure the icon is correct if it's open
..()
@@ -232,7 +232,7 @@
var/turf/T = get_turf(src)
user.visible_message("[user] tightens some bolts on the r wall.", "You tighten the bolts on the wall.")
T.ChangeTurf(/turf/simulated/wall) //Intentionally makes a regular wall instead of an r-wall (no cheap r-walls for you).
del(src)
qdel(src)
if( istype(W, /obj/item/weapon/weldingtool) )
var/obj/item/weapon/weldingtool/WT = W
@@ -241,14 +241,14 @@
T.ChangeTurf(/turf/simulated/wall)
T = get_turf(src)
T.attackby(W,user)
del(src)
qdel(src)
else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) )
var/turf/T = get_turf(src)
T.ChangeTurf(/turf/simulated/wall)
T = get_turf(src)
T.attackby(W,user)
del(src)
qdel(src)
//DRILLING
else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill))
@@ -256,14 +256,14 @@
T.ChangeTurf(/turf/simulated/wall)
T = get_turf(src)
T.attackby(W,user)
del(src)
qdel(src)
else if( istype(W, /obj/item/weapon/melee/energy/blade) )
var/turf/T = get_turf(src)
T.ChangeTurf(/turf/simulated/wall)
T = get_turf(src)
T.attackby(W,user)
del(src)
qdel(src)
/*
+19 -19
View File
@@ -31,7 +31,7 @@
..()
if(health <= 0)
new /obj/item/stack/sheet/metal(get_turf(src))
del(src)
qdel(src)
return
@@ -50,7 +50,7 @@
if(get_turf(user, 40))
user << "\blue You secured the girder!"
new/obj/structure/girder( src.loc )
del(src)
qdel(src)
else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
user << "\blue Now slicing apart the girder"
@@ -78,7 +78,7 @@
if(!src) return
user << "\blue You removed the support struts!"
new/obj/structure/girder( src.loc )
del(src)
qdel(src)
else if(istype(W, /obj/item/weapon/crowbar) && state == 0 && anchored )
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
@@ -87,7 +87,7 @@
if(!src) return
user << "\blue You dislodged the girder!"
new/obj/structure/girder/displaced( src.loc )
del(src)
qdel(src)
else if(istype(W, /obj/item/stack/sheet))
@@ -99,7 +99,7 @@
if(S.use(2))
user << "<span class='notice'>You create a false wall! Push on it to open or close the passage.</span>"
new /obj/structure/falsewall (src.loc)
del(src)
qdel(src)
else
if(S.get_amount() < 2) return ..()
user << "<span class='notice'>Now adding plating...</span>"
@@ -110,15 +110,15 @@
Tsrc.ChangeTurf(/turf/simulated/wall)
for(var/turf/simulated/wall/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
del(src)
qdel(src)
return
if(/obj/item/stack/sheet/plasteel)
if(/obj/item/stack/sheet/plasteel, /obj/item/stack/sheet/plasteel/cyborg)
if(!anchored)
if(S.use(2))
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falserwall (src.loc)
del(src)
qdel(src)
else
if (src.icon_state == "reinforced") //I cant believe someone would actually write this line of code...
if(S.get_amount() < 1) return ..()
@@ -130,7 +130,7 @@
Tsrc.ChangeTurf(/turf/simulated/wall/r_wall)
for(var/turf/simulated/wall/r_wall/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
del(src)
qdel(src)
return
else
if(S.get_amount() < 1) return ..()
@@ -139,7 +139,7 @@
if(S.use(1))
user << "<span class='notice'>Girders reinforced!</span>"
new/obj/structure/girder/reinforced( src.loc )
del(src)
qdel(src)
return
if(S.sheettype)
@@ -154,7 +154,7 @@
user << "\blue You create a false wall! Push on it to open or close the passage."
var/F = text2path("/obj/structure/falsewall/[M]")
new F (src.loc)
del(src)
qdel(src)
else
if(S.amount < 2) return ..()
user << "\blue Now adding plating..."
@@ -166,7 +166,7 @@
Tsrc.ChangeTurf(text2path("/turf/simulated/wall/mineral/[M]"))
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
del(src)
qdel(src)
return
add_hiddenprint(usr)
@@ -182,7 +182,7 @@
/obj/structure/girder/proc/dismantle()
new /obj/item/stack/sheet/metal(get_turf(src))
del(src)
qdel(src)
/obj/structure/girder/attack_hand(mob/user as mob)
if (HULK in user.mutations)
@@ -193,25 +193,25 @@
/obj/structure/girder/blob_act()
if(prob(40))
del(src)
qdel(src)
/obj/structure/girder/ex_act(severity)
switch(severity)
if(1.0)
del(src)
qdel(src)
return
if(2.0)
if (prob(30))
var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal)
new remains(loc)
del(src)
qdel(src)
return
if(3.0)
if (prob(5))
var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal)
new remains(loc)
del(src)
qdel(src)
return
else
return
@@ -246,7 +246,7 @@
/obj/structure/cultgirder/proc/dismantle()
new /obj/effect/decal/remains/human(get_turf(src))
del(src)
qdel(src)
/obj/structure/cultgirder/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
@@ -289,7 +289,7 @@
/obj/structure/cultgirder/ex_act(severity)
switch(severity)
if(1.0)
del(src)
qdel(src)
return
if(2.0)
if (prob(30))
+22 -6
View File
@@ -14,14 +14,19 @@
/obj/structure/grille/ex_act(severity)
del(src)
qdel(src)
/obj/structure/grille/blob_act()
del(src)
qdel(src)
/obj/structure/grille/meteorhit(var/obj/M)
del(src)
qdel(src)
/obj/structure/grille/update_icon()
if(destroyed)
icon_state = "[initial(icon_state)]-b"
else
icon_state = initial(icon_state)
/obj/structure/grille/Bumped(atom/user)
if(ismob(user)) shock(user, 70)
@@ -99,7 +104,7 @@
if(!shock(user, 100))
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
new /obj/item/stack/rods(loc, 2)
del(src)
qdel(src)
else if((isscrewdriver(W)) && (istype(loc, /turf/simulated) || anchored))
if(!shock(user, 90))
playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
@@ -165,15 +170,15 @@
/obj/structure/grille/proc/healthcheck()
if(health <= 0)
if(!destroyed)
icon_state = "brokengrille"
density = 0
destroyed = 1
update_icon()
new /obj/item/stack/rods(loc)
else
if(health <= -6)
new /obj/item/stack/rods(loc)
del(src)
qdel(src)
return
return
@@ -215,3 +220,14 @@
health -= damage
spawn(1) healthcheck()
return 1
/obj/structure/grille/cult
name = "cult grille"
desc = "A matrice built out of an unknown material, with some sort of force field blocking air around it"
icon_state = "grillecult"
health = 40 //Make it strong enough to avoid people breaking in too easily
/obj/structure/grille/cult/CanPass(atom/movable/mover, turf/target, height = 1.5, air_group = 0)
if(air_group)
return 0 //Make sure air doesn't drain
..()
+8 -8
View File
@@ -11,7 +11,7 @@
var/obj/structure/inflatable/R = new /obj/structure/inflatable(user.loc)
src.transfer_fingerprints_to(R)
R.add_fingerprint(user)
del(src)
qdel(src)
/obj/structure/inflatable
name = "inflatable wall"
@@ -30,7 +30,7 @@
..()
update_nearby_tiles(need_rebuild=1)
/obj/structure/inflatable/Del()
/obj/structure/inflatable/Destroy()
update_nearby_tiles()
..()
@@ -50,7 +50,7 @@
/obj/structure/inflatable/ex_act(severity)
switch(severity)
if(1.0)
del(src)
qdel(src)
return
if(2.0)
deflate(1)
@@ -94,14 +94,14 @@
visible_message("[src] rapidly deflates!")
var/obj/item/inflatable/torn/R = new /obj/item/inflatable/torn(loc)
src.transfer_fingerprints_to(R)
del(src)
qdel(src)
else
//user << "\blue You slowly deflate the inflatable wall."
visible_message("[src] slowly deflates.")
spawn(50)
var/obj/item/inflatable/R = new /obj/item/inflatable(loc)
src.transfer_fingerprints_to(R)
del(src)
qdel(src)
/obj/structure/inflatable/verb/hand_deflate()
set name = "Deflate"
@@ -134,7 +134,7 @@
var/obj/structure/inflatable/door/R = new /obj/structure/inflatable/door(user.loc)
src.transfer_fingerprints_to(R)
R.add_fingerprint(user)
del(src)
qdel(src)
/obj/structure/inflatable/door //Based on mineral door code
name = "inflatable door"
@@ -219,13 +219,13 @@
visible_message("[src] rapidly deflates!")
var/obj/item/inflatable/door/torn/R = new /obj/item/inflatable/door/torn(loc)
src.transfer_fingerprints_to(R)
del(src)
qdel(src)
else
visible_message("[src] slowly deflates.")
spawn(50)
var/obj/item/inflatable/door/R = new /obj/item/inflatable/door(loc)
src.transfer_fingerprints_to(R)
del(src)
qdel(src)
/obj/item/inflatable/torn
name = "torn inflatable wall"
@@ -20,8 +20,8 @@
else
if(spike(G.affecting))
visible_message("<span class = 'danger'>[user] has forced [G.affecting] onto the spike, killing them instantly!</span>")
del(G.affecting)
del(G)
qdel(G.affecting)
qdel(G)
else
user << "<span class='danger'>They are too big for the spike, try something smaller!</span>"
+3 -3
View File
@@ -15,7 +15,7 @@
if (1)
new /obj/item/weapon/shard( src.loc )
Break()
del(src)
qdel(src)
if (2)
if (prob(50))
src.health -= 15
@@ -37,13 +37,13 @@
if (prob(75))
new /obj/item/weapon/shard( src.loc )
Break()
del(src)
qdel(src)
/obj/structure/lamarr/meteorhit(obj/O as obj)
new /obj/item/weapon/shard( src.loc )
Break()
del(src)
qdel(src)
/obj/structure/lamarr/proc/healthcheck()
+8 -8
View File
@@ -13,10 +13,10 @@
///// Z-Level Stuff
if(!(istype(src.loc, /turf/space) || istype(src.loc, /turf/simulated/floor/open)))
///// Z-Level Stuff
del(src)
qdel(src)
for(var/obj/structure/lattice/LAT in src.loc)
if(LAT != src)
del(LAT)
qdel(LAT)
icon = 'icons/obj/smoothlattice.dmi'
icon_state = "latticeblank"
updateOverlays()
@@ -26,7 +26,7 @@
L = locate(/obj/structure/lattice, get_step(src, dir))
L.updateOverlays()
/obj/structure/lattice/Del()
/obj/structure/lattice/Destroy()
for (var/dir in cardinal)
var/obj/structure/lattice/L
if(locate(/obj/structure/lattice, get_step(src, dir)))
@@ -35,16 +35,16 @@
..()
/obj/structure/lattice/blob_act()
del(src)
qdel(src)
return
/obj/structure/lattice/ex_act(severity)
switch(severity)
if(1.0)
del(src)
qdel(src)
return
if(2.0)
del(src)
qdel(src)
return
if(3.0)
return
@@ -62,13 +62,13 @@
if(WT.remove_fuel(0, user))
user << "\blue Slicing lattice joints ..."
new /obj/item/stack/rods(src.loc)
del(src)
qdel(src)
return
/obj/structure/lattice/proc/updateOverlays()
//if(!(istype(src.loc, /turf/space)))
// del(src)
// qdel(src)
spawn(1)
overlays = list()
@@ -22,7 +22,7 @@
name = "[mineralType] door"
update_nearby_tiles(need_rebuild=1)
Del()
Destroy()
update_nearby_tiles()
..()
@@ -137,7 +137,7 @@
var/ore = text2path("/obj/item/stack/sheet/mineral/[mineralType]")
for(var/i = 3, i <= oreAmount, i++)
new ore(get_turf(src))
del(src)
qdel(src)
ex_act(severity = 1)
switch(severity)
@@ -239,7 +239,7 @@
if(!devastated)
for(var/i = 1, i <= oreAmount, i++)
new/obj/item/stack/sheet/wood(get_turf(src))
del(src)
qdel(src)
/obj/structure/mineral_door/resin
mineralType = "resin"
@@ -279,7 +279,7 @@
isSwitchingStates = 0
Dismantle(devastated = 0)
del(src)
qdel(src)
CheckHardness()
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
+3 -3
View File
@@ -80,16 +80,16 @@
var/mob/living/carbon/human/vox/vox = new(get_turf(src),"Vox")
vox.gender = user.gender
raiders.equip(vox)
new /obj/item/organ/stack/vox(vox)
if(user.mind)
user.mind.transfer_to(vox)
spawn(1)
var/newname = input(vox,"Enter a name, or leave blank for the default name.", "Name change","") as text
newname = sanitize(newname)
var/newname = sanitizeSafe(input(vox,"Enter a name, or leave blank for the default name.", "Name change","") as text, MAX_NAME_LEN)
if(!newname || newname == "")
var/datum/language/L = all_languages[vox.species.default_language]
newname = L.get_random_name()
vox.real_name = newname
vox.name = vox.real_name
raiders.update_access(vox)
del(user)
qdel(user)
..()
+18 -18
View File
@@ -36,21 +36,21 @@
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
ex_act(severity)
del(src)
qdel(src)
return
if(2.0)
if (prob(50))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
ex_act(severity)
del(src)
qdel(src)
return
if(3.0)
if (prob(5))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
ex_act(severity)
del(src)
qdel(src)
return
return
@@ -64,7 +64,7 @@
A.loc = src
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
//src.connected = null
del(src.connected)
qdel(src.connected)
else
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
src.connected = new /obj/structure/m_tray( src.loc )
@@ -80,7 +80,7 @@
src.connected.set_dir(src.dir)
else
//src.connected = null
del(src.connected)
qdel(src.connected)
src.add_fingerprint(user)
update()
return
@@ -92,7 +92,7 @@
return
if ((!in_range(src, usr) && src.loc != user))
return
t = sanitize(t)
t = sanitizeSafe(t, MAX_NAME_LEN)
if (t)
src.name = text("Morgue- '[]'", t)
else
@@ -116,7 +116,7 @@
src.connected.icon_state = "morguet"
else
//src.connected = null
del(src.connected)
qdel(src.connected)
return
@@ -144,7 +144,7 @@
src.connected.update()
add_fingerprint(user)
//SN src = null
del(src)
qdel(src)
return
return
@@ -195,21 +195,21 @@
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
ex_act(severity)
del(src)
qdel(src)
return
if(2.0)
if (prob(50))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
ex_act(severity)
del(src)
qdel(src)
return
if(3.0)
if (prob(5))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
ex_act(severity)
del(src)
qdel(src)
return
return
@@ -232,7 +232,7 @@
A.loc = src
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
//src.connected = null
del(src.connected)
qdel(src.connected)
else if (src.locked == 0)
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
src.connected = new /obj/structure/c_tray( src.loc )
@@ -247,7 +247,7 @@
src.connected.icon_state = "cremat"
else
//src.connected = null
del(src.connected)
qdel(src.connected)
src.add_fingerprint(user)
update()
@@ -258,7 +258,7 @@
return
if ((!in_range(src, usr) > 1 && src.loc != user))
return
t = sanitize(t)
t = sanitizeSafe(t, MAX_NAME_LEN)
if (t)
src.name = text("Crematorium- '[]'", t)
else
@@ -282,7 +282,7 @@
src.connected.icon_state = "cremat"
else
//src.connected = null
del(src.connected)
qdel(src.connected)
return
/obj/structure/crematorium/proc/cremate(atom/A, mob/user as mob)
@@ -323,10 +323,10 @@
//log_attack("\[[time_stamp()]\] <b>[user]/[user.ckey]</b> cremated <b>[M]/[M.ckey]</b>")
M.death(1)
M.ghostize()
del(M)
qdel(M)
for(var/obj/O in contents) //obj instead of obj/item so that bodybags and ashes get destroyed. We dont want tons and tons of ash piling up
del(O)
qdel(O)
new /obj/effect/decal/cleanable/ash(src)
sleep(30)
@@ -360,7 +360,7 @@
src.connected.update()
add_fingerprint(user)
//SN src = null
del(src)
qdel(src)
return
return
+6 -6
View File
@@ -8,19 +8,19 @@
/obj/structure/sign/ex_act(severity)
switch(severity)
if(1.0)
del(src)
qdel(src)
return
if(2.0)
del(src)
qdel(src)
return
if(3.0)
del(src)
qdel(src)
return
else
return
/obj/structure/sign/blob_act()
del(src)
qdel(src)
return
/obj/structure/sign/attackby(obj/item/tool as obj, mob/user as mob) //deconstruction
@@ -33,7 +33,7 @@
//var/icon/I = icon('icons/obj/decals.dmi', icon_state)
//S.icon = I.Scale(24, 24)
S.sign_state = icon_state
del(src)
qdel(src)
else ..()
/obj/item/sign
@@ -62,7 +62,7 @@
S.desc = desc
S.icon_state = sign_state
user << "You fasten \the [S] with your [tool]."
del(src)
qdel(src)
else ..()
/obj/structure/sign/double/map
@@ -79,5 +79,5 @@
/obj/structure/bed/nest/proc/healthcheck()
if(health <=0)
density = 0
del(src)
qdel(src)
return
@@ -20,27 +20,27 @@
/obj/structure/bed/ex_act(severity)
switch(severity)
if(1.0)
del(src)
qdel(src)
return
if(2.0)
if (prob(50))
del(src)
qdel(src)
return
if(3.0)
if (prob(5))
del(src)
qdel(src)
return
/obj/structure/bed/blob_act()
if(prob(75))
new /obj/item/stack/sheet/metal(src.loc)
del(src)
qdel(src)
/obj/structure/bed/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
new /obj/item/stack/sheet/metal(src.loc)
del(src)
qdel(src)
else
..()
@@ -71,7 +71,7 @@
visible_message("[user] collapses \the [src.name].")
new/obj/item/roller(get_turf(src))
spawn(0)
del(src)
qdel(src)
return
..()
@@ -85,7 +85,7 @@
/obj/item/roller/attack_self(mob/user)
var/obj/structure/bed/roller/R = new /obj/structure/bed/roller(user.loc)
R.add_fingerprint(user)
del(src)
qdel(src)
/obj/item/roller/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -119,7 +119,7 @@
user << "\blue You deploy the roller bed."
var/obj/structure/bed/roller/R = new /obj/structure/bed/roller(user.loc)
R.add_fingerprint(user)
del(held)
qdel(held)
held = null
@@ -153,5 +153,5 @@
visible_message("[usr] collapses \the [src.name].")
new/obj/item/roller(get_turf(src))
spawn(0)
del(src)
qdel(src)
return
@@ -26,7 +26,7 @@
E.part = SK
SK.loc = E
SK.master = E
del(src)
qdel(src)
/obj/structure/bed/chair/attack_tk(mob/user as mob)
if(buckled_mob)
@@ -67,21 +67,19 @@
return
// Chair types
/obj/structure/bed/chair/wood/normal
/obj/structure/bed/chair/wood
icon_state = "wooden_chair"
name = "wooden chair"
desc = "Old is never too old to not be in fashion."
/obj/structure/bed/chair/wood/wings
icon_state = "wooden_chair_wings"
name = "wooden chair"
desc = "Old is never too old to not be in fashion."
/obj/structure/bed/chair/wood/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
new /obj/item/stack/sheet/wood(src.loc)
del(src)
qdel(src)
else
..()
@@ -13,7 +13,7 @@
user.remove_from_mob(src)
var/obj/item/stack/sheet/metal/m = new/obj/item/stack/sheet/metal
m.loc = get_turf(src)
del src
qdel(src)
var/mob/living/T = M
T.Weaken(10)
T.apply_damage(20)
@@ -23,25 +23,25 @@
/obj/item/weapon/stool/ex_act(severity)
switch(severity)
if(1.0)
del(src)
qdel(src)
return
if(2.0)
if (prob(50))
del(src)
qdel(src)
return
if(3.0)
if (prob(5))
del(src)
qdel(src)
return
/obj/item/weapon/stool/blob_act()
if(prob(75))
new /obj/item/stack/sheet/metal(src.loc)
del(src)
qdel(src)
/obj/item/weapon/stool/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
new /obj/item/stack/sheet/metal(src.loc)
del(src)
qdel(src)
..()
+7 -7
View File
@@ -59,11 +59,11 @@
..()
for(var/obj/structure/table/T in src.loc)
if(T != src)
del(T)
qdel(T)
update_icon()
update_adjacent()
/obj/structure/table/Del()
/obj/structure/table/Destroy()
update_adjacent()
..()
@@ -328,7 +328,7 @@
return 0
else
visible_message("<span class='warning'>[src] breaks down!</span>")
destroy()
qdel(src)
return 1
return 1
@@ -375,7 +375,7 @@
G.affecting.loc = src.loc
G.affecting.Weaken(5)
visible_message("<span class='danger'>[G.assailant] puts [G.affecting] on \the [src].</span>")
del(W)
qdel(W)
return
// Handle dissembly.
@@ -386,7 +386,7 @@
user << "<span class='notice'>You locate the bolts and begin disassembling \the [src]...</span>"
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user,50))
destroy()
qdel(src)
return
// Handle weakening.
@@ -429,9 +429,9 @@
playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1)
playsound(src.loc, "sparks", 50, 1)
user.visible_message("<span class='danger'>The [src] was sliced apart by [user]!</span>")
destroy()
qdel(src)
user.drop_item(src)
user.drop_item(src.loc)
return
/obj/structure/table/proc/straight_table_check(var/direction)
@@ -47,7 +47,7 @@
/obj/structure/transit_tube_pod/Del()
/obj/structure/transit_tube_pod/Destroy()
for(var/atom/movable/AM in contents)
AM.loc = loc
@@ -63,7 +63,7 @@ obj/structure/ex_act(severity)
AM.loc = loc
AM.ex_act(severity++)
del(src)
qdel(src)
return
if(2.0)
if(prob(50))
@@ -71,7 +71,7 @@ obj/structure/ex_act(severity)
AM.loc = loc
AM.ex_act(severity++)
del(src)
qdel(src)
return
if(3.0)
return
+6 -6
View File
@@ -173,7 +173,7 @@
/obj/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up
overlays.Cut() //once it's been on for a while, in addition to handling the water overlay.
if(mymist)
del(mymist)
qdel(mymist)
if(on)
overlays += image('icons/obj/watercloset.dmi', src, "water", MOB_LAYER + 1, dir)
@@ -183,16 +183,16 @@
spawn(50)
if(src && on)
ismist = 1
mymist = new /obj/effect/mist(loc)
mymist = PoolOrNew(/obj/effect/mist,loc)
else
ismist = 1
mymist = new /obj/effect/mist(loc)
mymist = PoolOrNew(/obj/effect/mist,loc)
else if(ismist)
ismist = 1
mymist = new /obj/effect/mist(loc)
mymist = PoolOrNew(/obj/effect/mist,loc)
spawn(250)
if(src && !on)
del(mymist)
qdel(mymist)
ismist = 0
/obj/machinery/shower/Crossed(atom/movable/O)
@@ -292,7 +292,7 @@
loc.clean_blood()
for(var/obj/effect/E in tile)
if(istype(E,/obj/effect/rune) || istype(E,/obj/effect/decal/cleanable) || istype(E,/obj/effect/overlay))
del(E)
qdel(E)
/obj/machinery/shower/process()
if(!on) return
@@ -37,7 +37,7 @@ obj/structure/windoor_assembly/New(Loc, start_dir=NORTH, constructed=0)
update_nearby_tiles(need_rebuild=1)
obj/structure/windoor_assembly/Del()
obj/structure/windoor_assembly/Destroy()
density = 0
update_nearby_tiles()
..()
@@ -79,7 +79,7 @@ obj/structure/windoor_assembly/Del()
new /obj/item/stack/sheet/glass/reinforced(get_turf(src), 5)
if(secure)
new /obj/item/stack/rods(get_turf(src), 4)
del(src)
qdel(src)
else
user << "\blue You need more welding fuel to dissassemble the windoor assembly."
return
@@ -249,7 +249,7 @@ obj/structure/windoor_assembly/Del()
src.electronics.loc = windoor
del(src)
qdel(src)
else
+5 -5
View File
@@ -93,7 +93,7 @@
else
new shardtype(loc)
if(reinf) new /obj/item/stack/rods(loc)
del(src)
qdel(src)
return
@@ -111,7 +111,7 @@
/obj/structure/window/ex_act(severity)
switch(severity)
if(1.0)
del(src)
qdel(src)
return
if(2.0)
shatter(0)
@@ -216,7 +216,7 @@
if(istype(G.affecting,/mob/living))
var/mob/living/M = G.affecting
var/state = G.state
del(W) //gotta delete it here because if window breaks, it won't get deleted
qdel(W) //gotta delete it here because if window breaks, it won't get deleted
switch (state)
if(1)
M.visible_message("<span class='warning'>[user] slams [M] against \the [src]!</span>")
@@ -266,7 +266,7 @@
mats.amount = is_fulltile() ? 4 : 2
else
new glasstype(loc)
del(src)
qdel(src)
else
if(W.damtype == BRUTE || W.damtype == BURN)
hit(W.force)
@@ -334,7 +334,7 @@
update_nearby_icons()
/obj/structure/window/Del()
/obj/structure/window/Destroy()
density = 0
update_nearby_tiles()
update_nearby_icons()