Blood drunk miner bitrunner domain drops the cache correctly (#95005)

## About The Pull Request

Added support for turning basic mob bosses into virtual megafauna. Moved
blood drunk miner's loot dropping behaviour up to /basic/boss to support
this better in future.

Fixes #94878 

## Why It's Good For The Game

It's not very useful if admins have to spawn the cache manually or lose
the time and points spent on the domain.

## Changelog
🆑
fix: The Sanguine Excavation bitrunning domain will drop the cache on
killing the boss again.
/🆑
This commit is contained in:
Thunder12345
2026-01-27 11:54:13 -07:00
committed by GitHub
parent 8f2ab7ad7f
commit 232b5013a2
4 changed files with 33 additions and 5 deletions
@@ -43,9 +43,7 @@ Difficulty: Medium
victor_memory_type = /datum/memory/megafauna_slayer
crusher_loot = list(/obj/item/crusher_trophy/miner_eye, /obj/item/knife/hunting/wildhunter)
/// Loot dropped on death in normal circumstances
var/list/regular_loot = list(/obj/item/melee/cleaving_saw, /obj/item/gun/energy/recharge/kinetic_accelerator)
regular_loot = list(/obj/item/melee/cleaving_saw, /obj/item/gun/energy/recharge/kinetic_accelerator)
/// Their little saw
var/obj/item/melee/cleaving_saw/miner/miner_saw
@@ -71,7 +69,6 @@ Difficulty: Medium
ai_controller.set_blackboard_key(BB_BDM_RANGED_ATTACK_COOLDOWN, ranged_attack_cooldown_duration)
RegisterSignals(ai_controller, list(AI_CONTROLLER_BEHAVIOR_QUEUED(/datum/ai_behavior/basic_melee_attack), AI_CONTROLLER_BEHAVIOR_QUEUED(/datum/ai_behavior/targeted_mob_ability)), PROC_REF(handle_saw_transformation))
AddElement(/datum/element/death_drops, string_list(regular_loot))
RegisterSignal(src, COMSIG_LIVING_DROP_LOOT, PROC_REF(death_effect))
AddComponent(/datum/component/boss_music, 'sound/music/boss/bdm_boss.ogg', COMSIG_AI_BLACKBOARD_KEY_SET(BB_BASIC_MOB_CURRENT_TARGET))
@@ -23,6 +23,8 @@
/// What crusher trophy/trophies this mob drops, if any
/// Should be wrapped in a list for sanity when we pass it to the element.
var/list/crusher_loot = null
/// Loot dropped on death in normal circumstances
var/list/regular_loot = list()
/// What achievements do we give our defeater?
var/list/achievements = null
@@ -40,6 +42,7 @@
add_traits(list(TRAIT_NO_TELEPORT, TRAIT_MARTIAL_ARTS_IMMUNE, TRAIT_LAVA_IMMUNE, TRAIT_ASHSTORM_IMMUNE, TRAIT_NO_FLOATING_ANIM), MEGAFAUNA_TRAIT)
AddComponent(/datum/component/seethrough_mob)
AddElement(/datum/element/simple_flying)
AddElement(/datum/element/death_drops, string_list(regular_loot))
handle_crusher_loot()
handle_achievements()