Bileworm post-merge feedback and qol (#69007)

* Bileworm now has a deathsound, and deathsounds now properly play on simplemobs.
* AI-controlled Bileworms now have night vision abilities
This commit is contained in:
tralezab
2022-08-08 14:40:46 -07:00
committed by GitHub
parent 259aeff063
commit 4e97d03657
62 changed files with 145 additions and 111 deletions
@@ -440,7 +440,7 @@
"PQ" = (
/obj/effect/decal/cleanable/blood/splatter,
/mob/living/simple_animal/hostile/illusion{
deathmessage = "disperses into the air in a cloud of red mist, you feel slightly more at ease.";
death_message = "disperses into the air in a cloud of red mist, you feel slightly more at ease.";
desc = "You can't quite make out what you're seeing.";
faction = list("cult");
health = 500;
+38
View File
@@ -0,0 +1,38 @@
/datum/action/adjust_vision
name = "Adjust Vision"
desc = "See better in the dark. Or don't. Your advanced vision allows either."
icon_icon = 'icons/mob/actions/actions_animal.dmi'
button_icon_state = "adjust_vision"
background_icon_state = "bg_default"
/datum/action/adjust_vision/Grant(mob/living/grant_to)
. = ..()
grant_to.see_in_dark = NIGHTVISION_FOV_RANGE
grant_to.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
grant_to.update_sight()
/datum/action/adjust_vision/Remove(mob/living/remove_from)
. = ..()
remove_from.see_in_dark = initial(remove_from.see_in_dark)
remove_from.lighting_alpha = initial(remove_from.lighting_alpha)
remove_from.update_sight()
/datum/action/adjust_vision/Trigger(trigger_flags)
. = ..()
if(!.)
return
var/mob/living/living_owner = owner
living_owner.sight = initial(living_owner.sight)
switch(living_owner.lighting_alpha)
if (LIGHTING_PLANE_ALPHA_VISIBLE)
living_owner.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
if (LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE)
living_owner.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
if (LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE)
living_owner.lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE
else
living_owner.lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE
living_owner.sight &= ~SEE_BLACKNESS
living_owner.update_sight()
+1 -1
View File
@@ -473,7 +473,7 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
new_race = mrace
else
return
deathsound = new_race.deathsound
death_sound = new_race.death_sound
dna.species.on_species_loss(src, new_race, pref_load)
var/datum/species/old_species = dna.species
dna.species = new_race
+1 -1
View File
@@ -121,7 +121,7 @@
attack_verb_simple = "hit"
attack_sound = 'sound/weapons/genhit1.ogg'
del_on_death = TRUE
deathmessage = "explodes into a cloud of gas!"
death_message = "explodes into a cloud of gas!"
gold_core_spawnable = NO_SPAWN //gold slime cores should only spawn the independent subtype
var/death_cloud_size = 1 //size of cloud produced from a dying spore
var/mob/living/carbon/human/oldguy
@@ -15,7 +15,7 @@
melee_damage_lower = 12
melee_damage_upper = 16
sight = SEE_MOBS | SEE_OBJS | SEE_TURFS
deathmessage = "shatters and vanishes, releasing a gust of cold air."
death_message = "shatters and vanishes, releasing a gust of cold air."
loot = list(
/obj/item/shard,
/obj/effect/decal/cleanable/ash,
@@ -38,8 +38,8 @@
see_in_dark = NIGHTVISION_FOV_RANGE
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
del_on_death = TRUE
deathmessage = "screams in agony as it sublimates into a sulfurous smoke."
deathsound = 'sound/magic/demon_dies.ogg'
death_message = "screams in agony as it sublimates into a sulfurous smoke."
death_sound = 'sound/magic/demon_dies.ogg'
//////////////////The Man Behind The Slaughter
@@ -206,11 +206,11 @@
attack_sound = 'sound/items/bikehorn.ogg'
attack_vis_effect = null
deathsound = 'sound/misc/sadtrombone.ogg'
death_sound = 'sound/misc/sadtrombone.ogg'
icon_state = "bowmon"
icon_living = "bowmon"
deathmessage = "fades out, as all of its friends are released from its \
death_message = "fades out, as all of its friends are released from its \
prison of hugs."
loot = list(/mob/living/simple_animal/pet/cat/kitten{name = "Laughter"})
@@ -243,7 +243,7 @@
to_chat(occupant, span_deadsay("<b>Your eternal soul has been sacrificed to restore the soul of a toolbox. Them's the breaks!</b>"))
occupant.client?.give_award(/datum/award/achievement/misc/toolbox_soul, occupant)
occupant.deathmessage = "shrieks out in unholy pain as [occupant.p_their()] soul is absorbed into [target_toolbox]!"
occupant.death_message = "shrieks out in unholy pain as [occupant.p_their()] soul is absorbed into [target_toolbox]!"
release_shades(user, TRUE)
occupant.death()
+1 -1
View File
@@ -119,7 +119,7 @@
if(stored_gun)
for(var/obj/item/borg/upgrade/modkit/modkit as anything in stored_gun.modkits)
modkit.uninstall(stored_gun)
deathmessage = "blows apart!"
death_message = "blows apart!"
..()
/mob/living/simple_animal/hostile/mining_drone/attack_hand(mob/living/carbon/human/user, list/modifiers)
@@ -18,6 +18,7 @@
/obj/effect/gibspawner/generic = 1,
/obj/item/stack/sheet/animalhide/bileworm = 1,
)
death_message = "seizes up and falls limp, slowly receeding into its burrow with a dying gurgle..."
//it can't be dragged, just butcher it
move_resist = INFINITY
@@ -51,6 +52,8 @@
resurface.Grant(src)
var/datum/action/cooldown/mob_cooldown/devour/devour = new(src)
devour.Grant(src)
var/datum/action/adjust_vision/adjust_vision = new(src)
adjust_vision.Grant(src)
ai_controller.blackboard[BB_BILEWORM_SPEW_BILE] = spew_bile
ai_controller.blackboard[BB_BILEWORM_RESURFACE] = resurface
ai_controller.blackboard[BB_BILEWORM_DEVOUR] = devour
@@ -13,7 +13,10 @@
var/turf/unburrow_turf = get_unburrow_turf(burrower, target)
if(!unburrow_turf) // means all the turfs nearby are station turfs or something, not lavaland
to_chat(burrower, span_warning("Couldn't burrow anywhere near the target!"))
return //just put it on cooldown and let the other ability reactivate, you couldn't burrow and that's okay.
if(burrower.ai_controller?.ai_status == AI_STATUS_ON)
//this is a valid reason to give up on a target
burrower.ai_controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET] = null
return
playsound(burrower, 'sound/effects/break_stone.ogg', 50, TRUE)
new /obj/effect/temp_visual/mook_dust(get_turf(burrower))
burrower.status_flags |= GODMODE
@@ -13,7 +13,7 @@
var/leap_on_click = 0
var/pounce_cooldown = 0
var/pounce_cooldown_time = 30
deathsound = 'sound/voice/hiss6.ogg'
death_sound = 'sound/voice/hiss6.ogg'
bodyparts = list(
/obj/item/bodypart/chest/alien,
/obj/item/bodypart/head/alien,
@@ -135,8 +135,8 @@ GLOBAL_LIST_EMPTY(features_by_species)
var/fixed_mut_color = ""
///Special mutation that can be found in the genepool exclusively in this species. Dont leave empty or changing species will be a headache
var/inert_mutation = /datum/mutation/human/dwarfism
///Used to set the mob's deathsound upon species change
var/deathsound
///Used to set the mob's death_sound upon species change
var/death_sound
///Sounds to override barefeet walking
var/list/special_step_sounds
///Special sound for grabbing
@@ -36,7 +36,7 @@
disliked_food = GRAIN | DAIRY | CLOTH
liked_food = GROSS | MEAT | SEAFOOD | NUTS | BUGS
inert_mutation = /datum/mutation/human/firebreath
deathsound = 'sound/voice/lizard/deathsound.ogg'
death_sound = 'sound/voice/lizard/deathsound.ogg'
wings_icons = list("Dragon")
species_language_holder = /datum/language_holder/lizard
digitigrade_customization = DIGITIGRADE_OPTIONAL
+3
View File
@@ -98,4 +98,7 @@
if (client)
client.move_delay = initial(client.move_delay)
if(!gibbed && (death_sound || death_message))
INVOKE_ASYNC(src, /mob.proc/emote, "deathgasp")
return TRUE
+7 -10
View File
@@ -113,18 +113,15 @@
cooldown = (15 SECONDS)
stat_allowed = HARD_CRIT
/datum/emote/living/deathgasp/run_emote(mob/user, params, type_override, intentional)
var/mob/living/simple_animal/S = user
if(istype(S) && S.deathmessage)
message_simple = S.deathmessage
/datum/emote/living/deathgasp/run_emote(mob/living/user, params, type_override, intentional)
if(user.death_message)
message_simple = user.death_message
. = ..()
message_simple = initial(message_simple)
if(. && user.deathsound)
if(isliving(user))
var/mob/living/L = user
if(!L.can_speak_vocal() || L.oxyloss >= 50)
return //stop the sound if oxyloss too high/cant speak
playsound(user, user.deathsound, 200, TRUE, TRUE)
if(. && user.death_sound)
if(!user.can_speak_vocal() || user.oxyloss >= 50)
return //stop the sound if oxyloss too high/cant speak
playsound(user, user.death_sound, 200, TRUE, TRUE)
/datum/emote/living/drool
key = "drool"
@@ -62,6 +62,12 @@
var/last_special = 0
var/timeofdeath = 0
///A message sent when the mob dies, with the *deathgasp emote
var/death_message = ""
///A sound sent when the mob dies, with the *deathgasp emote
var/death_sound
/// Helper vars for quick access to firestacks, these should be updated every time firestacks are adjusted
var/on_fire = FALSE
var/fire_stacks = 0
+1 -1
View File
@@ -9,7 +9,7 @@
see_in_dark = NIGHTVISION_FOV_RANGE
bubble_icon = "machine"
mob_biotypes = MOB_ROBOTIC
deathsound = 'sound/voice/borg_deathsound.ogg'
death_sound = 'sound/voice/borg_deathsound.ogg'
speech_span = SPAN_ROBOT
flags_1 = PREVENT_CONTENTS_EXPLOSION_1
examine_cursor_icon = null
@@ -33,7 +33,7 @@
loot = list(/obj/item/ectoplasm)
del_on_death = TRUE
initial_language_holder = /datum/language_holder/construct
deathmessage = "collapses in a shattered heap."
death_message = "collapses in a shattered heap."
var/list/construct_spells = list()
var/playstyle_string = "<span class='big bold'>You are a generic construct!</span><b> Your job is to not exist, and you should probably adminhelp this.</b>"
var/master = null
@@ -286,8 +286,8 @@
response_harm_continuous = "takes a bite out of"
response_harm_simple = "take a bite out of"
attacked_sound = 'sound/items/eatfood.ogg'
deathmessage = "loses her false life and collapses!"
deathsound = SFX_BODYFALL
death_message = "loses her false life and collapses!"
death_sound = SFX_BODYFALL
held_state = "cak"
/mob/living/simple_animal/pet/cat/cak/add_cell_sample()
@@ -28,7 +28,7 @@
movement_type = GROUND
pressure_resistance = 100
del_on_death = TRUE
deathmessage = "implodes into itself."
death_message = "implodes into itself."
loot = list(/obj/effect/gibspawner/human)
faction = list(FACTION_HERETIC)
simple_mob_flags = SILENCE_RANGED_MESSAGE
@@ -32,8 +32,8 @@
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
unique_name = 1
gold_core_spawnable = NO_SPAWN
deathsound = 'sound/voice/hiss6.ogg'
deathmessage = "lets out a waning guttural screech, green blood bubbling from its maw..."
death_sound = 'sound/voice/hiss6.ogg'
death_message = "lets out a waning guttural screech, green blood bubbling from its maw..."
footstep_type = FOOTSTEP_MOB_CLAW
/mob/living/simple_animal/hostile/alien/drone
@@ -141,7 +141,7 @@
response_harm_continuous = "takes a bite out of"
response_harm_simple = "take a bite out of"
attacked_sound = 'sound/items/eatfood.ogg'
deathmessage = "loses its false life and collapses!"
death_message = "loses its false life and collapses!"
butcher_results = list(/obj/item/food/butter = 6, /obj/item/food/meat/slab = 3, /obj/item/organ/internal/brain = 1, /obj/item/organ/internal/heart = 1)
attack_sound = 'sound/weapons/slap.ogg'
attack_vis_effect = ATTACK_EFFECT_DISARM
@@ -165,7 +165,7 @@
/mob/living/simple_animal/hostile/retaliate/goose/proc/suffocate()
if(!choking)
return
deathmessage = "lets out one final oxygen-deprived honk before [p_they()] go[p_es()] limp and lifeless.."
death_message = "lets out one final oxygen-deprived honk before [p_they()] go[p_es()] limp and lifeless.."
death()
/mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit()
@@ -40,7 +40,7 @@
/mob/living/simple_animal/hostile/hivebot/Initialize(mapload)
. = ..()
deathmessage = "[src] blows apart!"
death_message = "[src] blows apart!"
/mob/living/simple_animal/hostile/hivebot/Aggro()
. = ..()
@@ -20,7 +20,7 @@
var/mob/living/parent_mob
var/multiply_chance = 0 //if we multiply on hit
del_on_death = 1
deathmessage = "vanishes into thin air! It was a fake!"
death_message = "vanishes into thin air! It was a fake!"
/mob/living/simple_animal/hostile/illusion/Life(delta_time = SSMOBS_DT, times_fired)
@@ -29,7 +29,7 @@
stat_attack = HARD_CRIT
attack_sound = 'sound/weapons/rapierhit.ogg'
attack_vis_effect = ATTACK_EFFECT_SLASH
deathsound = 'sound/voice/mook_death.ogg'
death_sound = 'sound/voice/mook_death.ogg'
aggro_vision_range = 15 //A little more aggressive once in combat to balance out their really low HP
var/attack_state = MOOK_ATTACK_NEUTRAL
var/struck_target_leap = FALSE
@@ -48,8 +48,8 @@ Difficulty: Medium
score_achievement_type = /datum/award/score/blood_miner_score
var/obj/item/melee/cleaving_saw/miner/miner_saw
var/guidance = FALSE
deathmessage = "falls to the ground, decaying into glowing particles."
deathsound = SFX_BODYFALL
death_message = "falls to the ground, decaying into glowing particles."
death_sound = SFX_BODYFALL
footstep_type = FOOTSTEP_MOB_HEAVY
move_force = MOVE_FORCE_NORMAL //Miner beeing able to just move structures like bolted doors and glass looks kinda strange
/// Dash ability
@@ -65,8 +65,8 @@ Difficulty: Hard
achievement_type = /datum/award/achievement/boss/bubblegum_kill
crusher_achievement_type = /datum/award/achievement/boss/bubblegum_crusher
score_achievement_type = /datum/award/score/bubblegum_score
deathmessage = "sinks into a pool of blood, fleeing the battle. You've won, for now... "
deathsound = 'sound/magic/enter_blood.ogg'
death_message = "sinks into a pool of blood, fleeing the battle. You've won, for now... "
death_sound = 'sound/magic/enter_blood.ogg'
small_sprite_type = /datum/action/small_sprite/megafauna/bubblegum
faction = list("mining", "boss", "hell")
/// Check to see if we should spawn blood
@@ -326,8 +326,8 @@ Difficulty: Hard
achievement_type = null
crusher_achievement_type = null
score_achievement_type = null
deathmessage = "Explodes into a pool of blood!"
deathsound = 'sound/effects/splat.ogg'
death_message = "Explodes into a pool of blood!"
death_sound = 'sound/effects/splat.ogg'
true_spawn = FALSE
var/move_through_mob
@@ -35,8 +35,8 @@ I'd rather there be something than the clockwork ruin be entirely empty though s
crusher_loot = list(/obj/item/clockwork_alloy)
wander = FALSE
del_on_death = TRUE
deathmessage = "falls, quickly decaying into centuries old dust."
deathsound = SFX_BODYFALL
death_message = "falls, quickly decaying into centuries old dust."
death_sound = SFX_BODYFALL
footstep_type = FOOTSTEP_MOB_HEAVY
attack_action_types = list()
@@ -53,8 +53,8 @@
score_achievement_type = /datum/award/score/colussus_score
crusher_loot = list(/obj/structure/closet/crate/necropolis/colossus/crusher)
loot = list(/obj/structure/closet/crate/necropolis/colossus)
deathmessage = "disintegrates, leaving a glowing core in its wake."
deathsound = 'sound/magic/demon_dies.ogg'
death_message = "disintegrates, leaving a glowing core in its wake."
death_sound = 'sound/magic/demon_dies.ogg'
small_sprite_type = /datum/action/small_sprite/megafauna/colossus
/// Spiral shots ability
var/datum/action/cooldown/mob_cooldown/projectile_attack/spiral_shots/colossus/spiral_shots
@@ -40,8 +40,8 @@ Difficulty: Extremely Hard
achievement_type = /datum/award/achievement/boss/demonic_miner_kill
crusher_achievement_type = /datum/award/achievement/boss/demonic_miner_crusher
score_achievement_type = /datum/award/score/demonic_miner_score
deathmessage = "falls to the ground, decaying into plasma particles."
deathsound = SFX_BODYFALL
death_message = "falls to the ground, decaying into plasma particles."
death_sound = SFX_BODYFALL
footstep_type = FOOTSTEP_MOB_HEAVY
/// If the demonic frost miner is in its enraged state
var/enraged = FALSE
@@ -70,8 +70,8 @@
achievement_type = /datum/award/achievement/boss/drake_kill
crusher_achievement_type = /datum/award/achievement/boss/drake_crusher
score_achievement_type = /datum/award/score/drake_score
deathmessage = "collapses into a pile of bones, its flesh sloughing away."
deathsound = 'sound/magic/demon_dies.ogg'
death_message = "collapses into a pile of bones, its flesh sloughing away."
death_sound = 'sound/magic/demon_dies.ogg'
footstep_type = FOOTSTEP_MOB_HEAVY
small_sprite_type = /datum/action/small_sprite/megafauna/drake
/// Fire cone ability
@@ -66,7 +66,7 @@ Difficulty: Hard
crusher_achievement_type = /datum/award/achievement/boss/hierophant_crusher
score_achievement_type = /datum/award/score/hierophant_score
del_on_death = TRUE
deathsound = 'sound/magic/repulse.ogg'
death_sound = 'sound/magic/repulse.ogg'
attack_action_types = list(/datum/action/innate/megafauna_attack/blink,
/datum/action/innate/megafauna_attack/chaser_swarm,
/datum/action/innate/megafauna_attack/cross_blasts,
@@ -50,8 +50,8 @@ Difficulty: Hard
achievement_type = /datum/award/achievement/boss/wendigo_kill
crusher_achievement_type = /datum/award/achievement/boss/wendigo_crusher
score_achievement_type = /datum/award/score/wendigo_score
deathmessage = "falls, shaking the ground around it"
deathsound = 'sound/effects/gravhit.ogg'
death_message = "falls, shaking the ground around it"
death_sound = 'sound/effects/gravhit.ogg'
footstep_type = FOOTSTEP_MOB_HEAVY
attack_action_types = list(/datum/action/innate/megafauna_attack/heavy_stomp,
/datum/action/innate/megafauna_attack/teleport,
@@ -33,8 +33,8 @@
loot = list()
robust_searching = TRUE
footstep_type = FOOTSTEP_MOB_CLAW
deathmessage = "wails as infernal energy escapes from its wounds, leaving it an empty husk."
deathsound = 'sound/magic/demon_dies.ogg'
death_message = "wails as infernal energy escapes from its wounds, leaving it an empty husk."
death_sound = 'sound/magic/demon_dies.ogg'
light_color = LIGHT_COLOR_BLOOD_MAGIC
light_power = 5
light_range = 1.4
@@ -39,7 +39,7 @@
move_to_delay = 5
mob_biotypes = MOB_ORGANIC|MOB_BEAST
mouse_opacity = MOUSE_OPACITY_ICON
deathmessage = "explodes into gore!"
death_message = "explodes into gore!"
loot_drop = /obj/item/crusher_trophy/broodmother_tongue
attack_action_types = list(/datum/action/innate/elite_attack/tentacle_patch,
@@ -181,7 +181,7 @@
mouse_opacity = MOUSE_OPACITY_ICON
butcher_results = list()
guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide = 1)
deathmessage = "falls to the ground."
death_message = "falls to the ground."
status_flags = CANPUSH
var/mob/living/simple_animal/hostile/asteroid/elite/broodmother/mother = null
@@ -36,8 +36,8 @@
speed = 2
move_to_delay = 10
mouse_opacity = MOUSE_OPACITY_ICON
deathsound = 'sound/magic/demon_dies.ogg'
deathmessage = "begins to shudder as it becomes transparent..."
death_sound = 'sound/magic/demon_dies.ogg'
death_message = "begins to shudder as it becomes transparent..."
loot_drop = /obj/item/clothing/neck/cloak/herald_cloak
can_talk = 1
@@ -199,8 +199,8 @@
maxHealth = 60
icon_state = "herald_mirror"
icon_aggro = "herald_mirror"
deathmessage = "shatters violently!"
deathsound = 'sound/effects/glassbr1.ogg'
death_message = "shatters violently!"
death_sound = 'sound/effects/glassbr1.ogg'
del_on_death = TRUE
is_mirror = TRUE
move_resist = MOVE_FORCE_OVERPOWERING // no dragging your mirror around
@@ -37,8 +37,8 @@
speed = 1
move_to_delay = 3
mouse_opacity = MOUSE_OPACITY_ICON
deathsound = 'sound/magic/curse.ogg'
deathmessage = "'s arms reach out before it falls apart onto the floor, lifeless."
death_sound = 'sound/magic/curse.ogg'
death_message = "'s arms reach out before it falls apart onto the floor, lifeless."
loot_drop = /obj/item/crusher_trophy/legionnaire_spine
attack_action_types = list(/datum/action/innate/elite_attack/legionnaire_charge,
@@ -255,7 +255,7 @@
speed = 0
move_to_delay = 2
del_on_death = 1
deathmessage = "crumbles away!"
death_message = "crumbles away!"
faction = list()
ranged = FALSE
var/mob/living/simple_animal/hostile/asteroid/elite/legionnaire/body = null
@@ -36,8 +36,8 @@
speed = 3
move_to_delay = 10
mouse_opacity = MOUSE_OPACITY_ICON
deathsound = 'sound/magic/repulse.ogg'
deathmessage = "'s lights flicker, before its top part falls down."
death_sound = 'sound/magic/repulse.ogg'
death_message = "'s lights flicker, before its top part falls down."
loot_drop = /obj/item/clothing/accessory/pandora_hope
attack_action_types = list(/datum/action/innate/elite_attack/singular_shot,
@@ -25,7 +25,7 @@
combat_mode = FALSE
speak_emote = list("screeches")
throw_message = "sinks in slowly, before being pushed out of "
deathmessage = "stops moving as green liquid oozes from the carcass!"
death_message = "stops moving as green liquid oozes from the carcass!"
status_flags = CANPUSH
gold_core_spawnable = HOSTILE_SPAWN
search_objects = 1
@@ -37,7 +37,7 @@
search_objects = 3 //Ancient simplemob AI shitcode. This makes them ignore all other mobs.
del_on_death = TRUE
loot = list(/obj/effect/decal/cleanable/blood/gibs)
deathmessage = "is pulped into bugmash."
death_message = "is pulped into bugmash."
animal_species = /mob/living/simple_animal/hostile/asteroid/gutlunch
childtype = list(/mob/living/simple_animal/hostile/asteroid/gutlunch/grublunch = 100)
@@ -35,8 +35,8 @@
del_on_death = TRUE
loot = list()
crusher_loot = /obj/item/crusher_trophy/watcher_wing/ice_wing
deathmessage = "fades as the energies that tied it to this world dissipate."
deathsound = 'sound/magic/demon_dies.ogg'
death_message = "fades as the energies that tied it to this world dissipate."
death_sound = 'sound/magic/demon_dies.ogg'
stat_attack = HARD_CRIT
robust_searching = TRUE
footstep_type = FOOTSTEP_MOB_CLAW
@@ -33,8 +33,8 @@
butcher_results = list(/obj/item/stack/ore/diamond = 3, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 10, /obj/item/stack/sheet/animalhide/ashdrake = 1)
loot = list()
crusher_loot = /obj/item/crusher_trophy/tail_spike
deathmessage = "collapses on its side."
deathsound = 'sound/magic/demon_dies.ogg'
death_message = "collapses on its side."
death_sound = 'sound/magic/demon_dies.ogg'
stat_attack = HARD_CRIT
robust_searching = TRUE
footstep_type = FOOTSTEP_MOB_CLAW
@@ -33,7 +33,7 @@
robust_searching = 1
unique_name = 1
speak_emote = list("squeaks")
deathmessage = "fainted."
death_message = "fainted."
var/cap_color = "#ffffff"
var/powerlevel = 0 //Tracks our general strength level gained from eating other shrooms
var/bruised = 0 //If someone tries to cheat the system by attacking a shroom to lower its health, punish them so that it won't award levels to shrooms that eat it
@@ -99,8 +99,8 @@
attack_verb_simple = "lacerate"
speed = -0.5
var/static/list/migo_sounds
deathmessage = "wails as its form turns into a pulpy mush."
deathsound = 'sound/voice/hiss6.ogg'
death_message = "wails as its form turns into a pulpy mush."
death_sound = 'sound/voice/hiss6.ogg'
phaser = FALSE
/mob/living/simple_animal/hostile/netherworld/migo/Initialize(mapload)
@@ -135,7 +135,7 @@
melee_damage_upper = 10
attack_verb_continuous = "punches"
attack_verb_simple = "punch"
deathmessage = "falls apart into a fine dust."
death_message = "falls apart into a fine dust."
phaser = FALSE
/obj/structure/spawner/nether
@@ -102,7 +102,7 @@
melee_damage_upper = 20
armour_penetration = 15
obj_damage = 20
deathmessage = "collapses into a pile of goo!"
death_message = "collapses into a pile of goo!"
///The ability to give yourself a metabolic speed boost which raises heat
var/datum/action/cooldown/metabolicboost/boost
///The ability to consume mobs
@@ -280,7 +280,7 @@
melee_damage_lower = 12
melee_damage_upper = 12
obj_damage = 15
deathmessage = "deflates and spills its vital juices!"
death_message = "deflates and spills its vital juices!"
edible_food_types = MEAT | VEGETABLES
/mob/living/simple_animal/hostile/ooze/grapes/Initialize(mapload)
@@ -390,7 +390,7 @@
attack_verb_continuous = "slams"
attack_verb_simple = "slam"
loot = list(/obj/effect/gibspawner/xeno/bodypartless, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic/animal, /obj/effect/gibspawner/human/bodypartless)
deathsound = 'sound/misc/sadtrombone.ogg'
death_sound = 'sound/misc/sadtrombone.ogg'
///This is the list of items we are ready to regurgitate,
var/list/prank_pouch = list()
@@ -23,7 +23,7 @@
attack_verb_simple = "grip"
attack_sound = 'sound/hallucinations/growl1.ogg'
speak_emote = list("weeps")
deathmessage = "wails, disintegrating into a pile of ectoplasm!"
death_message = "wails, disintegrating into a pile of ectoplasm!"
loot = list(/obj/item/ectoplasm)
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
@@ -31,7 +31,7 @@
faction = list("skeleton")
see_in_dark = NIGHTVISION_FOV_RANGE
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
deathmessage = "collapses into a pile of bones!"
death_message = "collapses into a pile of bones!"
del_on_death = 1
loot = list(/obj/effect/decal/remains/human)
@@ -48,7 +48,7 @@
weather_immunities = list(TRAIT_SNOWSTORM_IMMUNE)
melee_damage_lower = 17
melee_damage_upper = 20
deathmessage = "collapses into a pile of bones, its gear falling to the floor!"
death_message = "collapses into a pile of bones, its gear falling to the floor!"
loot = list(/obj/effect/decal/remains/human,
/obj/item/spear,
/obj/item/clothing/shoes/winterboots,
@@ -71,7 +71,7 @@
obj_damage = 50
melee_damage_lower = 25
melee_damage_upper = 30
deathmessage = "collapses into a pile of bones, its gear clanging as it hits the ground!"
death_message = "collapses into a pile of bones, its gear clanging as it hits the ground!"
loot = list(/obj/effect/decal/remains/human,
/obj/item/clothing/suit/chaplainsuit/armor/templar,
/obj/item/clothing/head/helmet/chaplain,
@@ -99,7 +99,7 @@
melee_damage_lower = 15
melee_damage_upper = 20
light_color = LIGHT_COLOR_PURPLE
deathmessage = "collapses into a pile of bones, their suit dissolving among the plasma!"
death_message = "collapses into a pile of bones, their suit dissolving among the plasma!"
loot = list(/obj/effect/decal/remains/plasma)
/mob/living/simple_animal/hostile/skeleton/plasmaminer/jackhammer
@@ -27,7 +27,7 @@
faction = list("hostile")
see_in_dark = NIGHTVISION_FOV_RANGE
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
deathmessage = "falls to the ground, its shard dulling to a miserable grey!"
death_message = "falls to the ground, its shard dulling to a miserable grey!"
footstep_type = FOOTSTEP_MOB_CLAW
var/overcharged = FALSE // if true, spider will not die if it dusts a limb
@@ -40,7 +40,7 @@
attack_verb_simple = "chomp"
attack_sound = 'sound/magic/demon_attack1.ogg'
attack_vis_effect = ATTACK_EFFECT_BITE
deathsound = 'sound/creatures/space_dragon_roar.ogg'
death_sound = 'sound/creatures/space_dragon_roar.ogg'
icon = 'icons/mob/spacedragon.dmi'
icon_state = "spacedragon"
icon_living = "spacedragon"
@@ -61,7 +61,7 @@
ranged = TRUE
mouse_opacity = MOUSE_OPACITY_ICON
butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30)
deathmessage = "screeches as its wings turn to dust and it collapses on the floor, its life extinguished."
death_message = "screeches as its wings turn to dust and it collapses on the floor, its life extinguished."
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
maxbodytemp = 1500
@@ -314,7 +314,7 @@
bubble_icon = "syndibot"
gold_core_spawnable = HOSTILE_SPAWN
del_on_death = 1
deathmessage = "is smashed into pieces!"
death_message = "is smashed into pieces!"
/mob/living/simple_animal/hostile/viscerator/Initialize(mapload)
. = ..()
@@ -40,7 +40,7 @@
minbodytemp = 0
maxbodytemp = 1200
deathmessage = "is hacked into pieces!"
death_message = "is hacked into pieces!"
loot = list(/obj/item/stack/sheet/mineral/wood)
gold_core_spawnable = HOSTILE_SPAWN
del_on_death = 1
@@ -136,9 +136,9 @@
combat_mode = TRUE
ranged_cooldown_time = 4 SECONDS
del_on_death = TRUE
deathmessage = "collapses into bits of plant matter."
death_message = "collapses into bits of plant matter."
attacked_sound = 'sound/creatures/venus_trap_hurt.ogg'
deathsound = 'sound/creatures/venus_trap_death.ogg'
death_sound = 'sound/creatures/venus_trap_death.ogg'
attack_sound = 'sound/creatures/venus_trap_hit.ogg'
unsuitable_heat_damage = 5 // heat damage is different from cold damage since coldmos is significantly more common than plasmafires
unsuitable_cold_damage = 2 // they now do take cold damage, but this should be sufficiently small that it does not cause major issues
@@ -42,8 +42,8 @@
ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
/mob/living/simple_animal/shade/death()
if(deathmessage == initial(deathmessage))
deathmessage = "lets out a contented sigh as [p_their()] form unwinds."
if(death_message == initial(death_message))
death_message = "lets out a contented sigh as [p_their()] form unwinds."
..()
/mob/living/simple_animal/shade/canSuicide()
@@ -129,7 +129,6 @@
var/list/loot = list()
///Causes mob to be deleted on death, useful for mobs that spawn lootable corpses.
var/del_on_death = 0
var/deathmessage = ""
var/allow_movement_on_non_turfs = FALSE
@@ -430,12 +429,6 @@
verb_say = pick(speak_emote)
return ..()
/mob/living/simple_animal/emote(act, m_type=1, message = null, intentional = FALSE, force_silence = FALSE)
if(stat)
return FALSE
return ..()
/mob/living/simple_animal/proc/set_varspeed(var_value)
speed = var_value
update_simplemob_varspeed()
@@ -462,9 +455,6 @@
drop_loot()
if(dextrous)
drop_all_held_items()
if(!gibbed)
if(deathsound || deathmessage || !del_on_death)
emote("deathgasp")
if(del_on_death)
..()
//Prevent infinite loops if the mob Destroy() is overridden in such
-7
View File
@@ -176,13 +176,6 @@
///Calls relay_move() to whatever this is set to when the mob tries to move
var/atom/movable/remote_control
/**
* The sound made on death
*
* leave null for no sound. used for *deathgasp
*/
var/deathsound
///the current turf being examined in the stat panel
var/turf/listed_turf = null
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

+1
View File
@@ -648,6 +648,7 @@
#include "code\datums\actions\items\summon_stickmen.dm"
#include "code\datums\actions\items\toggles.dm"
#include "code\datums\actions\items\vortex_recall.dm"
#include "code\datums\actions\mobs\adjust_vision.dm"
#include "code\datums\actions\mobs\blood_warp.dm"
#include "code\datums\actions\mobs\charge.dm"
#include "code\datums\actions\mobs\dash.dm"