Corpse Landmarks Update pt1

This commit is contained in:
Killian
2021-01-10 01:57:46 -05:00
committed by VirgoBot
parent bdc7453939
commit b2f5f747c7
2 changed files with 129 additions and 12 deletions
+120 -12
View File
@@ -23,7 +23,11 @@
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, CentCom etc ID
var/species = SPECIES_HUMAN
var/species = SPECIES_HUMAN //defaults to generic-ass humans
var/random_species = FALSE //flip to TRUE to randomize species from the list below
var/list/random_species_list = list(SPECIES_HUMAN,SPECIES_TAJ,SPECIES_UNATHI,SPECIES_SKRELL) //preset list that can be overriden downstream. only includes common humanoids for voidsuit compatibility's sake.
// var/random_appearance = FALSE //TODO: make this work
// var/cause_of_death = null //TODO: set up a cause-of-death system. needs to support both damage types and actual wound types, so a body can have been bitten/stabbed/clawed/shot/burned/lasered/etc. to death
delete_me = TRUE
/obj/effect/landmark/corpse/Initialize()
@@ -33,13 +37,20 @@
/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/M = new /mob/living/carbon/human (src.loc)
M.set_species(species)
if(random_species)
var/random_pick = pick(random_species_list)
M.set_species(random_pick)
src.species = random_pick
else
M.set_species(species)
//TODO: insert appearance randomization, needs to be species-based
M.real_name = src.name
M.death(1) //Kills the new mob
//TODO: insert cause of death handling/wound simulation here
if(src.corpseuniform)
M.equip_to_slot_or_del(new src.corpseuniform(M), slot_w_uniform)
if(src.corpsesuit)
M.equip_to_slot_or_del(new src.corpsesuit(M), slot_wear_suit)
M.equip_voidsuit_to_slot_or_del_with_refit(new src.corpsesuit(M), slot_wear_suit, src.species)
if(src.corpseshoes)
M.equip_to_slot_or_del(new src.corpseshoes(M), slot_shoes)
if(src.corpsegloves)
@@ -51,7 +62,7 @@
if(src.corpsemask)
M.equip_to_slot_or_del(new src.corpsemask(M), slot_wear_mask)
if(src.corpsehelmet)
M.equip_to_slot_or_del(new src.corpsehelmet(M), slot_head)
M.equip_voidhelm_to_slot_or_del_with_refit(new src.corpsehelmet(M), slot_head, src.species)
if(src.corpsebelt)
M.equip_to_slot_or_del(new src.corpsebelt(M), slot_belt)
if(src.corpsepocket1)
@@ -84,10 +95,6 @@
// 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/syndicatesoldier
name = "Mercenary"
corpseuniform = /obj/item/clothing/under/syndicate
@@ -102,8 +109,6 @@
corpseidjob = "Operative"
corpseidaccess = "Syndicate"
/obj/effect/landmark/corpse/syndicatecommando
name = "Syndicate Commando"
corpseuniform = /obj/item/clothing/under/syndicate
@@ -119,10 +124,14 @@
corpseidjob = "Operative"
corpseidaccess = "Syndicate"
///////////Civilians//////////////////////
/obj/effect/landmark/corpse/random_civ
name = "Civilian"
corpseuniform = /obj/item/clothing/under/color/grey
corpseshoes = /obj/item/clothing/shoes/black
random_species = TRUE
/obj/effect/landmark/corpse/chef
name = "Chef"
corpseuniform = /obj/item/clothing/under/rank/chef
@@ -165,6 +174,7 @@
corpsesuit = /obj/item/clothing/suit/space/void/engineering
corpsemask = /obj/item/clothing/mask/breath
corpsehelmet = /obj/item/clothing/head/helmet/space/void/engineering
corpseback = /obj/item/weapon/tank/oxygen
/obj/effect/landmark/corpse/clown
name = "Clown"
@@ -188,6 +198,39 @@
corpseid = 1
corpseidjob = "Scientist"
corpseidaccess = "Scientist"
/obj/effect/landmark/corpse/security
name = "Security Officer"
corpseradio = /obj/item/device/radio/headset/headset_sec
corpseuniform = /obj/item/clothing/under/rank/security
corpsesuit = /obj/item/clothing/suit/armor/vest
corpseback = /obj/item/weapon/storage/backpack/security
corpseshoes = /obj/item/clothing/shoes/boots/jackboots
corpseglasses = /obj/item/clothing/glasses/sunglasses/sechud
corpsegloves = /obj/item/clothing/gloves/black
corpsehelmet = /obj/item/clothing/head/helmet
corpseid = 1
corpseidjob = "Security Officer"
corpseidaccess = "Security Officer"
/obj/effect/landmark/corpse/security/rig
corpsesuit = /obj/item/clothing/suit/space/void/security
corpsemask = /obj/item/clothing/mask/breath
corpsehelmet = /obj/item/clothing/head/helmet/space/void/security
corpseback = /obj/item/weapon/tank/jetpack/oxygen
/obj/effect/landmark/corpse/security/rig/eva
corpsesuit = /obj/item/clothing/suit/space/void/security/alt
corpsehelmet = /obj/item/clothing/head/helmet/space/void/security/alt
corpseidjob = "Starship Security Officer"
/obj/effect/landmark/corpse/prisoner
name = "Unknown Prisoner"
corpseuniform = /obj/item/clothing/under/color/prison
corpseshoes = /obj/item/clothing/shoes/orange
corpseid = 1
corpseidjob = "Prisoner"
random_species = TRUE
/obj/effect/landmark/corpse/miner
corpseradio = /obj/item/device/radio/headset/headset_cargo
@@ -203,6 +246,7 @@
corpsesuit = /obj/item/clothing/suit/space/void/mining
corpsemask = /obj/item/clothing/mask/breath
corpsehelmet = /obj/item/clothing/head/helmet/space/void/mining
<<<<<<< HEAD
//VORESTATION ADD START
/obj/effect/landmark/corpse/vintage/pilot
@@ -213,7 +257,71 @@
corpseshoes = /obj/item/clothing/shoes/black
corpseback = /obj/item/weapon/tank/oxygen
//VORESTATION ADD END
=======
corpseback = /obj/item/weapon/tank/oxygen
/////////////////Vintage//////////////////////
//define the basic props at this level and only change specifics for variants, e.z.
/obj/effect/landmark/corpse/vintage
name = "Unknown Crewmate"
corpseuniform = /obj/item/clothing/under/utility
corpsesuit = /obj/item/clothing/suit/space/void/refurb
corpsehelmet = /obj/item/clothing/head/helmet/space/void/refurb
corpsemask = /obj/item/clothing/mask/breath
corpseback = /obj/item/weapon/tank/oxygen
corpseid = 1
corpseidjob = "Crewmate"
>>>>>>> 831bd68... corpse landmarks update (#7801)
/obj/effect/landmark/corpse/vintage/engineering
name = "Unknown Engineer"
corpsesuit = /obj/item/clothing/suit/space/void/refurb/engineering
corpsehelmet = /obj/item/clothing/head/helmet/space/void/refurb/engineering
corpsebelt = /obj/item/weapon/storage/belt/utility/full
corpseback = /obj/item/weapon/tank/oxygen/yellow
corpseidjob = "Engineer"
/obj/effect/landmark/corpse/vintage/marine
name = "Unknown Marine"
corpsesuit = /obj/item/clothing/suit/space/void/refurb/marine
corpsehelmet = /obj/item/clothing/head/helmet/space/void/refurb/marine
corpsebelt = /obj/item/weapon/storage/belt/security/tactical
corpseidjob = "Marine"
/obj/effect/landmark/corpse/vintage/medical
name = "Unknown Medic"
corpsesuit = /obj/item/clothing/suit/space/void/refurb/medical
corpsehelmet = /obj/item/clothing/head/helmet/space/void/refurb/medical
corpsebelt = /obj/item/weapon/storage/belt/medical
corpseidjob = "Medic"
/obj/effect/landmark/corpse/vintage/mercenary
name = "Unknown Mercenary"
corpsesuit = /obj/item/clothing/suit/space/void/refurb/mercenary
corpsehelmet = /obj/item/clothing/head/helmet/space/void/refurb/mercenary
corpsebelt = /obj/item/weapon/storage/belt/security/tactical
corpseback = /obj/item/weapon/tank/oxygen/red
corpseidjob = "Mercenary"
/obj/effect/landmark/corpse/vintage/officer
name = "Unknown Captain"
corpsesuit = /obj/item/clothing/suit/space/void/refurb/officer
corpsehelmet = /obj/item/clothing/head/helmet/space/void/refurb/officer
corpseback = /obj/item/weapon/tank/oxygen/yellow
corpseidjob = "Captain"
/obj/effect/landmark/corpse/vintage/pilot
name = "Unknown Pilot"
corpsesuit = /obj/item/clothing/suit/space/void/refurb/pilot
corpsehelmet = /obj/item/clothing/head/helmet/space/void/refurb/pilot
corpseidjob = "Pilot"
/obj/effect/landmark/corpse/vintage/research
name = "Unknown Researcher"
corpsesuit = /obj/item/clothing/suit/space/void/refurb/research
corpsehelmet = /obj/item/clothing/head/helmet/space/void/refurb/research
corpseidjob = "Researcher"
/////////////////Officers//////////////////////
+9
View File
@@ -71,6 +71,15 @@ var/list/slot_equipment_priority = list( \
/mob/proc/equip_to_slot_or_del(obj/item/W as obj, slot)
return equip_to_slot_if_possible(W, slot, 1, 1, 0)
//hurgh. these feel hacky, but they're the only way I could get the damn thing to work. I guess they could be handy for antag spawners too?
/mob/proc/equip_voidsuit_to_slot_or_del_with_refit(obj/item/clothing/suit/space/void/W as obj, slot, species = SPECIES_HUMAN)
W.refit_for_species(species)
return equip_to_slot_if_possible(W, slot, 1, 1, 0)
/mob/proc/equip_voidhelm_to_slot_or_del_with_refit(obj/item/clothing/head/helmet/space/void/W as obj, slot, species = SPECIES_HUMAN)
W.refit_for_species(species)
return equip_to_slot_if_possible(W, slot, 1, 1, 0)
//Checks if a given slot can be accessed at this time, either to equip or unequip I
/mob/proc/slot_is_accessible(var/slot, var/obj/item/I, mob/user=null)
return 1