diff --git a/baystation12.dme b/baystation12.dme index 8fce1c29d1e..de0707e36b2 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1264,7 +1264,6 @@ #include "code\modules\mob\living\simple_animal\bees.dm" #include "code\modules\mob\living\simple_animal\borer.dm" #include "code\modules\mob\living\simple_animal\constructs.dm" -#include "code\modules\mob\living\simple_animal\corpse.dm" #include "code\modules\mob\living\simple_animal\parrot.dm" #include "code\modules\mob\living\simple_animal\shade.dm" #include "code\modules\mob\living\simple_animal\simple_animal.dm" diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 0a9fb1040dd..b8f14b88c48 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -1,8 +1,3 @@ -//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" @@ -29,10 +24,10 @@ 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/M = new /mob/living/carbon/human (src.loc) + var/mob/living/carbon/human/M = new /mob/living/carbon/human (loc) M.dna.mutantrace = mutantrace M.real_name = src.name - M.death(1) //Kills the new mob + M.adjustOxyLoss(200) //Kills the new mob if(src.corpseuniform) M.equip_to_slot_or_del(new src.corpseuniform(M), slot_w_uniform) if(src.corpsesuit) @@ -77,7 +72,7 @@ W.assignment = corpseidjob W.registered_name = M.real_name M.equip_to_slot_or_del(W, slot_wear_id) - del(src) + qdel(src) @@ -243,3 +238,33 @@ corpseid = 1 corpseidjob = "Commander" corpseidaccess = "Captain" + +/////////////////Simple-Mob Corpses///////////////////// + +/obj/effect/landmark/corpse/pirate + name = "Pirate" + corpseuniform = /obj/item/clothing/under/pirate + corpseshoes = /obj/item/clothing/shoes/jackboots + corpseglasses = /obj/item/clothing/glasses/eyepatch + corpsehelmet = /obj/item/clothing/head/bandana + +/obj/effect/landmark/corpse/pirate + name = "Pirate" + corpseuniform = /obj/item/clothing/under/pirate + corpseshoes = /obj/item/clothing/shoes/jackboots + corpseglasses = /obj/item/clothing/glasses/eyepatch + corpsehelmet = /obj/item/clothing/head/bandana + +/obj/effect/landmark/corpse/pirate/ranged + name = "Pirate Gunner" + corpsesuit = /obj/item/clothing/suit/pirate + corpsehelmet = /obj/item/clothing/head/pirate + +/obj/effect/landmark/corpse/russian + name = "Russian" + corpseuniform = /obj/item/clothing/under/soviet + corpseshoes = /obj/item/clothing/shoes/jackboots + corpsehelmet = /obj/item/clothing/head/bearpelt + +/obj/effect/landmark/corpse/russian/ranged + corpsehelmet = /obj/item/clothing/head/ushanka \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm deleted file mode 100644 index e3f7f3ceac2..00000000000 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ /dev/null @@ -1,157 +0,0 @@ -//Meant for simple animals to drop lootable human bodies. - -//If someone can do this in a neater way, be my guest-Kor - -//This has to be seperate from the Away Mission corpses, because New() doesn't work for those, and initialize() doesn't work for these. - -//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/mobcorpse - name = "Unknown" - var/mobname = "Unknown" //Unused now but it'd fuck up maps to remove it now - 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/mobcorpse/New() - createCorpse() - -/obj/effect/landmark/mobcorpse/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.real_name = src.name - 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" - 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(src.corpseidicon) - W.icon_state = corpseidicon - if(src.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) - del(src) - - - -//List of different corpse types - -/obj/effect/landmark/mobcorpse/syndicatesoldier - name = "Syndicate Operative" - corpseuniform = /obj/item/clothing/under/syndicate - corpsesuit = /obj/item/clothing/suit/armor/vest - corpseshoes = /obj/item/clothing/shoes/swat - corpsegloves = /obj/item/clothing/gloves/swat - corpseradio = /obj/item/device/radio/headset - corpsemask = /obj/item/clothing/mask/gas - corpsehelmet = /obj/item/clothing/head/helmet/swat - corpseback = /obj/item/weapon/storage/backpack - corpseid = 1 - corpseidjob = "Operative" - corpseidaccess = "Syndicate" - - - -/obj/effect/landmark/mobcorpse/syndicatecommando - name = "Syndicate Commando" - corpseuniform = /obj/item/clothing/under/syndicate - corpsesuit = /obj/item/clothing/suit/space/rig/syndi - corpseshoes = /obj/item/clothing/shoes/swat - corpsegloves = /obj/item/clothing/gloves/swat - corpseradio = /obj/item/device/radio/headset - corpsemask = /obj/item/clothing/mask/gas/syndicate - corpsehelmet = /obj/item/clothing/head/helmet/space/rig/syndi - corpseback = /obj/item/weapon/tank/jetpack/oxygen - corpsepocket1 = /obj/item/weapon/tank/emergency_oxygen - corpseid = 1 - corpseidjob = "Operative" - corpseidaccess = "Syndicate" - - - -/obj/effect/landmark/mobcorpse/clown - name = "Clown" - 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" - - - -/obj/effect/landmark/mobcorpse/pirate - name = "Pirate" - corpseuniform = /obj/item/clothing/under/pirate - corpseshoes = /obj/item/clothing/shoes/jackboots - corpseglasses = /obj/item/clothing/glasses/eyepatch - corpsehelmet = /obj/item/clothing/head/bandana - - - -/obj/effect/landmark/mobcorpse/pirate/ranged - name = "Pirate Gunner" - corpsesuit = /obj/item/clothing/suit/pirate - corpsehelmet = /obj/item/clothing/head/pirate - - - -/obj/effect/landmark/mobcorpse/russian - name = "Russian" - corpseuniform = /obj/item/clothing/under/soviet - corpseshoes = /obj/item/clothing/shoes/jackboots - corpsehelmet = /obj/item/clothing/head/bearpelt - -/obj/effect/landmark/mobcorpse/russian/ranged - corpsehelmet = /obj/item/clothing/head/ushanka \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index 691490c61c8..64fae22aef5 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -29,7 +29,7 @@ min_n2 = 0 max_n2 = 0 unsuitable_atoms_damage = 15 - var/corpse = /obj/effect/landmark/mobcorpse/pirate + var/obj/effect/landmark/corpse/corpse = /obj/effect/landmark/corpse/pirate var/weapon1 = /obj/item/weapon/melee/energy/sword/pirate faction = "pirate" @@ -45,15 +45,16 @@ retreat_distance = 5 minimum_distance = 5 projectiletype = /obj/item/projectile/beam - corpse = /obj/effect/landmark/mobcorpse/pirate/ranged + corpse = /obj/effect/landmark/corpse/pirate/ranged weapon1 = /obj/item/weapon/gun/energy/laser /mob/living/simple_animal/hostile/pirate/Die() ..() if(corpse) - new corpse (src.loc) + new corpse(loc) + corpse.createCorpse() if(weapon1) - new weapon1 (src.loc) - del src + new weapon1 (get_turf(src)) + qdel(src) return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index f3197a721a3..49378ce889c 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -19,7 +19,7 @@ melee_damage_upper = 15 attacktext = "punches" a_intent = I_HURT - var/corpse = /obj/effect/landmark/mobcorpse/russian + var/obj/effect/landmark/corpse/corpse = /obj/effect/landmark/corpse/russian var/weapon1 = /obj/item/weapon/kitchen/utensil/knife/large min_oxy = 5 max_oxy = 0 @@ -37,7 +37,7 @@ /mob/living/simple_animal/hostile/russian/ranged icon_state = "russianranged" icon_living = "russianranged" - corpse = /obj/effect/landmark/mobcorpse/russian/ranged + corpse = /obj/effect/landmark/corpse/russian/ranged weapon1 = /obj/item/weapon/gun/projectile/mateba ranged = 1 retreat_distance = 5 @@ -50,8 +50,9 @@ /mob/living/simple_animal/hostile/russian/Die() ..() if(corpse) - new corpse (src.loc) + new corpse(loc) + corpse.createCorpse() if(weapon1) - new weapon1 (src.loc) - del src + new weapon1 (get_turf(src)) + qdel(src) return diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index e29f76248ae..5bdf9f99352 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -19,7 +19,7 @@ melee_damage_upper = 10 attacktext = "punches" a_intent = I_HURT - var/corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier + var/obj/effect/landmark/corpse/corpse = /obj/effect/landmark/corpse/syndicatesoldier var/weapon1 var/weapon2 min_oxy = 5 @@ -37,12 +37,13 @@ /mob/living/simple_animal/hostile/syndicate/Die() ..() if(corpse) - new corpse (src.loc) + new corpse(loc) + corpse.createCorpse() if(weapon1) - new weapon1 (src.loc) + new weapon1 (get_turf(src)) if(weapon2) - new weapon2 (src.loc) - del src + new weapon2 (get_turf(src)) + qdel(src) return ///////////////Sword and shield//////////// @@ -95,7 +96,7 @@ icon_state = "syndicatemeleespace" icon_living = "syndicatemeleespace" name = "Syndicate Commando" - corpse = /obj/effect/landmark/mobcorpse/syndicatecommando + corpse = /obj/effect/landmark/corpse/syndicatecommando speed = 0 /mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(var/check_drift = 0) @@ -127,7 +128,7 @@ min_n2 = 0 max_n2 = 0 minbodytemp = 0 - corpse = /obj/effect/landmark/mobcorpse/syndicatecommando + corpse = /obj/effect/landmark/corpse/syndicatecommando speed = 0 /mob/living/simple_animal/hostile/syndicate/ranged/space/Process_Spacemove(var/check_drift = 0) diff --git a/maps/tgstation.dmm b/maps/tgstation.dmm index aae32c66589..e36d670961a 100644 --- a/maps/tgstation.dmm +++ b/maps/tgstation.dmm @@ -7831,7 +7831,7 @@ "cUE" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/obj/item/device/flash,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "cUF" = (/obj/machinery/door/window{dir = 1; base_state = "right"; dir = 4; name = "Security Desk"; req_access_txt = "103"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "cUG" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"cUH" = (/obj/effect/landmark/mobcorpse/russian,/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) +"cUH" = (/obj/effect/landmark/corpse/russian,/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) "cUI" = (/obj/machinery/vending/cola,/turf/simulated/shuttle/floor,/area/centcom/evac) "cUJ" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_station/start) "cUK" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start)