From 60cf354e408d12b578860907fe60d29ea7224bda Mon Sep 17 00:00:00 2001 From: "Kortgstation@gmail.com" Date: Mon, 1 Oct 2012 03:46:53 +0000 Subject: [PATCH] Adds code for spawning corpses equipped with items. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4790 316c924e-a436-60f5-8080-3fe189b3f50e --- code/modules/awaymissions/corpse.dm | 81 +++++++++++++++++++++++++++++ tgstation.dme | 3 ++ 2 files changed, 84 insertions(+) create mode 100644 code/modules/awaymissions/corpse.dm diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm new file mode 100644 index 00000000000..6b86459d52c --- /dev/null +++ b/code/modules/awaymissions/corpse.dm @@ -0,0 +1,81 @@ +//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 + + var/mobname = "Uknown" //Names the mob, obviously + 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 + + +/obj/effect/landmark/corpse/New() //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.real_name = src.mobname + M.stat = 2 //Kills the new mob + 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) + if(src.corpseshoes) + M.equip_to_slot_or_del(new src.corpseshoes(M), slot_shoes) + if(src.corpsegloves) + M.equip_to_slot_or_del(new src.corpsegloves(M), slot_gloves) + if(src.corpseradio) + M.equip_to_slot_or_del(new src.corpseradio(M), slot_ears) + if(src.corpseglasses) + M.equip_to_slot_or_del(new src.corpseglasses(M), slot_glasses) + 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) + if(src.corpsebelt) + M.equip_to_slot_or_del(new src.corpsebelt(M), slot_belt) + if(src.corpsepocket1) + M.equip_to_slot_or_del(new src.corpsepocket1(M), slot_r_store) + if(src.corpsepocket2) + M.equip_to_slot_or_del(new src.corpsepocket2(M), slot_l_store) + if(src.corpseback) + M.equip_to_slot_or_del(new src.corpseback(M), slot_back) + if(src.corpseid == 1) + var/obj/item/weapon/card/id/W = new(M) + W.name = "[M.real_name]'s ID Card" + if(src.corpseidicon) + W.icon_state = corpseidicon + if(src.corpseidaccess) + W.access = get_access(corpseidaccess) + if(corpseidjob) + W.assignment = corpseidjob + W.registered_name = M.real_name + M.equip_to_slot_or_del(W, slot_wear_id) + del(src) + + +//An example. +/obj/effect/landmark/corpse/clown + mobname = "Giggles" + corpseuniform = /obj/item/clothing/under/rank/clown + corpseshoes = /obj/item/clothing/shoes/clown_shoes + corpseradio = /obj/item/device/radio/headset + corpsemask = /obj/item/clothing/mask/gas/clown_hat + corpsepocket1 = /obj/item/weapon/bikehorn + corpseback = /obj/item/weapon/storage/backpack/clown + corpseid = 1 + corpseidjob = "Clown" + corpseidaccess = "Clown" + +// 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. \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 62c156a3e2e..5447b576899 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -205,7 +205,9 @@ #define FILE_DIR "icons/vending_icons" #define FILE_DIR "interface" #define FILE_DIR "maps" +#define FILE_DIR "maps/backup" #define FILE_DIR "maps/RandomZLevels" +#define FILE_DIR "maps/RandomZLevels/backup" #define FILE_DIR "sound" #define FILE_DIR "sound/AI" #define FILE_DIR "sound/ambience" @@ -853,6 +855,7 @@ #include "code\modules\assembly\shock_kit.dm" #include "code\modules\assembly\signaler.dm" #include "code\modules\assembly\timer.dm" +#include "code\modules\awaymissions\corpse.dm" #include "code\modules\awaymissions\gateway.dm" #include "code\modules\awaymissions\loot.dm" #include "code\modules\awaymissions\pamphlet.dm"