diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 6c1a2cfec9..041b367ebf 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -87,6 +87,12 @@ message_simple = S.deathmessage . = ..() 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(. && isalienadult(user)) playsound(user.loc, 'sound/voice/hiss6.ogg', 80, 1, 1) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 7c135cc970..36abd92b40 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -24,7 +24,6 @@ var/list/attack_action_types = list() var/can_talk = FALSE var/obj/loot_drop = null - //Gives player-controlled variants the ability to swap attacks /mob/living/simple_animal/hostile/asteroid/elite/Initialize(mapload) @@ -138,6 +137,13 @@ While using this makes the system rely on OnFire, it still gives options for tim light_range = 3 anchored = TRUE density = FALSE + var/obj/item/gps/internal = null + +/obj/item/gps/internal/elite + icon_state = null + gpstag = "Menacing Signal" + desc = "You're not quite sure how a signal can be bloody." + invisibility = 100 /obj/structure/elite_tumor/attack_hand(mob/user) . = ..() @@ -196,7 +202,7 @@ obj/structure/elite_tumor/proc/return_elite() /obj/structure/elite_tumor/Initialize(mapload) . = ..() - AddComponent(/datum/component/gps, "Menacing Signal") + internal = new/obj/item/gps/internal/elite(src) START_PROCESSING(SSobj, src) /obj/structure/elite_tumor/Destroy() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index 1bcd3173ea..c18a342206 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -30,13 +30,14 @@ melee_damage_lower = 30 melee_damage_upper = 30 armour_penetration = 30 - attack_verb_continuous = "beats down on" - attack_verb_simple = "beat down on" + attacktext = "beats down on" + /*attack_verb_continuous = "beats down on" + attack_verb_simple = "beat down on"*/ attack_sound = 'sound/weapons/punch1.ogg' throw_message = "does nothing to the rocky hide of the" speed = 2 move_to_delay = 5 - mob_biotypes = MOB_ORGANIC|MOB_BEAST + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) mouse_opacity = MOUSE_OPACITY_ICON deathmessage = "explodes into gore!" loot_drop = /obj/item/crusher_trophy/broodmother_tongue @@ -170,13 +171,14 @@ health = 30 melee_damage_lower = 5 melee_damage_upper = 5 - attack_verb_continuous = "bashes against" - attack_verb_simple = "bash against" + attacktext = "bashes against" + /*attack_verb_continuous = "bashes against" + attack_verb_simple = "bash against"*/ attack_sound = 'sound/weapons/punch1.ogg' throw_message = "does nothing to the rocky hide of the" speed = 2 move_to_delay = 5 - mob_biotypes = MOB_ORGANIC|MOB_BEAST + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) mouse_opacity = MOUSE_OPACITY_ICON butcher_results = list() guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide = 1) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm index 3f184e2f52..f1e7494beb 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm @@ -28,8 +28,9 @@ health = 800 melee_damage_lower = 20 melee_damage_upper = 20 - attack_verb_continuous = "preaches to" - attack_verb_simple = "preach to" + attacktext = "preaches to" + /*attack_verb_continuous = "preaches to" + attack_verb_simple = "preach to"*/ attack_sound = 'sound/magic/clockwork/ratvar_attack.ogg' throw_message = "doesn't affect the purity of" speed = 4 @@ -124,11 +125,11 @@ /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/shoot_projectile(turf/marker, set_angle, var/is_teleshot) var/turf/startloc = get_turf(src) - var/obj/projectile/herald/H = null + var/obj/item/projectile/herald/H = null if(!is_teleshot) - H = new /obj/projectile/herald(startloc) + H = new /obj/item/projectile/herald(startloc) else - H = new /obj/projectile/herald/teleshot(startloc) + H = new /obj/item/projectile/herald/teleshot(startloc) H.preparePixelProjectile(marker, startloc) H.firer = src if(target) @@ -210,7 +211,7 @@ my_master.my_mirror = null . = ..() -/obj/projectile/herald +/obj/item/projectile/herald name ="death bolt" icon_state= "chronobolt" damage = 15 @@ -220,12 +221,12 @@ damage_type = BRUTE pass_flags = PASSTABLE -/obj/projectile/herald/teleshot +/obj/item/projectile/herald/teleshot name ="golden bolt" damage = 0 color = rgb(255,255,102) -/obj/projectile/herald/on_hit(atom/target, blocked = FALSE) +/obj/item/projectile/herald/on_hit(atom/target, blocked = FALSE) . = ..() if(ismineralturf(target)) var/turf/closed/mineral/M = target @@ -237,7 +238,7 @@ if(F != null && istype(F, /mob/living/simple_animal/hostile/asteroid/elite) && F.faction_check_mob(L)) L.heal_overall_damage(damage) -/obj/projectile/herald/teleshot/on_hit(atom/target, blocked = FALSE) +/obj/item/projectile/herald/teleshot/on_hit(atom/target, blocked = FALSE) . = ..() firer.forceMove(get_turf(src)) @@ -258,8 +259,8 @@ /obj/item/clothing/neck/cloak/herald_cloak/proc/shoot_projectile(turf/marker, set_angle, mob/living/carbon/owner) var/turf/startloc = get_turf(owner) - var/obj/projectile/herald/H = null - H = new /obj/projectile/herald(startloc) + var/obj/item/projectile/herald/H = null + H = new /obj/item/projectile/herald(startloc) H.preparePixelProjectile(marker, startloc) H.firer = owner H.fire(set_angle) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index 5e0c00d998..1bc9ea1e4e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -28,8 +28,9 @@ health = 800 melee_damage_lower = 30 melee_damage_upper = 30 - attack_verb_continuous = "slashes its arms at" - attack_verb_simple = "slash your arms at" + attacktext = "slashes its arms at" + /*attack_verb_continuous = "slashes its arms at" + attack_verb_simple = "slash your arms at"*/ attack_sound = 'sound/weapons/bladeslice.ogg' throw_message = "doesn't affect the sturdiness of" speed = 1 @@ -130,7 +131,8 @@ visible_message("[src] attacks [L] with much force!") to_chat(L, "[src] grabs you and throws you with much force!") L.safe_throw_at(throwtarget, 10, 1, src) - L.Paralyze(20) + //L.Paralyze(20) + L.Stun(20) //substituting this for the Paralyze from the line above, because we don't have tg paralysis stuff L.adjustBruteLoss(50) addtimer(CALLBACK(src, .proc/legionnaire_charge_2, move_dir, (times_ran + 1)), 2) @@ -224,8 +226,9 @@ health = 80 melee_damage_lower = 10 melee_damage_upper = 10 - attack_verb_continuous = "bites at" - attack_verb_simple = "bite at" + attacktext = "bites at" + /*attack_verb_continuous = "bites at" + attack_verb_simple = "bite at"*/ attack_sound = 'sound/effects/curse1.ogg' throw_message = "simply misses" speed = 0 @@ -248,7 +251,7 @@ icon = 'icons/obj/lavaland/legionnaire_bonfire.dmi' icon_state = "bonfire" max_integrity = 100 - move_resist = MOVE_FORCE_EXTREMELY_STRONG + //move_resist = MOVE_FORCE_EXTREMELY_STRONG anchored = TRUE density = FALSE light_range = 4 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index 7422a441aa..540470d505 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -28,8 +28,9 @@ health = 800 melee_damage_lower = 15 melee_damage_upper = 15 - attack_verb_continuous = "smashes into the side of" - attack_verb_simple = "smash into the side of" + attacktext = "smashes into the side of" + /*attack_verb_continuous = "smashes into the side of" + attack_verb_simple = "smash into the side of"*/ attack_sound = 'sound/weapons/sonic_jackhammer.ogg' throw_message = "merely dinks off of the" speed = 4 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 0cb886f11b..a9f4c94397 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -99,6 +99,12 @@ var/obj/control_object //Used by admins to possess objects. All mobs should have this var var/atom/movable/remote_control //Calls relaymove() to whatever it is + /** + * The sound made on death + * + * leave null for no sound. used for *deathgasp + */ + var/deathsound = null var/turf/listed_turf = null //the current turf being examined in the stat panel