mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 19:17:50 +01:00
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:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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]°C ([M.bodytemperature*1.8-459.67]°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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
@@ -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,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)
|
||||
|
||||
@@ -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>"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
/obj/structure/lattice/proc/updateOverlays()
|
||||
//if(!(istype(src.loc, /turf/space)))
|
||||
// del(src)
|
||||
// qdel(src)
|
||||
spawn(1)
|
||||
overlays = list()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user