mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-04 22:52:03 +00:00
This converts the machine and mob processes to the SMC. Additionally, it adds the Atom subsystem, which handles all Initialize() calls in place of the old gameticker. Due to incompatibility with our atmospherics (FUCK OUR ATMOSPHERICS FOR FUCKING EVER JESUS CHRIST WHO THE FUCK MADE THIS PIECE OF GODDAMN SHIT) atmospherics machines do not use Initialize() as they should, instead opting for a custom atmos_init proc that the air controller handles.
299 lines
11 KiB
Plaintext
299 lines
11 KiB
Plaintext
//These are meant for spawning on maps, namely Away Missions.
|
|
|
|
//If someone can do this in a neater way, be my guest-Kor
|
|
|
|
//To do: Allow corpses to appear mangled, bloody, etc. Allow customizing the bodies appearance (they're all bald and white right now).
|
|
|
|
/obj/effect/landmark/corpse
|
|
name = "Unknown"
|
|
var/mobname = "Unknown" //Unused now but it'd fuck up maps to remove it now
|
|
var/mob_species = null //Set to make a mob of another race, currently used only in ruins
|
|
var/corpseuniform = null //Set this to an object path to have the slot filled with said object on the corpse.
|
|
var/corpsesuit = null
|
|
var/corpseshoes = null
|
|
var/corpsegloves = null
|
|
var/corpseradio = null
|
|
var/corpseglasses = null
|
|
var/corpsemask = null
|
|
var/corpsehelmet = null
|
|
var/corpsebelt = null
|
|
var/corpsepocket1 = null
|
|
var/corpsepocket2 = null
|
|
var/corpseback = null
|
|
var/corpseid = 0 //Just set to 1 if you want them to have an ID
|
|
var/corpseidjob = null // Needs to be in quotes, such as "Clown" or "Chef." This just determines what the ID reads as, not their access
|
|
var/corpseidaccess = null //This is for access. See access.dm for which jobs give what access. Again, put in quotes. Use "Captain" if you want it to be all access.
|
|
var/corpseidicon = null //For setting it to be a gold, silver, centcomm etc ID
|
|
var/timeofdeath = null
|
|
var/coffin = 0
|
|
var/brute_damage = 0
|
|
var/oxy_damage = 0
|
|
|
|
/obj/effect/landmark/corpse/Initialize()
|
|
..()
|
|
if(istype(src,/obj/effect/landmark/corpse/clown))
|
|
var/obj/effect/landmark/corpse/clown/C = src
|
|
C.chooseRank()
|
|
createCorpse()
|
|
|
|
/obj/effect/landmark/corpse/proc/createCorpse() //Creates a mob and checks for gear in each slot before attempting to equip it.
|
|
var/mob/living/carbon/human/human/M = new /mob/living/carbon/human/human (src.loc)
|
|
M.real_name = src.name
|
|
M.death(1) //Kills the new mob
|
|
M.adjustOxyLoss(oxy_damage)
|
|
M.adjustBruteLoss(brute_damage)
|
|
M.timeofdeath = timeofdeath
|
|
if(mob_species)
|
|
M.set_species(mob_species)
|
|
if(corpseuniform)
|
|
M.equip_to_slot_or_del(new corpseuniform(M), slot_w_uniform)
|
|
if(corpsesuit)
|
|
M.equip_to_slot_or_del(new corpsesuit(M), slot_wear_suit)
|
|
if(corpseshoes)
|
|
M.equip_to_slot_or_del(new corpseshoes(M), slot_shoes)
|
|
if(corpsegloves)
|
|
M.equip_to_slot_or_del(new corpsegloves(M), slot_gloves)
|
|
if(corpseradio)
|
|
M.equip_to_slot_or_del(new corpseradio(M), slot_l_ear)
|
|
if(corpseglasses)
|
|
M.equip_to_slot_or_del(new corpseglasses(M), slot_glasses)
|
|
if(corpsemask)
|
|
M.equip_to_slot_or_del(new corpsemask(M), slot_wear_mask)
|
|
if(corpsehelmet)
|
|
M.equip_to_slot_or_del(new corpsehelmet(M), slot_head)
|
|
if(corpsebelt)
|
|
M.equip_to_slot_or_del(new corpsebelt(M), slot_belt)
|
|
if(corpsepocket1)
|
|
M.equip_to_slot_or_del(new corpsepocket1(M), slot_r_store)
|
|
if(corpsepocket2)
|
|
M.equip_to_slot_or_del(new corpsepocket2(M), slot_l_store)
|
|
if(corpseback)
|
|
M.equip_to_slot_or_del(new corpseback(M), slot_back)
|
|
if(corpseid == 1)
|
|
var/obj/item/card/id/W = new(M)
|
|
W.name = "[M.real_name]'s ID Card"
|
|
var/datum/job/jobdatum
|
|
for(var/jobtype in typesof(/datum/job))
|
|
var/datum/job/J = new jobtype
|
|
if(J.title == corpseidaccess)
|
|
jobdatum = J
|
|
break
|
|
if(corpseidicon)
|
|
W.icon_state = corpseidicon
|
|
if(corpseidaccess)
|
|
if(jobdatum)
|
|
W.access = jobdatum.get_access()
|
|
else
|
|
W.access = list()
|
|
if(corpseidjob)
|
|
W.assignment = corpseidjob
|
|
W.registered_name = M.real_name
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
if(coffin == 1)
|
|
var/obj/structure/closet/coffin/sarcophagus/sarc = locate(/obj/structure/closet/coffin/sarcophagus) in loc
|
|
if(sarc) M.loc = sarc
|
|
qdel(src)
|
|
|
|
// I'll work on making a list of corpses people request for maps, or that I think will be commonly used. Syndicate operatives for example.
|
|
/obj/effect/landmark/corpse/damaged
|
|
brute_damage = 1000
|
|
|
|
/obj/effect/landmark/corpse/syndicatesoldier
|
|
name = "Syndicate Operative"
|
|
corpseuniform = /obj/item/clothing/under/syndicate
|
|
corpsesuit = /obj/item/clothing/suit/armor/vest
|
|
corpseshoes = /obj/item/clothing/shoes/combat
|
|
corpsegloves = /obj/item/clothing/gloves/combat
|
|
corpseradio = /obj/item/radio/headset
|
|
corpsemask = /obj/item/clothing/mask/gas
|
|
corpsehelmet = /obj/item/clothing/head/helmet/swat
|
|
corpseback = /obj/item/storage/backpack
|
|
corpseid = 1
|
|
corpseidjob = "Operative"
|
|
corpseidaccess = "Syndicate"
|
|
|
|
|
|
|
|
/obj/effect/landmark/corpse/syndicatecommando
|
|
name = "Syndicate Commando"
|
|
corpseuniform = /obj/item/clothing/under/syndicate
|
|
corpsesuit = /obj/item/clothing/suit/space/hardsuit/syndi
|
|
corpseshoes = /obj/item/clothing/shoes/magboots/syndie
|
|
corpsegloves = /obj/item/clothing/gloves/combat
|
|
corpseradio = /obj/item/radio/headset
|
|
corpsemask = /obj/item/clothing/mask/gas/syndicate
|
|
corpsehelmet = /obj/item/clothing/head/helmet/space/hardsuit/syndi
|
|
corpseback = /obj/item/tank/jetpack/oxygen
|
|
corpsepocket1 = /obj/item/tank/emergency_oxygen
|
|
corpseid = 1
|
|
corpseidjob = "Operative"
|
|
corpseidaccess = "Syndicate"
|
|
|
|
|
|
|
|
///////////Support//////////////////////
|
|
|
|
/obj/effect/landmark/corpse/chef
|
|
name = "Chef"
|
|
corpseuniform = /obj/item/clothing/under/rank/chef
|
|
corpsesuit = /obj/item/clothing/suit/chef/classic
|
|
corpseshoes = /obj/item/clothing/shoes/black
|
|
corpsehelmet = /obj/item/clothing/head/chefhat
|
|
corpseback = /obj/item/storage/backpack
|
|
corpseradio = /obj/item/radio/headset
|
|
corpseid = 1
|
|
corpseidjob = "Chef"
|
|
corpseidaccess = "Chef"
|
|
|
|
|
|
/obj/effect/landmark/corpse/doctor
|
|
name = "Doctor"
|
|
corpseradio = /obj/item/radio/headset/headset_med
|
|
corpseuniform = /obj/item/clothing/under/rank/medical
|
|
corpsesuit = /obj/item/clothing/suit/storage/labcoat
|
|
corpseback = /obj/item/storage/backpack/medic
|
|
corpsepocket1 = /obj/item/flashlight/pen
|
|
corpseshoes = /obj/item/clothing/shoes/black
|
|
corpseid = 1
|
|
corpseidjob = "Medical Doctor"
|
|
corpseidaccess = "Medical Doctor"
|
|
|
|
/obj/effect/landmark/corpse/engineer
|
|
name = "Engineer"
|
|
corpseradio = /obj/item/radio/headset/headset_eng
|
|
corpseuniform = /obj/item/clothing/under/rank/engineer
|
|
corpseback = /obj/item/storage/backpack/industrial
|
|
corpseshoes = /obj/item/clothing/shoes/workboots
|
|
corpsebelt = /obj/item/storage/belt/utility/full
|
|
corpsegloves = /obj/item/clothing/gloves/color/yellow
|
|
corpsehelmet = /obj/item/clothing/head/hardhat
|
|
corpseid = 1
|
|
corpseidjob = "Station Engineer"
|
|
corpseidaccess = "Station Engineer"
|
|
|
|
/obj/effect/landmark/corpse/engineer/hardsuit
|
|
corpsesuit = /obj/item/clothing/suit/space/hardsuit
|
|
corpsemask = /obj/item/clothing/mask/breath
|
|
corpsehelmet = /obj/item/clothing/head/helmet/space/hardsuit
|
|
|
|
/obj/effect/landmark/corpse/clown
|
|
|
|
/obj/effect/landmark/corpse/clown/proc/chooseRank()
|
|
if(prob(10))
|
|
name = "Clown Officer"
|
|
corpseuniform = /obj/item/clothing/under/officeruniform
|
|
corpsesuit = /obj/item/clothing/suit/officercoat
|
|
corpseshoes = /obj/item/clothing/shoes/clown_shoes
|
|
corpseradio = /obj/item/radio/headset
|
|
corpsemask = /obj/item/clothing/mask/gas/clown_hat
|
|
corpsepocket1 = /obj/item/bikehorn
|
|
corpseback = /obj/item/storage/backpack/clown
|
|
corpsehelmet = /obj/item/clothing/head/naziofficer
|
|
corpseid = 1
|
|
corpseidjob = "Clown Officer"
|
|
corpseidaccess = "Clown"
|
|
timeofdeath = -50000
|
|
else
|
|
name = "Clown Soldier"
|
|
corpseuniform = /obj/item/clothing/under/soldieruniform
|
|
corpsesuit = /obj/item/clothing/suit/soldiercoat
|
|
corpseshoes = /obj/item/clothing/shoes/clown_shoes
|
|
corpseradio = /obj/item/radio/headset
|
|
corpsemask = /obj/item/clothing/mask/gas/clown_hat
|
|
corpsepocket1 = /obj/item/bikehorn
|
|
corpseback = /obj/item/storage/backpack/clown
|
|
corpsehelmet = /obj/item/clothing/head/stalhelm
|
|
corpseid = 1
|
|
corpseidjob = "Clown Soldier"
|
|
corpseidaccess = "Clown"
|
|
timeofdeath = -50000
|
|
|
|
/obj/effect/landmark/corpse/clownking
|
|
name = "Clown King"
|
|
corpseuniform = /obj/item/clothing/under/rank/clown
|
|
corpseshoes = /obj/item/clothing/shoes/clown_shoes
|
|
corpseradio = /obj/item/radio/headset
|
|
corpsemask = /obj/item/clothing/mask/gas/clown_hat
|
|
corpsehelmet = /obj/item/clothing/head/crown
|
|
corpsepocket1 = /obj/item/bikehorn
|
|
corpseback = /obj/item/bedsheet/clown
|
|
corpseid = 1
|
|
corpseidjob = "Clown King"
|
|
corpseidaccess = "Clown"
|
|
timeofdeath = -50000
|
|
coffin = 1
|
|
|
|
/obj/effect/landmark/corpse/mime
|
|
name = "Mime"
|
|
corpseuniform = /obj/item/clothing/under/mime
|
|
corpseshoes = /obj/item/clothing/shoes/black
|
|
corpseradio = /obj/item/radio/headset
|
|
corpsemask = /obj/item/clothing/mask/gas/mime
|
|
corpseback = /obj/item/storage/backpack
|
|
corpseid = 1
|
|
corpseidjob = "Mime"
|
|
corpseidaccess = "Mime"
|
|
timeofdeath = -50000
|
|
|
|
/obj/effect/landmark/corpse/scientist
|
|
name = "Scientist"
|
|
corpseradio = /obj/item/radio/headset/headset_sci
|
|
corpseuniform = /obj/item/clothing/under/rank/scientist
|
|
corpsesuit = /obj/item/clothing/suit/storage/labcoat/science
|
|
corpseback = /obj/item/storage/backpack
|
|
corpseshoes = /obj/item/clothing/shoes/white
|
|
corpseid = 1
|
|
corpseidjob = "Scientist"
|
|
corpseidaccess = "Scientist"
|
|
|
|
/obj/effect/landmark/corpse/miner
|
|
corpseradio = /obj/item/radio/headset/headset_cargo
|
|
corpseuniform = /obj/item/clothing/under/rank/miner
|
|
corpsegloves = /obj/item/clothing/gloves/fingerless
|
|
corpseback = /obj/item/storage/backpack/industrial
|
|
corpseshoes = /obj/item/clothing/shoes/black
|
|
corpseid = 1
|
|
corpseidjob = "Shaft Miner"
|
|
corpseidaccess = "Shaft Miner"
|
|
|
|
/obj/effect/landmark/corpse/miner/hardsuit
|
|
corpsesuit = /obj/item/clothing/suit/space/hardsuit/mining
|
|
corpsemask = /obj/item/clothing/mask/breath
|
|
corpsehelmet = /obj/item/clothing/head/helmet/space/hardsuit/mining
|
|
|
|
|
|
/////////////////Officers//////////////////////
|
|
|
|
/obj/effect/landmark/corpse/bridgeofficer
|
|
name = "Bridge Officer"
|
|
corpseradio = /obj/item/radio/headset/heads/hop
|
|
corpseuniform = /obj/item/clothing/under/rank/centcom_officer
|
|
corpsesuit = /obj/item/clothing/suit/armor/bulletproof
|
|
corpseshoes = /obj/item/clothing/shoes/black
|
|
corpseglasses = /obj/item/clothing/glasses/sunglasses
|
|
corpseid = 1
|
|
corpseidjob = "Bridge Officer"
|
|
corpseidaccess = "Captain"
|
|
|
|
/obj/effect/landmark/corpse/commander
|
|
name = "Commander"
|
|
corpseuniform = /obj/item/clothing/under/rank/centcom_commander
|
|
corpsesuit = /obj/item/clothing/suit/armor/bulletproof
|
|
corpseradio = /obj/item/radio/headset/heads/captain
|
|
corpseglasses = /obj/item/clothing/glasses/eyepatch
|
|
corpsemask = /obj/item/clothing/mask/cigarette/cigar/cohiba
|
|
corpsehelmet = /obj/item/clothing/head/centhat
|
|
corpsegloves = /obj/item/clothing/gloves/combat
|
|
corpseshoes = /obj/item/clothing/shoes/combat
|
|
corpsepocket1 = /obj/item/lighter/zippo
|
|
corpseid = 1
|
|
corpseidjob = "Commander"
|
|
corpseidaccess = "Captain"
|
|
|
|
/obj/effect/landmark/corpse/abductor //Connected to ruins, for some reason?
|
|
name = "abductor"
|
|
mobname = "???"
|
|
mob_species = "abductor"
|
|
corpseuniform = /obj/item/clothing/under/color/grey
|
|
corpseshoes = /obj/item/clothing/shoes/combat
|