mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 12:05:59 +01:00
Corpses spawned from human-like npcs will inherit damage values dealt to the npc (#90037)
## About The Pull Request If you shoot a Syndicate NPC, and it dies and spawns a corpse, the corpse will - rather than having zero damage - have the corresponding damage you dealt to it. ## Why It's Good For The Game Always found it a little immersion breaking that they just spawned flawless corpses. Course they won't have any wounds or anything... but hey it's *better*. ## Changelog 🆑 Melbert qol: Corpses spawned from human-like NPCs will spawn damaged according to how they died (or will even gib if the npc was gibbed) fix: Maint Russians with guns will now spawn corpses instead of vanishing /🆑
This commit is contained in:
@@ -3,13 +3,13 @@
|
||||
name = "Abductor Agent"
|
||||
desc = "Mezaflorp?"
|
||||
faction = list(ROLE_SYNDICATE)
|
||||
loot = list(/obj/effect/mob_spawn/corpse/human/abductor)
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/abductor
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/abductor
|
||||
|
||||
/mob/living/basic/trooper/abductor/melee
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 15
|
||||
loot = list(/obj/effect/gibspawner/human)
|
||||
corpse = /obj/effect/gibspawner/human
|
||||
attack_verb_continuous = "beats"
|
||||
attack_verb_simple = "beat"
|
||||
attack_sound = 'sound/items/weapons/egloves.ogg'
|
||||
@@ -18,7 +18,7 @@
|
||||
var/projectile_deflect_chance = 0
|
||||
|
||||
/mob/living/basic/trooper/abductor/ranged
|
||||
loot = list(/obj/effect/gibspawner/human)
|
||||
corpse = /obj/effect/gibspawner/human
|
||||
ai_controller = /datum/ai_controller/basic_controller/trooper/ranged
|
||||
r_hand = /obj/item/gun/energy/alien
|
||||
/// Type of bullet we use
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 15
|
||||
faction = list(ROLE_DEATHSQUAD)
|
||||
loot = list(/obj/effect/mob_spawn/corpse/human/nanotrasensoldier)
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/nanotrasensoldier
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/nanotrasensoldier
|
||||
|
||||
/mob/living/basic/trooper/nanotrasen/assess_threat(judgement_criteria, lasercolor, datum/callback/weaponcheck)
|
||||
@@ -56,7 +56,7 @@
|
||||
ranged_cooldown = 3 SECONDS
|
||||
projectilesound = 'sound/items/weapons/gun/smg/shot.ogg'
|
||||
r_hand = /obj/item/gun/ballistic/automatic/ar
|
||||
loot = list(/obj/effect/mob_spawn/corpse/human/nanotrasenassaultsoldier)
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/nanotrasenassaultsoldier
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/nanotrasenassaultsoldier
|
||||
|
||||
/mob/living/basic/trooper/nanotrasen/ranged/elite
|
||||
@@ -71,7 +71,7 @@
|
||||
projectilesound = 'sound/items/weapons/laser.ogg'
|
||||
ranged_cooldown = 5 SECONDS
|
||||
faction = list(ROLE_DEATHSQUAD)
|
||||
loot = list(/obj/effect/gibspawner/human)
|
||||
corpse = /obj/effect/gibspawner/human
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/nanotrasenelitesoldier
|
||||
r_hand = /obj/item/gun/energy/pulse/carbine/lethal
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
response_help_simple = "push"
|
||||
speak_emote = list("yarrs")
|
||||
faction = list(FACTION_PIRATE)
|
||||
loot = list(/obj/effect/mob_spawn/corpse/human/pirate)
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/pirate
|
||||
|
||||
/// The amount of money to steal with a melee attack
|
||||
var/plunder_credits = 25
|
||||
@@ -30,10 +30,10 @@
|
||||
light_power = 2.5
|
||||
light_color = COLOR_SOFT_RED
|
||||
loot = list(
|
||||
/obj/effect/mob_spawn/corpse/human/pirate/melee,
|
||||
/obj/item/melee/energy/sword/pirate,
|
||||
)
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/melee
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/pirate/melee
|
||||
r_hand = /obj/item/melee/energy/sword/pirate
|
||||
plunder_credits = 50 //they hit hard so they steal more
|
||||
|
||||
@@ -41,8 +41,9 @@
|
||||
name = "Space Pirate Swashbuckler"
|
||||
unsuitable_atmos_damage = 0
|
||||
minimum_survivable_temperature = 0
|
||||
loot = list(/obj/effect/mob_spawn/corpse/human/pirate/melee/space)
|
||||
loot = null
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/melee/space
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/pirate/melee/space
|
||||
|
||||
/mob/living/basic/trooper/pirate/melee/space/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -50,8 +51,8 @@
|
||||
|
||||
/mob/living/basic/trooper/pirate/ranged
|
||||
name = "Pirate Gunner"
|
||||
loot = list(/obj/effect/mob_spawn/corpse/human/pirate/ranged)
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/ranged
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/pirate/ranged
|
||||
r_hand = /obj/item/gun/energy/laser
|
||||
ai_controller = /datum/ai_controller/basic_controller/trooper/ranged
|
||||
/// Type of bullet we use
|
||||
@@ -77,7 +78,7 @@
|
||||
name = "Space Pirate Gunner"
|
||||
unsuitable_atmos_damage = 0
|
||||
minimum_survivable_temperature = 0
|
||||
loot = list(/obj/effect/mob_spawn/corpse/human/pirate/ranged/space)
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/pirate/ranged/space
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/ranged/space
|
||||
r_hand = /obj/item/gun/energy/e_gun/lethal
|
||||
|
||||
|
||||
@@ -16,19 +16,15 @@
|
||||
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/russian
|
||||
r_hand = /obj/item/knife/kitchen
|
||||
loot = list(
|
||||
/obj/effect/mob_spawn/corpse/human/russian,
|
||||
/obj/item/knife/kitchen,
|
||||
)
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/russian
|
||||
loot = list(/obj/item/knife/kitchen)
|
||||
|
||||
/mob/living/basic/trooper/russian/ranged
|
||||
ai_controller = /datum/ai_controller/basic_controller/trooper/ranged
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/russian/ranged
|
||||
r_hand = /obj/item/gun/ballistic/automatic/pistol
|
||||
loot = list(
|
||||
/obj/effect/mob_spawn/corpse/human/russian/ranged,
|
||||
/obj/item/gun/ballistic/revolver/nagant,
|
||||
)
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/russian/ranged
|
||||
loot = list(/obj/item/gun/ballistic/revolver/nagant)
|
||||
var/casingtype = /obj/item/ammo_casing/n762
|
||||
var/projectilesound = 'sound/items/weapons/gun/revolver/shot.ogg'
|
||||
|
||||
@@ -37,4 +33,4 @@
|
||||
AddComponent(/datum/component/ranged_attacks, casing_type = casingtype, projectile_sound = projectilesound, cooldown_time = 1 SECONDS)
|
||||
|
||||
/mob/living/basic/trooper/russian/ranged/lootless
|
||||
loot = list()
|
||||
loot = null
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
name = "Syndicate Operative"
|
||||
desc = "Death to Nanotrasen."
|
||||
faction = list(ROLE_SYNDICATE)
|
||||
loot = list(/obj/effect/mob_spawn/corpse/human/syndicatesoldier)
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/syndicatesoldier
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/syndicatesoldier
|
||||
|
||||
/mob/living/basic/trooper/syndicate/space
|
||||
name = "Syndicate Commando"
|
||||
maxHealth = 170
|
||||
health = 170
|
||||
loot = list(/obj/effect/gibspawner/human)
|
||||
corpse = /obj/effect/gibspawner/human
|
||||
unsuitable_atmos_damage = 0
|
||||
minimum_survivable_temperature = 0
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/syndicatecommando
|
||||
@@ -29,7 +29,7 @@
|
||||
/mob/living/basic/trooper/syndicate/melee //dude with a knife and no shields
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 15
|
||||
loot = list(/obj/effect/gibspawner/human)
|
||||
corpse = /obj/effect/gibspawner/human
|
||||
attack_verb_continuous = "slashes"
|
||||
attack_verb_simple = "slash"
|
||||
attack_sound = 'sound/items/weapons/bladeslice.ogg'
|
||||
@@ -99,7 +99,7 @@
|
||||
///////////////Guns////////////
|
||||
|
||||
/mob/living/basic/trooper/syndicate/ranged
|
||||
loot = list(/obj/effect/gibspawner/human)
|
||||
corpse = /obj/effect/gibspawner/human
|
||||
ai_controller = /datum/ai_controller/basic_controller/trooper/ranged
|
||||
r_hand = /obj/item/gun/ballistic/automatic/pistol
|
||||
/// Type of bullet we use
|
||||
@@ -125,7 +125,7 @@
|
||||
|
||||
/mob/living/basic/trooper/syndicate/ranged/infiltrator //shuttle loan event
|
||||
projectilesound = 'sound/items/weapons/gun/smg/shot_suppressed.ogg'
|
||||
loot = list(/obj/effect/mob_spawn/corpse/human/syndicatesoldier)
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/syndicatesoldier
|
||||
|
||||
/mob/living/basic/trooper/syndicate/ranged/space
|
||||
name = "Syndicate Commando"
|
||||
@@ -159,12 +159,12 @@
|
||||
name = "spaceport security"
|
||||
desc = "Premier corporate security forces for all spaceports found along the Orion Trail."
|
||||
faction = list(FACTION_ORION)
|
||||
loot = list()
|
||||
corpse = null
|
||||
|
||||
/mob/living/basic/trooper/syndicate/ranged/smg/pilot //caravan ambush ruin
|
||||
name = "Syndicate Salvage Pilot"
|
||||
loot = list(/obj/effect/mob_spawn/corpse/human/syndicatepilot)
|
||||
mob_spawner = /obj/effect/mob_spawn/corpse/human/syndicatepilot
|
||||
corpse = /obj/effect/mob_spawn/corpse/human/syndicatepilot
|
||||
|
||||
/mob/living/basic/trooper/syndicate/ranged/smg/space
|
||||
name = "Syndicate Commando"
|
||||
|
||||
@@ -19,7 +19,9 @@
|
||||
ai_controller = /datum/ai_controller/basic_controller/trooper
|
||||
|
||||
/// Loot this mob drops on death.
|
||||
var/loot = list(/obj/effect/mob_spawn/corpse/human)
|
||||
var/list/loot
|
||||
/// Corpse to spawn
|
||||
var/corpse = /obj/effect/mob_spawn/corpse/human
|
||||
/// Path of the mob spawner we base the mob's visuals off of.
|
||||
var/mob_spawner = /obj/effect/mob_spawn/corpse/human
|
||||
/// Path of the right hand held item we give to the mob's visuals.
|
||||
@@ -30,7 +32,8 @@
|
||||
/mob/living/basic/trooper/Initialize(mapload)
|
||||
. = ..()
|
||||
apply_dynamic_human_appearance(src, mob_spawn_path = mob_spawner, r_hand = r_hand, l_hand = l_hand)
|
||||
if(LAZYLEN(loot))
|
||||
if(LAZYLEN(loot) || corpse)
|
||||
LAZYOR(loot, corpse)
|
||||
loot = string_list(loot)
|
||||
AddElement(/datum/element/death_drops, loot)
|
||||
AddElement(/datum/element/footstep, footstep_type = FOOTSTEP_MOB_SHOE)
|
||||
|
||||
Reference in New Issue
Block a user