Merge remote-tracking branch 'upstream/master' into third_times_the_charm_questionmark

Conflicts:
	code/modules/mob/living/carbon/human/human.dm
	 ^ This shit is haunted. It's conflicted on two branches for 0
	 reason, the automatic merge wouldn't work on the fucking end of
	 file.
This commit is contained in:
Tigercat2000
2015-10-19 16:13:51 -07:00
317 changed files with 2228 additions and 4868 deletions
+24 -29
View File
@@ -90,6 +90,11 @@ would spawn and follow the beaker, even if it is carried or thrown.
var/atom/holder
var/setup = 0
Destroy()
holder = null
location = null
return ..()
proc/set_up(n = 3, c = 0, turf/loc)
if(n > 10)
n = 10
@@ -449,6 +454,11 @@ steam.start() -- spawns the effect
var/direction
var/obj/chemholder
Destroy()
qdel(chemholder)
chemholder = null
return ..()
New()
..()
chemholder = new/obj()
@@ -543,35 +553,6 @@ steam.start() -- spawns the effect
if(smoke) smoke.delete()
src.total_smoke--
// Goon compat.
/datum/effect/effect/system/chem_smoke_spread/fart
set_up(var/mob/M, n = 5, c = 0, loca, direct)
if(n > 20)
n = 20
number = n
cardinals = c
chemholder.reagents.add_reagent("space_drugs", rand(1,10))
if(istype(loca, /turf/))
location = loca
else
location = get_turf(loca)
if(direct)
direction = direct
var/contained = "\[[chemholder.reagents.get_reagent_ids()]\]"
var/area/A = get_area(location)
var/where = "[A.name] | [location.x], [location.y]"
var/whereLink=formatJumpTo(location,where)
var/more = "(<A HREF='?_src_=holder;adminmoreinfo=\ref[M]'>?</a>)"
message_admins("[M][more] produced a toxic fart in ([whereLink])[contained].", 0, 1)
log_game("[M][more] produced a toxic fart in ([where])[contained].")
/////////////////////////////////////////////
// Sleep smoke
/////////////////////////////////////////////
@@ -772,6 +753,10 @@ steam.start() -- spawns the effect
var/processing = 1
var/on = 1
/datum/effect/effect/system/ion_trail_follow/Destroy()
oldposition = null
return ..()
/datum/effect/effect/system/ion_trail_follow/set_up(atom/atom)
attach(atom)
@@ -805,6 +790,12 @@ steam.start() -- spawns the effect
/datum/effect/effect/system/ion_trail_follow/space_trail
var/turf/oldloc // secondary ion trail loc
var/turf/currloc
/datum/effect/effect/system/ion_trail_follow/space_trail/Destroy()
oldloc = null
currloc = null
return ..()
/datum/effect/effect/system/ion_trail_follow/space_trail/start()
if(!src.on)
src.on = 1
@@ -865,6 +856,10 @@ steam.start() -- spawns the effect
var/processing = 1
var/on = 1
Destroy()
oldposition = null
return ..()
set_up(atom/atom)
attach(atom)
oldposition = get_turf(atom)
+37 -49
View File
@@ -14,7 +14,7 @@
switch(name) //some of these are probably obsolete
if("shuttle")
shuttle_z = z
del(src)
qdel(src)
if("airtunnel_stop")
airtunnel_stop = x
@@ -27,35 +27,35 @@
if("monkey")
monkeystart += loc
del(src)
qdel(src)
if("start")
newplayer_start += loc
del(src)
qdel(src)
if("wizard")
wizardstart += loc
del(src)
qdel(src)
if("JoinLate")
latejoin += loc
del(src)
qdel(src)
if("JoinLateGateway")
latejoin_gateway += loc
del(src)
qdel(src)
if("JoinLateCryo")
latejoin_cryo += loc
del(src)
qdel(src)
if("JoinLateCyborg")
latejoin_cyborg += loc
del(src)
qdel(src)
//prisoners
if("prisonwarp")
prisonwarp += loc
del(src)
qdel(src)
// if("mazewarp")
// mazewarp += loc
if("Holding Facility")
@@ -74,19 +74,19 @@
//not prisoners
if("prisonsecuritywarp")
prisonsecuritywarp += loc
del(src)
qdel(src)
if("blobstart")
blobstart += loc
del(src)
qdel(src)
if("xeno_spawn")
xeno_spawn += loc
del(src)
qdel(src)
if("ninjastart")
ninjastart += loc
del(src)
qdel(src)
if("carpspawn")
carplist += loc
@@ -99,20 +99,8 @@
/obj/effect/landmark/Destroy()
landmarks_list -= src
return ..()
/obj/effect/landmark/nations
name = "nations"
icon = 'icons/mob/screen1.dmi'
icon_state = "x"
anchored = 1.0
/obj/effect/landmark/nations/New()
..()
tag = "nations*[name]"
invisibility = 101
return 1
return QDEL_HINT_HARDDEL_NOW
/obj/effect/landmark/start
name = "start"
@@ -134,51 +122,51 @@
var/list/options = typesof(/obj/effect/landmark/costume)
var/PICK= options[rand(1,options.len)]
new PICK(src.loc)
del(src)
qdel(src)
//SUBCLASSES. Spawn a bunch of items and disappear likewise
/obj/effect/landmark/costume/chicken/New()
new /obj/item/clothing/suit/chickensuit(src.loc)
new /obj/item/clothing/head/chicken(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/egg(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/gladiator/New()
new /obj/item/clothing/under/gladiator(src.loc)
new /obj/item/clothing/head/helmet/gladiator(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/madscientist/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/suit/storage/labcoat/mad(src.loc)
new /obj/item/clothing/glasses/gglasses(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/elpresidente/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/mask/cigarette/cigar/havana(src.loc)
new /obj/item/clothing/shoes/jackboots(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/nyangirl/New()
new /obj/item/clothing/under/schoolgirl(src.loc)
new /obj/item/clothing/head/kitty(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/maid/New()
new /obj/item/clothing/under/blackskirt(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/beret , /obj/item/clothing/head/rabbitears )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/sunglasses/blindfold(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/butler/New()
new /obj/item/clothing/suit/wcoat(src.loc)
new /obj/item/clothing/under/suit_jacket(src.loc)
new /obj/item/clothing/head/that(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/scratch/New()
new /obj/item/clothing/gloves/color/white(src.loc)
@@ -186,12 +174,12 @@
new /obj/item/clothing/under/scratch(src.loc)
if (prob(30))
new /obj/item/clothing/head/cueball(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/highlander/New()
new /obj/item/clothing/under/kilt(src.loc)
new /obj/item/clothing/head/beret(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/prig/New()
new /obj/item/clothing/suit/wcoat(src.loc)
@@ -202,24 +190,24 @@
new /obj/item/weapon/cane(src.loc)
new /obj/item/clothing/under/sl_suit(src.loc)
new /obj/item/clothing/mask/fakemoustache(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/plaguedoctor/New()
new /obj/item/clothing/suit/bio_suit/plaguedoctorsuit(src.loc)
new /obj/item/clothing/head/plaguedoctorhat(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/nightowl/New()
new /obj/item/clothing/under/owl(src.loc)
new /obj/item/clothing/mask/gas/owl_mask(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/waiter/New()
new /obj/item/clothing/under/waiter(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears)
new CHOICE(src.loc)
new /obj/item/clothing/suit/apron(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/pirate/New()
new /obj/item/clothing/under/pirate(src.loc)
@@ -227,46 +215,46 @@
var/CHOICE = pick( /obj/item/clothing/head/pirate , /obj/item/clothing/head/bandana )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/eyepatch(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/commie/New()
new /obj/item/clothing/under/soviet(src.loc)
new /obj/item/clothing/head/ushanka(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/imperium_monk/New()
new /obj/item/clothing/suit/imperium_monk(src.loc)
if (prob(25))
new /obj/item/clothing/mask/gas/cyborg(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/holiday_priest/New()
new /obj/item/clothing/suit/holidaypriest(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/marisawizard/fake/New()
new /obj/item/clothing/head/wizard/marisa/fake(src.loc)
new/obj/item/clothing/suit/wizrobe/marisa/fake(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/cutewitch/New()
new /obj/item/clothing/under/sundress(src.loc)
new /obj/item/clothing/head/witchwig(src.loc)
new /obj/item/weapon/twohanded/staff/broom(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/fakewizard/New()
new /obj/item/clothing/suit/wizrobe/fake(src.loc)
new /obj/item/clothing/head/wizard/fake(src.loc)
new /obj/item/weapon/twohanded/staff/(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/sexyclown/New()
new /obj/item/clothing/mask/gas/sexyclown(src.loc)
new /obj/item/clothing/under/sexyclown(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/sexymime/New()
new /obj/item/clothing/mask/gas/sexymime(src.loc)
new /obj/item/clothing/under/sexymime(src.loc)
del(src)
qdel(src)
@@ -102,7 +102,7 @@
p4.air_contents.temperature = btemp + T0C
p2.secured = 1
del(src)
qdel(src)
*/
/obj/effect/spawner/newbomb
@@ -169,4 +169,4 @@
V.update_icon()
del(src)
qdel(src)
@@ -23,4 +23,4 @@
else
new /turf/simulated/floor/vault(locate(i,j,z),type)
del(src)
qdel(src)
+1 -1
View File
@@ -121,7 +121,7 @@
if(T)
if(flame_dist && prob(40) && !istype(T, /turf/space) && !T.density)
PoolOrNew(/obj/effect/hotspot, T) //Mostly for ambience!
new /obj/effect/hotspot(T) //Mostly for ambience!
if(dist > 0)
for(var/atom_movable in T.contents) //bypass type checking since only atom/movable can be contained by turfs anyway
var/atom/movable/AM = atom_movable
+25 -1
View File
@@ -136,7 +136,31 @@
if(5.0)
size = "huge"
return ..(user, distance, "", "It is a [size] item.")
..(user, distance, "", "It is a [size] item.")
if(user.research_scanner) //Mob has a research scanner active.
var/msg = "*--------* <BR>"
if(origin_tech)
msg += "<span class='notice'>Testing potentials:</span><BR>"
var/list/techlvls = params2list(origin_tech)
for(var/T in techlvls) //This needs to use the better names.
msg += "Tech: [CallTechName(T)] | Magnitude: [techlvls[T]] <BR>"
msg += "Research reliability: [reliability]% <BR>"
if(crit_fail)
msg += "<span class='danger'>Critical failure detected in subject!</span><BR>"
else
msg += "<span class='danger'>No tech origins detected.</span><BR>"
if(materials.len)
msg += "<span class='notice'>Extractable materials:<BR>"
for(var/mat in materials)
msg += "[CallMaterialName(mat)]<BR>" //Capitize first word, remove the "$"
else
msg += "<span class='danger'>No extractable materials detected.</span><BR>"
msg += "*--------*"
user << msg
/obj/item/attack_hand(mob/user as mob)
+7 -2
View File
@@ -62,6 +62,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
var/ownrank = null // this one is rank, never alt title
var/obj/item/device/paicard/pai = null // A slot for a personal AI device
var/retro_mode = 0
/obj/item/device/pda/medical
default_cartridge = /obj/item/weapon/cartridge/medical
@@ -401,6 +402,8 @@ var/global/list/obj/item/device/pda/PDAs = list()
data["idInserted"] = (id ? 1 : 0)
data["idLink"] = (id ? text("[id.registered_name], [id.assignment]") : "--------")
data["useRetro"] = retro_mode
data["cart_loaded"] = cartridge ? 1:0
if(cartridge)
var/cartdata[0]
@@ -574,6 +577,9 @@ var/global/list/obj/item/device/pda/PDAs = list()
mode = 0
else if(mode >= 40 && mode <= 49)//Fix for cartridges. Redirects to refresh the menu.
cartridge.mode = mode
if("Retro")
retro_mode = !retro_mode
ui_interact(user)
if ("Authenticate")//Checks for ID
id_check(U, 1)
if("UpdateInfo")
@@ -1138,7 +1144,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(T.ptank) atmosanalyzer_scan(T.ptank.air_contents, user, T)
else if (istype(A, /obj/machinery/portable_atmospherics/scrubber/huge))
var/obj/machinery/portable_atmospherics/scrubber/huge/T = A
atmosanalyzer_scan(T.air_contents, user, T)
atmosanalyzer_scan(T.air_contents, user, T)
else if (istype(A, /obj/machinery/atmospherics/unary/tank))
var/obj/machinery/atmospherics/unary/tank/T = A
atmosanalyzer_scan(T.air_contents, user, T)
@@ -1276,4 +1282,3 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/device/pda/emp_act(severity)
for(var/atom/A in src)
A.emp_act(severity)
@@ -114,6 +114,10 @@
radio = new /obj/item/radio/integrated/signal(src)
..()
/obj/item/weapon/cartridge/signal/Destroy()
qdel(radio)
return ..()
/obj/item/weapon/cartridge/quartermaster
name = "Space Parts & Space Vendors Cartridge"
desc = "Perfect for the Quartermaster on the go!"
@@ -144,7 +144,7 @@ var/global/list/default_medbay_channels = list(
var/chan_stat = channels[ch_name]
var/listening = !!(chan_stat & FREQ_LISTENING) != 0
dat.Add(list(list("chan" = ch_name, "display_name" = ch_name, "secure_channel" = 1, "sec_channel_listen" = !listening)))
dat.Add(list(list("chan" = ch_name, "display_name" = ch_name, "secure_channel" = 1, "sec_channel_listen" = !listening, "chan_span" = frequency_span_class(radiochannels[ch_name]))))
return dat
@@ -152,7 +152,7 @@ var/global/list/default_medbay_channels = list(
var/dat[0]
for(var/internal_chan in internal_channels)
if(has_channel_access(user, internal_chan))
dat.Add(list(list("chan" = internal_chan, "display_name" = get_frequency_name(text2num(internal_chan)))))
dat.Add(list(list("chan" = internal_chan, "display_name" = get_frequency_name(text2num(internal_chan)), "chan_span" = frequency_span_class(text2num(internal_chan)))))
return dat
+1 -1
View File
@@ -162,7 +162,7 @@ REAGENT SCANNER
user.show_message("\t Damage Specifics: <font color='blue'>[OX]</font> - <font color='green'>[TX]</font> - <font color='#FFA500'>[BU]</font> - <font color='red'>[BR]</font>")
user.show_message("\blue Body Temperature: [M.bodytemperature-T0C]&deg;C ([M.bodytemperature*1.8-459.67]&deg;F)", 1)
if(M.timeofdeath && (M.stat == DEAD || (M.status_flags & FAKEDEATH)))
user.show_message("\blue Time of Death: [M.timeofdeath]")
user.show_message("\blue Time of Death: [worldtime2text(M.timeofdeath)]")
if(istype(M, /mob/living/carbon/human) && mode == 1)
var/mob/living/carbon/human/H = M
var/list/damaged = H.get_damaged_organs(1,1)
@@ -1,5 +1,5 @@
/obj/item/device/sensor_device
name = "handheld crew monitor"
name = "handheld crew monitor"
desc = "A miniature machine that tracks suit sensors across the station."
icon = 'icons/obj/device.dmi'
icon_state = "scanner"
@@ -7,10 +7,15 @@
slot_flags = SLOT_BELT
origin_tech = "biotech=3;materials=3;magnets=3"
var/datum/nano_module/crew_monitor/crew_monitor
/obj/item/device/sensor_device/New()
crew_monitor = new(src)
/obj/item/device/sensor_device/Destroy()
qdel(crew_monitor)
crew_monitor = null
return ..()
/obj/item/device/sensor_device/attack_self(mob/user as mob)
ui_interact(user)
+1 -1
View File
@@ -156,7 +156,7 @@
desc = "A flag proudly proclaiming the superior heritage of Unathi."
icon_state = "unathiflag"
//Nation Flags (Able to spawn outside Nations gamemode)
//Department Flags
/obj/item/flag/cargo
name = "Cargonia flag"
@@ -8,7 +8,7 @@
..()
if (istype(W, /obj/item/weapon/wrench) && sheets_refunded)
//new /obj/item/stack/sheet/metal( get_turf(src.loc), sheets_refunded )
var/obj/item/stack/sheet/metal/M = PoolOrNew(/obj/item/stack/sheet/metal, get_turf(src))
var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/metal(get_turf(src))
M.amount = sheets_refunded
qdel(src)
+1 -1
View File
@@ -59,7 +59,7 @@
else
user.visible_message("<span class='warning'>[user] begins to do [H]'s lips with \the [src].</span>", \
"<span class='notice'>You begin to apply \the [src].</span>")
if(do_after(user, 20, target = H) && do_after(H, 20, 5, 0)) //user needs to keep their active hand, H does not.
if(do_after(user, 20, target = H))
user.visible_message("<span class='notice'>[user] does [H]'s lips with \the [src].</span>", \
"<span class='notice'>You apply \the [src].</span>")
H.lip_style = "lipstick"
@@ -25,10 +25,13 @@
/obj/item/weapon/flamethrower/Destroy()
if(weldtool)
qdel(weldtool)
weldtool = null
if(igniter)
qdel(igniter)
igniter = null
if(ptank)
qdel(ptank)
ptank = null
return ..()
@@ -15,6 +15,7 @@
Destroy()
qdel(smoke)
smoke = null
return ..()
prime()
@@ -168,7 +168,7 @@
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
else
usr << "All the leaves have fallen off the nettle from violent whacking."
del(src)
qdel(src)
/obj/item/weapon/grown/nettle/changePotency(newValue) //-QualityVan
potency = newValue
@@ -220,7 +220,7 @@
else
usr << "All the leaves have fallen off the deathnettle from violent whacking."
del(src)
qdel(src)
/obj/item/weapon/grown/deathnettle/changePotency(newValue) //-QualityVan
potency = newValue
@@ -235,6 +235,6 @@
if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/kitchen/utensil/knife) || istype(W, /obj/item/weapon/kitchenknife) || istype(W, /obj/item/weapon/kitchenknife/ritual))
user << "<span class='notice'>You use [W] to fashion a pipe out of the corn cob!</span>"
new /obj/item/clothing/mask/cigarette/pipe/cobpipe (user.loc)
del(src)
qdel(src)
return
*/
-32
View File
@@ -1,32 +0,0 @@
/obj/item/weapon/module
icon = 'icons/obj/module.dmi'
icon_state = "std_module"
w_class = 2.0
item_state = "electronic"
flags = CONDUCT
var/mtype = 1 // 1=electronic 2=hardware
/obj/item/weapon/module/card_reader
name = "card reader module"
icon_state = "card_mod"
desc = "An electronic module for reading data and ID cards."
/obj/item/weapon/module/power_control
name = "power control module"
icon_state = "power_mod"
desc = "Heavy-duty switching circuits for power control."
/obj/item/weapon/module/id_auth
name = "\improper ID authentication module"
icon_state = "id_mod"
desc = "A module allowing secure authorization of ID cards."
/obj/item/weapon/module/cell_power
name = "power cell regulator module"
icon_state = "power_mod"
desc = "A converter and regulator allowing the use of power cells."
/obj/item/weapon/module/cell_power
name = "power cell charger module"
icon_state = "power_mod"
desc = "Charging circuits for power cells."
@@ -35,10 +35,6 @@
else
..()
/obj/item/weapon/shard/Destroy()
..()
return QDEL_HINT_PUTINPOOL
/obj/item/weapon/shard/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = I
@@ -37,7 +37,7 @@
max_w_class = 2
storage_slots = 30
can_hold = list() // any
cant_hold = list("/obj/item/weapon/disk/nuclear","/obj/item/flag/nation")
cant_hold = list("/obj/item/weapon/disk/nuclear")
/obj/item/weapon/storage/bag/trash/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] puts the [src.name] over their head and starts chomping at the insides! Disgusting!</span>")
@@ -88,7 +88,7 @@
storage_slots = 7
display_contents_with_number = 0 //or else this will lead to stupid behavior.
can_hold = list() // any
cant_hold = list("/obj/item/weapon/disk/nuclear","/obj/item/flag/nation")
cant_hold = list("/obj/item/weapon/disk/nuclear")
var/head = 0
/obj/item/weapon/storage/bag/plasticbag/mob_can_equip(M as mob, slot)
@@ -248,7 +248,7 @@
usr.client.screen -= S
S.dropped(usr)
if(!S.amount)
del(S)
qdel(S)
else
S.loc = src
@@ -293,7 +293,7 @@
N.amount = stacksize
S.amount -= stacksize
if(!S.amount)
del(S) // todo: there's probably something missing here
qdel(S) // todo: there's probably something missing here
orient2hud(usr)
if(usr.s_active)
usr.s_active.show_to(usr)
@@ -476,9 +476,9 @@
else target.ex_act(1)
if (isobj(target))
if (target)
del(target)
qdel(target)
if (src)
del(src)
qdel(src)
*/
/obj/item/weapon/storage/belt/bluespace/attack(mob/M as mob, mob/user as mob, def_zone)
@@ -10,6 +10,10 @@
verbs -= /obj/item/verb/verb_pickup //make sure this is never picked up.
..()
/obj/item/weapon/storage/internal/Destroy()
master_item = null
return ..()
/obj/item/weapon/storage/internal/attack_hand()
return //make sure this is never picked up
@@ -19,6 +19,10 @@
src.ion_trail.set_up(src)
return
/obj/item/weapon/tank/jetpack/Destroy()
qdel(ion_trail)
ion_trail = null
return ..()
/obj/item/weapon/tank/jetpack/examine(mob/user)
if(!..(user, 0))
@@ -160,4 +164,4 @@
var/allgases = G.carbon_dioxide + G.nitrogen + G.oxygen + G.toxins
if(allgases >= 0.005)
. = 1
qdel(G)
qdel(G)
-1
View File
@@ -1,6 +1,5 @@
/obj
//var/datum/module/mod //not used
var/w_amt = 0 // waster amounts
var/origin_tech = null //Used by R&D to determine what research bonuses it grants.
var/reliability = 100 //Used by SOME devices to determine how reliable they are.
var/crit_fail = 0
@@ -53,9 +53,9 @@
new /obj/item/weapon/storage/toolbox/electrical(src)
new /obj/item/weapon/storage/toolbox/electrical(src)
new /obj/item/weapon/storage/toolbox/electrical(src)
new /obj/item/weapon/module/power_control(src)
new /obj/item/weapon/module/power_control(src)
new /obj/item/weapon/module/power_control(src)
new /obj/item/weapon/apc_electronics(src)
new /obj/item/weapon/apc_electronics(src)
new /obj/item/weapon/apc_electronics(src)
new /obj/item/device/multitool(src)
new /obj/item/device/multitool(src)
new /obj/item/device/multitool(src)
@@ -149,4 +149,4 @@
new /obj/item/clothing/suit/fire/atmos(src)
new /obj/item/clothing/head/hardhat/atmos(src)
return
return
@@ -53,7 +53,7 @@
//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()
new /obj/item/weapon/tank/oxygen(src)
+13 -13
View File
@@ -11,7 +11,7 @@ var/global/list/captain_display_cases = list()
for(var/obj/structure/displaycase/D in captain_display_cases)
if(istype(D))
D.ue = fingerprint
return 1
/obj/structure/displaycase_frame
@@ -72,7 +72,7 @@ var/global/list/captain_display_cases = list()
sensor.forceMove(src)
user << "<span class='notice'>You add the proximity sensor to the frame.</span>"
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
if(pstate != state)
pstate = state
update_icon()
@@ -100,7 +100,7 @@ var/global/list/captain_display_cases = list()
var/ue = null
var/image/occupant_overlay = null
var/obj/item/weapon/airlock_electronics/circuit
/obj/structure/displaycase/captains_laser
name = "captain's display case"
desc = "A display case for the captain's antique laser gun. Hooked up with an anti-theft system."
@@ -113,17 +113,17 @@ var/global/list/captain_display_cases = list()
spawn(5)
occupant = new /obj/item/weapon/gun/energy/laser/captain(src)
update_icon()
/obj/structure/displaycase/Destroy()
dump()
qdel(circuit)
circuit = null
return ..()
/obj/structure/displaycase/captains_laser/Destroy()
captain_display_cases -= src
return ..()
/obj/structure/displaycase/examine(mob/user)
..(user)
user << "<span class='notice'>Peering through the glass, you see that it contains:</span>"
@@ -141,7 +141,7 @@ var/global/list/captain_display_cases = list()
/obj/structure/displaycase/ex_act(severity)
switch(severity)
if (1)
PoolOrNew(/obj/item/weapon/shard, loc)
new /obj/item/weapon/shard(loc)
if (occupant)
dump()
qdel(src)
@@ -163,7 +163,7 @@ var/global/list/captain_display_cases = list()
/obj/structure/displaycase/blob_act()
if (prob(75))
PoolOrNew(/obj/item/weapon/shard, loc)
new /obj/item/weapon/shard(loc)
if(occupant) dump()
qdel(src)
@@ -173,15 +173,15 @@ var/global/list/captain_display_cases = list()
if (!( src.destroyed ))
src.density = 0
src.destroyed = 1
PoolOrNew(/obj/item/weapon/shard, loc)
new /obj/item/weapon/shard(loc)
playsound(get_turf(src), "shatter", 70, 1)
update_icon()
update_icon()
spawn(0)
burglar_alarm()
else
playsound(get_turf(src), 'sound/effects/Glasshit.ogg', 75, 1)
return
/obj/structure/displaycase/proc/burglar_alarm()
if(burglar_alarm)
var/area/alarmed = get_area(src)
@@ -237,7 +237,7 @@ var/global/list/captain_display_cases = list()
C.conf_access = req_access
else
C.conf_access = req_one_access
if(!destroyed)
var/obj/structure/displaycase_frame/F = new(T)
F.state = DISPLAYCASE_FRAME_SCREWDRIVER
@@ -260,7 +260,7 @@ var/global/list/captain_display_cases = list()
else if(!locked)
dump()
user << "<span class='danger'>You smash \the [W] into the delicate electronics at the bottom of the case, and deactivate the hover field.</span>"
update_icon()
update_icon()
else
if(locked)
user << "<span class='warning'>It's locked, you can't put anything into it.</span>"
+2 -6
View File
@@ -36,10 +36,6 @@
//height=42
icon='icons/fence-ns.dmi'
/obj/structure/grille/Destroy()
..()
return QDEL_HINT_PUTINPOOL //pool grilles
/obj/structure/grille/ex_act(severity)
qdel(src)
@@ -220,11 +216,11 @@
icon_state = "brokengrille"
density = 0
destroyed = 1
PoolOrNew(/obj/item/stack/rods,loc)
new /obj/item/stack/rods(loc)
else
if(health <= -6)
PoolOrNew(/obj/item/stack/rods,loc)
new /obj/item/stack/rods(loc)
qdel(src)
return
return
+4 -4
View File
@@ -13,7 +13,7 @@
/obj/structure/lamarr/ex_act(severity)
switch(severity)
if (1)
PoolOrNew(/obj/item/weapon/shard, loc)
new /obj/item/weapon/shard(loc)
Break()
qdel(src)
if (2)
@@ -35,16 +35,16 @@
/obj/structure/lamarr/blob_act()
if (prob(75))
PoolOrNew(/obj/item/weapon/shard, loc)
new /obj/item/weapon/shard(loc)
Break()
qdel(src)
/obj/structure/lamarr/proc/healthcheck()
if (src.health <= 0)
if (!( src.destroyed ))
src.density = 0
src.destroyed = 1
PoolOrNew(/obj/item/weapon/shard, loc)
new /obj/item/weapon/shard(loc)
playsound(src, "shatter", 70, 1)
Break()
else
+1 -1
View File
@@ -66,7 +66,7 @@
/obj/structure/lattice/proc/updateOverlays()
//if(!(istype(src.loc, /turf/space)))
// del(src)
// qdel(src)
spawn(1)
overlays = list()
+3 -6
View File
@@ -318,9 +318,6 @@
return
else
if(!isemptylist(search_contents_for(/obj/item/flag/nation)))
usr << "You get the feeling that you shouldn't cremate one of the items in the cremator."
return
for (var/mob/M in viewers(src))
M.show_message("\red You hear a roar as the crematorium activates.", 1)
@@ -417,7 +414,7 @@
usr << "\red Access denied."
return
/hook/Login/proc/update_morgue(var/client/client, var/mob/L)
/hook/Login/proc/update_morgue(var/client/client, var/mob/L)
//Update morgues on login/logout
if (L.stat == DEAD)
var/obj/structure/morgue/Morgue = null
@@ -440,8 +437,8 @@
Morgue = B.loc
if (Morgue)
Morgue.update()
/hook/Logout/proc/update_morgue(var/client/client, var/mob/L)
/hook/Logout/proc/update_morgue(var/client/client, var/mob/L)
//Update morgues on login/logout
if (L.stat == DEAD)
var/obj/structure/morgue/Morgue = null
+4 -5
View File
@@ -22,8 +22,7 @@
/datum/song/Destroy()
instrumentObj = null
..()
return QDEL_HINT_QUEUE
return ..()
// note is a number from 1-7 for A-G
// acc is either "b", "n", or "#"
@@ -69,7 +68,7 @@
/datum/song/proc/shouldStopPlaying(mob/user)
if(instrumentObj)
//if(!user.canUseTopic(instrumentObj))
//if(!user.canUseTopic(instrumentObj))
//return 1
return !instrumentObj.anchored // add special cases to stop in subclasses
else
@@ -281,7 +280,7 @@
/datum/song/proc/sanitize_tempo(new_tempo)
new_tempo = abs(new_tempo)
return max(round(new_tempo, world.tick_lag), world.tick_lag)
return max(round(new_tempo, world.tick_lag), world.tick_lag)
// subclass for handheld instruments, like violin
/datum/song/handheld
@@ -324,7 +323,7 @@
qdel(song)
song = null
return ..()
/obj/structure/piano/initialize()
song.tempo = song.sanitize_tempo(song.tempo) // tick_lag isn't set when the map is loaded
..()
@@ -7,8 +7,6 @@
var/propelled = 0 // Check for fire-extinguisher-driven chairs
/obj/structure/stool/bed/chair/New()
if(anchored)
src.verbs -= /atom/movable/verb/pull
..()
spawn(3) //sorry. i don't think there's a better way to do this.
handle_rotation()
+2 -2
View File
@@ -729,9 +729,9 @@
/obj/structure/table/glass/proc/collapse() //glass table collapse is called twice in this code, more efficent to just have a proc
src.visible_message("<span class='warning'>\The [src] shatters, and the frame collapses!</span>", "<span class='warning'>You hear metal collapsing and glass shattering.</span>")
new /obj/item/weapon/table_parts/glass(loc)
PoolOrNew(/obj/item/weapon/shard, loc)
new /obj/item/weapon/shard(loc)
if(prob(50)) //50% chance to spawn two shards
PoolOrNew(/obj/item/weapon/shard, loc)
new /obj/item/weapon/shard(loc)
qdel(src)
/obj/structure/table/glass/attackby(obj/item/I as obj, mob/user as mob, params)
@@ -90,7 +90,7 @@
moving = 0
// Should I return a copy here? If the caller edits or del()s the returned
// Should I return a copy here? If the caller edits or qdel()s the returned
// datum, there might be problems if I don't...
/obj/structure/transit_tube_pod/return_air()
var/datum/gas_mixture/GM = new()
+2 -2
View File
@@ -53,7 +53,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
// This should result in the same materials used to make the window.
/obj/structure/window/proc/destroy()
for(var/i=0;i<sheets;i++)
PoolOrNew(shardtype, loc)
new shardtype(loc)
if(reinf)
new /obj/item/stack/rods(loc)
@@ -219,7 +219,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
else if(istype(W, /obj/item/weapon/wrench) && !anchored && health > 7) //Disassemble deconstructed window into parts
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
for(var/i=0;i<sheets;i++)
var/obj/item/stack/sheet/glass/NG = PoolOrNew(glasstype, src.loc)
var/obj/item/stack/sheet/glass/NG = new glasstype(src.loc)
for (var/obj/item/stack/sheet/glass/G in src.loc) //Stack em up
if(G==NG)
continue