mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 09:42:29 +00:00
Fixes a couple more mob-related hard dels + fixes a balloon alert race condition from brimdemon fang (#92498)
## About The Pull Request Tin, some more hard dels that were found. Additionally there was a balloon alert meant to display phrases like "Kapow!" "Bam!" etc but it is runtiming before it can do so because the mob gets deleted before the balloon alert gets displayed. (solution for these sorts of issues is to display the balloon alert on the `loc` instead. ## Why It's Good For The Game Less chug, and a bugfix. ## Changelog Probably nothing worth mentioning
This commit is contained in:
@@ -18,10 +18,9 @@
|
||||
/datum/action/cooldown/mob_cooldown/transform_weapon/proc/do_transform(atom/target)
|
||||
if(!istype(owner, /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner))
|
||||
return
|
||||
var/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/BDM = owner
|
||||
var/obj/item/melee/cleaving_saw/miner/miner_saw = BDM.miner_saw
|
||||
miner_saw.attack_self(owner)
|
||||
var/saw_open = HAS_TRAIT(miner_saw, TRAIT_TRANSFORM_ACTIVE)
|
||||
BDM.rapid_melee = saw_open ? 3 : 5
|
||||
BDM.icon_state = "miner[saw_open ? "_transformed":""]"
|
||||
BDM.icon_living = "miner[saw_open ? "_transformed":""]"
|
||||
var/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/blood_drunk_miner = owner
|
||||
blood_drunk_miner.miner_saw.attack_self(owner)
|
||||
var/saw_open = HAS_TRAIT(blood_drunk_miner.miner_saw, TRAIT_TRANSFORM_ACTIVE)
|
||||
blood_drunk_miner.rapid_melee = saw_open ? 3 : 5
|
||||
blood_drunk_miner.icon_state = "miner[saw_open ? "_transformed":""]"
|
||||
blood_drunk_miner.icon_living = "miner[saw_open ? "_transformed":""]"
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
|
||||
/obj/item/crusher_trophy/brimdemon_fang/on_mark_detonation(mob/living/target, mob/living/user)
|
||||
. = ..()
|
||||
target.balloon_alert_to_viewers("[pick(comic_phrases)]!")
|
||||
target.loc.balloon_alert_to_viewers("[pick(comic_phrases)]!")
|
||||
playsound(target, 'sound/mobs/non-humanoids/brimdemon/brimdemon_crush.ogg', 100)
|
||||
|
||||
// Bileworm
|
||||
|
||||
@@ -43,6 +43,10 @@
|
||||
beam.Grant(src)
|
||||
ai_controller.set_blackboard_key(BB_TARGETED_ACTION, beam)
|
||||
|
||||
/mob/living/basic/mining/brimdemon/Destroy(force)
|
||||
QDEL_NULL(beam)
|
||||
return ..()
|
||||
|
||||
/mob/living/basic/mining/brimdemon/RangedAttack(atom/target, modifiers)
|
||||
beam.Trigger(target = target)
|
||||
|
||||
|
||||
@@ -46,7 +46,6 @@ Difficulty: Medium
|
||||
achievement_type = /datum/award/achievement/boss/blood_miner_kill
|
||||
crusher_achievement_type = /datum/award/achievement/boss/blood_miner_crusher
|
||||
score_achievement_type = /datum/award/score/blood_miner_score
|
||||
var/obj/item/melee/cleaving_saw/miner/miner_saw
|
||||
death_message = "falls to the ground, decaying into glowing particles."
|
||||
death_sound = SFX_BODYFALL
|
||||
footstep_type = FOOTSTEP_MOB_HEAVY
|
||||
@@ -61,10 +60,13 @@ Difficulty: Medium
|
||||
var/datum/action/cooldown/mob_cooldown/dash_attack/dash_attack
|
||||
/// Transform weapon ability
|
||||
var/datum/action/cooldown/mob_cooldown/transform_weapon/transform_weapon
|
||||
/// Their little saw
|
||||
var/obj/item/melee/cleaving_saw/miner/miner_saw
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Initialize(mapload)
|
||||
. = ..()
|
||||
miner_saw = new(src)
|
||||
RegisterSignal(miner_saw, COMSIG_PREQDELETED, PROC_REF(on_saw_deleted))
|
||||
ADD_TRAIT(src, TRAIT_NO_FLOATING_ANIM, INNATE_TRAIT)
|
||||
|
||||
dash = new /datum/action/cooldown/mob_cooldown/dash
|
||||
@@ -78,11 +80,20 @@ Difficulty: Medium
|
||||
|
||||
AddComponent(/datum/component/boss_music, 'sound/music/boss/bdm_boss.ogg', 167 SECONDS)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Destroy()
|
||||
/// Block deletion of their saw under normal circumstances. It is fused to their hands as far as we're concerned.
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/on_saw_deleted(datum/source, force)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(!force)
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Destroy(force)
|
||||
dash = null
|
||||
kinetic_accelerator = null
|
||||
dash_attack = null
|
||||
transform_weapon = null
|
||||
UnregisterSignal(miner_saw, COMSIG_PREQDELETED) // unblock deletion, we are dead.
|
||||
QDEL_NULL(miner_saw)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/OpenFire()
|
||||
|
||||
Reference in New Issue
Block a user