From f861532d240d3c47102a3b37b5daff589961052d Mon Sep 17 00:00:00 2001 From: Jacquerel Date: Wed, 27 Sep 2023 23:41:07 +0100 Subject: [PATCH] Basic Legion & Hivelord (#78624) --- .../SpaceRuins/atmosasteroidruin.dmm | 2 +- _maps/RandomRuins/SpaceRuins/prey_pod.dmm | 6 +- .../RandomRuins/SpaceRuins/prison_shuttle.dmm | 4 +- code/__DEFINES/ai/ai_blackboard.dm | 4 + code/__DEFINES/ai/monsters.dm | 7 + code/__DEFINES/mood.dm | 1 + code/__DEFINES/status_effects.dm | 1 + .../run_away_from_target.dm | 12 +- .../basic_ai_behaviors/targetting.dm | 12 +- .../basic_mobs/basic_subtrees/flee_target.dm | 7 +- .../basic_subtrees/maintain_distance.dm | 2 +- .../basic_subtrees/speech_subtree.dm | 35 +- .../basic_subtrees/targeted_mob_ability.dm | 3 + .../ai/basic_mobs/generic_controllers.dm | 26 ++ code/datums/ai/generic/generic_behaviors.dm | 10 + code/datums/components/appearance_on_aggro.dm | 54 +-- code/datums/mapgen/CaveGenerator.dm | 2 +- code/datums/mapgen/Cavegens/IcemoonCaves.dm | 4 +- .../mood_events/generic_negative_events.dm | 3 + code/datums/mutations/antenna.dm | 25 +- code/game/machinery/computer/crew.dm | 4 +- .../objects/effects/decals/cleanable/misc.dm | 4 + .../effects/spawners/random/lavaland_mobs.dm | 6 +- .../structures/icemoon/cave_entrance.dm | 2 +- .../structures/lavaland/necropolis_tendril.dm | 2 +- code/game/objects/structures/spawner.dm | 4 +- .../antagonists/changeling/powers/absorb.dm | 23 +- .../antagonists/changeling/powers/panacea.dm | 4 +- .../monster_organs/regenerative_core.dm | 2 +- .../jungle/mega_arachnid/mega_arachnid_ai.dm | 2 +- .../basic/lavaland/basilisk/basilisk.dm | 1 + .../living/basic/lavaland/goliath/goliath.dm | 15 +- .../basic/lavaland/hivelord/hivelord.dm | 114 ++++++ .../basic/lavaland/hivelord/hivelord_ai.dm | 14 + .../lavaland/hivelord/spawn_hivelord_brood.dm | 124 +++++++ .../living/basic/lavaland/legion/legion.dm | 158 +++++++++ .../living/basic/lavaland/legion/legion_ai.dm | 77 ++++ .../basic/lavaland/legion/legion_brood.dm | 99 ++++++ .../basic/lavaland/legion/legion_tumour.dm | 159 +++++++++ .../basic/lavaland/legion/spawn_legions.dm | 109 ++++++ .../mob/living/basic/lavaland/mining.dm | 4 + .../basic/lavaland/watcher/watcher_ai.dm | 2 +- .../space_fauna/netherworld/blankbody.dm | 15 +- .../basic/space_fauna/netherworld/creature.dm | 15 +- .../basic/space_fauna/netherworld/migo.dm | 15 +- .../space_fauna/paper_wizard/paper_wizard.dm | 15 +- .../spider/young_spider/young_spider.dm | 4 +- code/modules/mob/living/basic/vermin/mouse.dm | 9 +- .../hostile/megafauna/hierophant.dm | 2 +- .../simple_animal/hostile/megafauna/legion.dm | 9 +- .../hostile/mining_mobs/elites/legionnaire.dm | 13 +- .../hostile/mining_mobs/hivelord.dm | 332 ------------------ code/modules/mob/mob_helpers.dm | 30 ++ .../mob_spawn/corpses/mining_corpses.dm | 90 +++-- .../mapGenerators/asteroid.dm | 2 +- code/modules/surgery/organs/_organ.dm | 7 +- .../internal/cyberimp/augments_internal.dm | 1 + .../surgery/organs/internal/ears/_ears.dm | 1 + .../surgery/organs/internal/eyes/_eyes.dm | 3 +- .../surgery/organs/internal/heart/_heart.dm | 1 + .../surgery/organs/internal/liver/_liver.dm | 1 + .../surgery/organs/internal/lungs/_lungs.dm | 1 + .../organs/internal/stomach/_stomach.dm | 1 + .../surgery/organs/internal/tongue/_tongue.dm | 1 + .../unit_tests/simple_animal_freeze.dm | 12 - .../mob/simple/lavaland/lavaland_monsters.dmi | Bin 134625 -> 134470 bytes icons/mob/telegraphing/telegraph.dmi | Bin 1750 -> 1973 bytes icons/obj/medical/organs/mining_organs.dmi | Bin 2448 -> 2645 bytes tgstation.dme | 11 +- tgui/packages/tgui/interfaces/CrewConsole.js | 32 +- .../Scripts/78624_simple_to_basic_legion.txt | 3 + 71 files changed, 1184 insertions(+), 591 deletions(-) create mode 100644 code/__DEFINES/mood.dm create mode 100644 code/datums/ai/basic_mobs/generic_controllers.dm create mode 100644 code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm create mode 100644 code/modules/mob/living/basic/lavaland/hivelord/hivelord_ai.dm create mode 100644 code/modules/mob/living/basic/lavaland/hivelord/spawn_hivelord_brood.dm create mode 100644 code/modules/mob/living/basic/lavaland/legion/legion.dm create mode 100644 code/modules/mob/living/basic/lavaland/legion/legion_ai.dm create mode 100644 code/modules/mob/living/basic/lavaland/legion/legion_brood.dm create mode 100644 code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm create mode 100644 code/modules/mob/living/basic/lavaland/legion/spawn_legions.dm delete mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm create mode 100644 tools/UpdatePaths/Scripts/78624_simple_to_basic_legion.txt diff --git a/_maps/RandomRuins/SpaceRuins/atmosasteroidruin.dmm b/_maps/RandomRuins/SpaceRuins/atmosasteroidruin.dmm index 1d63a1a0070..7e3b7000c42 100644 --- a/_maps/RandomRuins/SpaceRuins/atmosasteroidruin.dmm +++ b/_maps/RandomRuins/SpaceRuins/atmosasteroidruin.dmm @@ -637,7 +637,7 @@ /obj/effect/turf_decal/tile/yellow/half{ dir = 4 }, -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/basic/mining/hivelord, /turf/open/floor/iron/co2_pressurized, /area/ruin/space/has_grav/atmosasteroid) "RK" = ( diff --git a/_maps/RandomRuins/SpaceRuins/prey_pod.dmm b/_maps/RandomRuins/SpaceRuins/prey_pod.dmm index 9089dea664c..6f53409b873 100644 --- a/_maps/RandomRuins/SpaceRuins/prey_pod.dmm +++ b/_maps/RandomRuins/SpaceRuins/prey_pod.dmm @@ -17,7 +17,7 @@ /obj/structure/chair/comfy/shuttle{ dir = 4 }, -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/basic/mining/hivelord, /turf/open/floor/mineral/titanium/white/airless, /area/ruin/space/has_grav) "p" = ( @@ -32,7 +32,7 @@ /area/ruin/space/has_grav) "D" = ( /obj/structure/chair/comfy/shuttle, -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/basic/mining/hivelord, /turf/open/floor/mineral/titanium/white/airless, /area/ruin/space/has_grav) "E" = ( @@ -57,7 +57,7 @@ /turf/open/floor/mineral/titanium/white/airless, /area/ruin/space/has_grav) "S" = ( -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/basic/mining/hivelord, /turf/open/floor/mineral/titanium/white/airless, /area/ruin/space/has_grav) "T" = ( diff --git a/_maps/RandomRuins/SpaceRuins/prison_shuttle.dmm b/_maps/RandomRuins/SpaceRuins/prison_shuttle.dmm index 5aeba75b3bd..6acec2ccc43 100644 --- a/_maps/RandomRuins/SpaceRuins/prison_shuttle.dmm +++ b/_maps/RandomRuins/SpaceRuins/prison_shuttle.dmm @@ -56,7 +56,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/prison_shuttle) "q" = ( -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/basic/mining/hivelord, /turf/open/misc/asteroid/airless, /area/ruin/space/prison_shuttle) "r" = ( @@ -84,7 +84,7 @@ /turf/open/floor/mineral/titanium/tiled/airless, /area/ruin/space/prison_shuttle) "w" = ( -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/basic/mining/hivelord, /turf/open/floor/plating/airless, /area/ruin/space/prison_shuttle) "x" = ( diff --git a/code/__DEFINES/ai/ai_blackboard.dm b/code/__DEFINES/ai/ai_blackboard.dm index b1f5d4fac30..24ecf0a19f6 100644 --- a/code/__DEFINES/ai/ai_blackboard.dm +++ b/code/__DEFINES/ai/ai_blackboard.dm @@ -8,6 +8,8 @@ #define BB_FOOD_TARGET "bb_food_target" ///Path we should use next time we use the JPS movement datum #define BB_PATH_TO_USE "BB_path_to_use" +///How close a mob must be for us to select it as a target, if that is less than how far we can maintain it as a target +#define BB_AGGRO_RANGE "BB_aggro_range" ///Turf we want a mob to move to #define BB_TRAVEL_DESTINATION "BB_travel_destination" @@ -44,6 +46,8 @@ #define BB_BASIC_MOB_FLEE_TARGET "BB_basic_flee_target" #define BB_BASIC_MOB_FLEE_TARGET_HIDING_LOCATION "BB_basic_flee_target_hiding_location" #define BB_FLEE_TARGETTING_DATUM "flee_targetting_datum" +#define BB_BASIC_MOB_FLEE_DISTANCE "BB_basic_flee_distance" +#define DEFAULT_BASIC_FLEE_DISTANCE 9 /// Generic key for a non-specific targetted action #define BB_TARGETTED_ACTION "BB_targetted_action" diff --git a/code/__DEFINES/ai/monsters.dm b/code/__DEFINES/ai/monsters.dm index 927f3736832..be9a4be34cd 100644 --- a/code/__DEFINES/ai/monsters.dm +++ b/code/__DEFINES/ai/monsters.dm @@ -146,3 +146,10 @@ #define BB_RAPIDSEEDS_ABILITY "rapidseeds_ability" /// key holds the tray we will beam #define BB_BEAMABLE_HYDROPLANT_TARGET "beamable_hydroplant_target" + +/// Corpse we have consumed +#define BB_LEGION_CORPSE "legion_corpse" +/// Things our target recently said +#define BB_LEGION_RECENT_LINES "legion_recent_lines" +/// The creator of our legion skull +#define BB_LEGION_BROOD_CREATOR "legion_brood_creator" diff --git a/code/__DEFINES/mood.dm b/code/__DEFINES/mood.dm new file mode 100644 index 00000000000..161f253b04c --- /dev/null +++ b/code/__DEFINES/mood.dm @@ -0,0 +1 @@ +#define MOOD_CATEGORY_LEGION_CORE "regenerative core" diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 4ac7be4c4d0..03a3bf49ebb 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -37,6 +37,7 @@ #define STASIS_CHEMICAL_EFFECT "stasis_chemical" #define STASIS_SHAPECHANGE_EFFECT "stasis_shapechange" #define STASIS_ADMIN "stasis_admin" +#define STASIS_LEGION_EATEN "stasis_eaten" #define STASIS_NETPOD_EFFECT "stasis_netpod" diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/run_away_from_target.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/run_away_from_target.dm index 486f9a0fdb2..bd86260ee89 100644 --- a/code/datums/ai/basic_mobs/basic_ai_behaviors/run_away_from_target.dm +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/run_away_from_target.dm @@ -4,7 +4,7 @@ action_cooldown = 0 behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT | AI_BEHAVIOR_MOVE_AND_PERFORM | AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION /// How far do we try to run? Further makes for smoother running, but potentially weirder pathfinding - var/run_distance = 9 + var/run_distance = DEFAULT_BASIC_FLEE_DISTANCE /// Clear target if we finish the action unsuccessfully var/clear_failed_targets = TRUE @@ -12,6 +12,7 @@ var/atom/target = controller.blackboard[hiding_location_key] || controller.blackboard[target_key] if(QDELETED(target)) return FALSE + run_distance = controller.blackboard[BB_BASIC_MOB_FLEE_DISTANCE] || initial(run_distance) if(!plot_path_away_from(controller, target)) return FALSE return ..() @@ -21,13 +22,12 @@ if (!controller.blackboard[BB_BASIC_MOB_FLEEING]) return var/atom/target = controller.blackboard[hiding_location_key] || controller.blackboard[target_key] - var/escaped = QDELETED(target) || !can_see(controller.pawn, target, run_distance) // If we can't see it we got away - if (escaped) + if (QDELETED(target) || !can_see(controller.pawn, target, run_distance)) finish_action(controller, succeeded = TRUE, target_key = target_key, hiding_location_key = hiding_location_key) return - if (get_dist(controller.pawn, controller.current_movement_target) > required_distance) - return - if(plot_path_away_from(controller, target)) + if (get_dist(controller.pawn, controller.current_movement_target) >= required_distance) + return // Still heading over + if (plot_path_away_from(controller, target)) return finish_action(controller, succeeded = FALSE, target_key = target_key, hiding_location_key = hiding_location_key) diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/targetting.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/targetting.dm index 9d7587c712b..0b9e31db667 100644 --- a/code/datums/ai/basic_mobs/basic_ai_behaviors/targetting.dm +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/targetting.dm @@ -2,6 +2,8 @@ action_cooldown = 2 SECONDS /// How far can we see stuff? var/vision_range = 9 + /// Blackboard key for aggro range, uses vision range if not specified + var/aggro_range_key = BB_AGGRO_RANGE /// Static typecache list of potentially dangerous objs var/static/list/hostile_machines = typecacheof(list(/obj/machinery/porta_turret, /obj/vehicle/sealed/mecha)) @@ -18,11 +20,13 @@ finish_action(controller, succeeded = FALSE) return - controller.clear_blackboard_key(target_key) - var/list/potential_targets = hearers(vision_range, controller.pawn) - living_mob //Remove self, so we don't suicide + var/aggro_range = controller.blackboard[aggro_range_key] || vision_range - for(var/HM in typecache_filter_list(range(vision_range, living_mob), hostile_machines)) //Can we see any hostile machines? - if(can_see(living_mob, HM, vision_range)) + controller.clear_blackboard_key(target_key) + var/list/potential_targets = hearers(aggro_range, controller.pawn) - living_mob //Remove self, so we don't suicide + + for(var/HM in typecache_filter_list(range(aggro_range, living_mob), hostile_machines)) //Can we see any hostile machines? + if(can_see(living_mob, HM, aggro_range)) potential_targets += HM if(!potential_targets.len) diff --git a/code/datums/ai/basic_mobs/basic_subtrees/flee_target.dm b/code/datums/ai/basic_mobs/basic_subtrees/flee_target.dm index a4982fa660e..8d1391f7c7d 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/flee_target.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/flee_target.dm @@ -9,8 +9,13 @@ /datum/ai_planning_subtree/flee_target/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) . = ..() - if (!controller.blackboard[BB_BASIC_MOB_FLEEING] || !controller.blackboard_key_exists(target_key)) + var/atom/flee_from = controller.blackboard[target_key] + if (!controller.blackboard[BB_BASIC_MOB_FLEEING] || QDELETED(flee_from)) return + var/flee_distance = controller.blackboard[BB_BASIC_MOB_FLEE_DISTANCE] || DEFAULT_BASIC_FLEE_DISTANCE + if (get_dist(controller.pawn, flee_from) >= flee_distance) + return + controller.queue_behavior(flee_behaviour, target_key, hiding_place_key) return SUBTREE_RETURN_FINISH_PLANNING //we gotta get out of here. diff --git a/code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.dm b/code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.dm index b80a28836a0..c09e7cdbf75 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.dm @@ -3,7 +3,7 @@ /// Blackboard key holding atom we want to stay away from var/target_key = BB_BASIC_MOB_CURRENT_TARGET /// How close will we allow our target to get? - var/minimum_distance = 3 + var/minimum_distance = 4 /// How far away will we allow our target to get? var/maximum_distance = 6 /// How far do we look for our target? diff --git a/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm b/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm index e040a566bcf..52f4a3459bf 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm @@ -22,24 +22,27 @@ emote_see = string_list(emote_see) /datum/ai_planning_subtree/random_speech/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) - if(SPT_PROB(speech_chance, seconds_per_tick)) - var/audible_emotes_length = emote_hear?.len - var/non_audible_emotes_length = emote_see?.len - var/speak_lines_length = speak?.len + if(!SPT_PROB(speech_chance, seconds_per_tick)) + return + speak(controller) - var/total_choices_length = audible_emotes_length + non_audible_emotes_length + speak_lines_length +/// Actually perform an action +/datum/ai_planning_subtree/random_speech/proc/speak(datum/ai_controller/controller) + var/audible_emotes_length = emote_hear?.len + var/non_audible_emotes_length = emote_see?.len + var/speak_lines_length = speak?.len - var/random_number_in_range = rand(1, total_choices_length) + var/total_choices_length = audible_emotes_length + non_audible_emotes_length + speak_lines_length - // Sound that plays when the mob does something audible - var/sound_to_play = length(sound) > 0 ? pick(sound) : null + var/random_number_in_range = rand(1, total_choices_length) + var/sound_to_play = length(sound) > 0 ? pick(sound) : null - if(random_number_in_range <= audible_emotes_length) - controller.queue_behavior(/datum/ai_behavior/perform_emote, pick(emote_hear), sound_to_play) - else if(random_number_in_range <= (audible_emotes_length + non_audible_emotes_length)) - controller.queue_behavior(/datum/ai_behavior/perform_emote, pick(emote_see)) - else - controller.queue_behavior(/datum/ai_behavior/perform_speech, pick(speak), sound_to_play) + if(random_number_in_range <= audible_emotes_length) + controller.queue_behavior(/datum/ai_behavior/perform_emote, pick(emote_hear), sound_to_play) + else if(random_number_in_range <= (audible_emotes_length + non_audible_emotes_length)) + controller.queue_behavior(/datum/ai_behavior/perform_emote, pick(emote_see)) + else + controller.queue_behavior(/datum/ai_behavior/perform_speech, pick(speak), sound_to_play) /datum/ai_planning_subtree/random_speech/insect speech_chance = 5 @@ -218,7 +221,9 @@ var/list/speech_lines = controller.blackboard[BB_BASIC_MOB_SPEAK_LINES] if(isnull(speech_lines)) return ..() - + + // Note to future developers: this behaviour a singleton so this probably doesn't work as you would expect + // The whole speech tree really needs to be refactored because this isn't how we use AI data these days speak = speech_lines[BB_EMOTE_SAY] || list() emote_see = speech_lines[BB_EMOTE_SEE] || list() emote_hear = speech_lines[BB_EMOTE_HEAR] || list() diff --git a/code/datums/ai/basic_mobs/basic_subtrees/targeted_mob_ability.dm b/code/datums/ai/basic_mobs/basic_subtrees/targeted_mob_ability.dm index 8d75f797163..d9ee3ef0918 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/targeted_mob_ability.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/targeted_mob_ability.dm @@ -23,3 +23,6 @@ controller.queue_behavior(use_ability_behaviour, ability_key, target_key) if (finish_planning) return SUBTREE_RETURN_FINISH_PLANNING + +/datum/ai_planning_subtree/targeted_mob_ability/continue_planning + finish_planning = FALSE diff --git a/code/datums/ai/basic_mobs/generic_controllers.dm b/code/datums/ai/basic_mobs/generic_controllers.dm new file mode 100644 index 00000000000..208c1833add --- /dev/null +++ b/code/datums/ai/basic_mobs/generic_controllers.dm @@ -0,0 +1,26 @@ +/// The most basic AI tree which just finds a guy and then runs at them to click them +/datum/ai_controller/basic_controller/simple_hostile + blackboard = list( + BB_TARGETTING_DATUM = new /datum/targetting_datum/basic, + ) + + ai_movement = /datum/ai_movement/basic_avoidance + idle_behavior = /datum/idle_behavior/idle_random_walk + planning_subtrees = list( + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/basic_melee_attack_subtree, + ) + +/// Find a target, walk at target, attack intervening obstacles +/datum/ai_controller/basic_controller/simple_hostile_obstacles + blackboard = list( + BB_TARGETTING_DATUM = new /datum/targetting_datum/basic, + ) + + ai_movement = /datum/ai_movement/basic_avoidance + idle_behavior = /datum/idle_behavior/idle_random_walk + planning_subtrees = list( + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/attack_obstacle_in_path, + /datum/ai_planning_subtree/basic_melee_attack_subtree, + ) diff --git a/code/datums/ai/generic/generic_behaviors.dm b/code/datums/ai/generic/generic_behaviors.dm index fd6d848f2d6..4f816de4be3 100644 --- a/code/datums/ai/generic/generic_behaviors.dm +++ b/code/datums/ai/generic/generic_behaviors.dm @@ -307,6 +307,16 @@ playsound(living_pawn, speech_sound, 80, vary = TRUE) finish_action(controller, TRUE) +/datum/ai_behavior/perform_speech_radio + +/datum/ai_behavior/perform_speech_radio/perform(seconds_per_tick, datum/ai_controller/controller, speech, obj/item/radio/speech_radio, list/try_channels = list(RADIO_CHANNEL_COMMON)) + var/mob/living/living_pawn = controller.pawn + if(!istype(living_pawn) || !istype(speech_radio) || QDELETED(speech_radio) || !length(try_channels)) + finish_action(controller, FALSE) + return + speech_radio.talk_into(living_pawn, speech, pick(try_channels)) + finish_action(controller, TRUE) + //song behaviors /datum/ai_behavior/setup_instrument diff --git a/code/datums/components/appearance_on_aggro.dm b/code/datums/components/appearance_on_aggro.dm index affb926d28d..33a3d7c2e90 100644 --- a/code/datums/components/appearance_on_aggro.dm +++ b/code/datums/components/appearance_on_aggro.dm @@ -1,11 +1,14 @@ /** - * component gave to basic creatures to allow them to change appearance when find a target + * Changes visuals of the attached mob while it has a target */ /datum/component/appearance_on_aggro + /// Blackboardey to search for a target var/target_key = BB_BASIC_MOB_CURRENT_TARGET + /// Icon state to use when we have a target + var/aggro_state /// path of the overlay to apply - var/mutable_appearance/overlay_path + var/mutable_appearance/aggro_overlay /// visibility of our icon when aggroed var/alpha_on_aggro /// visibility of our icon when deaggroed @@ -13,20 +16,22 @@ /// do we currently have a target var/atom/current_target -/datum/component/appearance_on_aggro/Initialize(overlay_icon, overlay_state, alpha_on_aggro, alpha_on_deaggro) - if(!isliving(parent)) +/datum/component/appearance_on_aggro/Initialize(aggro_state, overlay_icon, overlay_state, alpha_on_aggro, alpha_on_deaggro) + if (!isliving(parent)) return COMPONENT_INCOMPATIBLE - if(overlay_icon && overlay_state) - src.overlay_path = mutable_appearance(overlay_icon, overlay_state) - if(!alpha_on_aggro || !alpha_on_deaggro) - return + src.aggro_state = aggro_state src.alpha_on_aggro = alpha_on_aggro src.alpha_on_deaggro = alpha_on_deaggro + if (!isnull(overlay_icon) && !isnull(overlay_state)) + aggro_overlay = mutable_appearance(overlay_icon, overlay_state) /datum/component/appearance_on_aggro/RegisterWithParent() - RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(change_overlays)) RegisterSignal(parent, COMSIG_AI_BLACKBOARD_KEY_SET(target_key), PROC_REF(on_set_target)) RegisterSignal(parent, COMSIG_AI_BLACKBOARD_KEY_CLEARED(target_key), PROC_REF(on_clear_target)) + if (!isnull(aggro_state)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_ICON_STATE, PROC_REF(on_icon_state_updated)) + if (!isnull(aggro_overlay)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(on_overlays_updated)) /datum/component/appearance_on_aggro/UnregisterFromParent() . = ..() @@ -36,37 +41,42 @@ SIGNAL_HANDLER var/atom/target = source.ai_controller.blackboard[target_key] - if(isnull(target)) + if (QDELETED(target)) return + current_target = target RegisterSignal(target, COMSIG_QDELETING, PROC_REF(on_clear_target)) - if(overlay_path) - source.update_appearance(UPDATE_OVERLAYS) - if(alpha_on_aggro) + if (!isnull(aggro_overlay) || !isnull(aggro_state)) + source.update_appearance(UPDATE_ICON) + if (!isnull(alpha_on_aggro)) animate(source, alpha = alpha_on_aggro, time = 2 SECONDS) /datum/component/appearance_on_aggro/Destroy() - if(current_target) + if (!isnull(current_target)) revert_appearance(parent) return ..() /datum/component/appearance_on_aggro/proc/on_clear_target(atom/source) SIGNAL_HANDLER - revert_appearance(parent) /datum/component/appearance_on_aggro/proc/revert_appearance(mob/living/source) UnregisterSignal(current_target, COMSIG_QDELETING) current_target = null - if(overlay_path) - source.update_appearance(UPDATE_OVERLAYS) - if(alpha_on_deaggro) + if (!isnull(aggro_overlay) || !isnull(aggro_state)) + source.update_appearance(UPDATE_ICON) + if (!isnull(alpha_on_deaggro)) animate(source, alpha = alpha_on_deaggro, time = 2 SECONDS) -/datum/component/appearance_on_aggro/proc/change_overlays(atom/source, list/overlays) +/datum/component/appearance_on_aggro/proc/on_icon_state_updated(mob/living/source) + SIGNAL_HANDLER + if (source.stat == DEAD) + return + source.icon_state = isnull(current_target) ? initial(source.icon_state) : aggro_state + +/datum/component/appearance_on_aggro/proc/on_overlays_updated(atom/source, list/overlays) SIGNAL_HANDLER - if(isnull(current_target)) + if (isnull(current_target)) return - - overlays += overlay_path + overlays += aggro_overlay diff --git a/code/datums/mapgen/CaveGenerator.dm b/code/datums/mapgen/CaveGenerator.dm index d3b8bd08ded..fa5bae91868 100644 --- a/code/datums/mapgen/CaveGenerator.dm +++ b/code/datums/mapgen/CaveGenerator.dm @@ -55,7 +55,7 @@ /mob/living/basic/mining/basilisk = 4, /mob/living/basic/mining/goldgrub = 1, /mob/living/basic/mining/goliath/ancient = 5, - /mob/living/simple_animal/hostile/asteroid/hivelord = 3, + /mob/living/basic/mining/hivelord = 3, ) mob_spawn_list = expand_weights(weighted_mob_spawn_list) mob_spawn_no_mega_list = expand_weights(weighted_mob_spawn_list - SPAWN_MEGAFAUNA) diff --git a/code/datums/mapgen/Cavegens/IcemoonCaves.dm b/code/datums/mapgen/Cavegens/IcemoonCaves.dm index 89a153aedd7..7d7437ccda6 100644 --- a/code/datums/mapgen/Cavegens/IcemoonCaves.dm +++ b/code/datums/mapgen/Cavegens/IcemoonCaves.dm @@ -4,9 +4,9 @@ weighted_mob_spawn_list = list( + /mob/living/basic/mining/legion/snow = 50, /mob/living/basic/mining/lobstrosity = 15, /mob/living/basic/mining/goldgrub = 10, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50, /mob/living/simple_animal/hostile/asteroid/polarbear = 30, /mob/living/simple_animal/hostile/asteroid/wolf = 50, /obj/structure/spawner/ice_moon = 3, @@ -63,7 +63,7 @@ weighted_mob_spawn_list = list( SPAWN_MEGAFAUNA = 1, /mob/living/basic/mining/ice_whelp = 60, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 100, + /mob/living/basic/mining/legion/snow = 100, /mob/living/simple_animal/hostile/asteroid/ice_demon = 100, /obj/structure/spawner/ice_moon/demonic_portal = 6, /obj/structure/spawner/ice_moon/demonic_portal/snowlegion = 6, diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index a39187f3194..23a3364adc3 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -167,6 +167,9 @@ mood_change = -4 timeout = 2 MINUTES +/datum/mood_event/healsbadman/long_term + timeout = 10 MINUTES + /datum/mood_event/jittery description = "I'm nervous and on edge and I can't stand still!!" mood_change = -2 diff --git a/code/datums/mutations/antenna.dm b/code/datums/mutations/antenna.dm index bc5026ab148..b71f66c0fa6 100644 --- a/code/datums/mutations/antenna.dm +++ b/code/datums/mutations/antenna.dm @@ -91,32 +91,11 @@ // chance to alert the read-ee to_chat(cast_on, span_danger("You feel something foreign enter your mind.")) - var/list/recent_speech = list() - var/list/say_log = list() - var/log_source = cast_on.logging - //this whole loop puts the read-ee's say logs into say_log in an easy to access way - for(var/log_type in log_source) - var/nlog_type = text2num(log_type) - if(nlog_type & LOG_SAY) - var/list/reversed = log_source[log_type] - if(islist(reversed)) - say_log = reverse_range(reversed.Copy()) - break - - for(var/spoken_memory in say_log) - //up to 3 random lines of speech, favoring more recent speech - if(length(recent_speech) >= 3) - break - if(prob(50)) - continue - // log messages with tags like telepathy are displayed like "(Telepathy to Ckey/(target)) "greetings""" - // by splitting the text by using a " delimiter, we can grab JUST the greetings part - recent_speech[spoken_memory] = splittext(say_log[spoken_memory], "\"", 1, 0, TRUE)[3] - + var/list/recent_speech = cast_on.copy_recent_speech(copy_amount = 3, line_chance = 50) if(length(recent_speech)) to_chat(owner, span_boldnotice("You catch some drifting memories of their past conversations...")) for(var/spoken_memory in recent_speech) - to_chat(owner, span_notice("[recent_speech[spoken_memory]]")) + to_chat(owner, span_notice("[spoken_memory]")) if(iscarbon(cast_on)) var/mob/living/carbon/carbon_cast_on = cast_on diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 3122c8c1e84..bfdcdc45064 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -243,9 +243,9 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) if (jobs[trim_assignment] != null) entry["ijob"] = jobs[trim_assignment] - // Binary living/dead status + // Current status if (sensor_mode >= SENSOR_LIVING) - entry["life_status"] = (tracked_living_mob.stat != DEAD) + entry["life_status"] = tracked_living_mob.stat // Damage if (sensor_mode >= SENSOR_VITALS) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 6a519650d10..daaddb00ce0 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -212,6 +212,10 @@ icon_state += "-old" AddElement(/datum/element/swabable, CELL_LINE_TABLE_SLUDGE, CELL_VIRUS_TABLE_GENERIC, rand(2,4), 10) +/obj/effect/decal/cleanable/vomit/old/black_bile + name = "black bile" + desc = "There's something wiggling in there..." + color = COLOR_DARK /obj/effect/decal/cleanable/chem_pile name = "chemical pile" diff --git a/code/game/objects/effects/spawners/random/lavaland_mobs.dm b/code/game/objects/effects/spawners/random/lavaland_mobs.dm index 8aa20cc90e7..7b4bec1f6a1 100644 --- a/code/game/objects/effects/spawners/random/lavaland_mobs.dm +++ b/code/game/objects/effects/spawners/random/lavaland_mobs.dm @@ -10,9 +10,9 @@ /mob/living/basic/mining/brimdemon = 1, /mob/living/basic/mining/goldgrub = 1, /mob/living/basic/mining/goliath = 1, + /mob/living/basic/mining/legion = 1, /mob/living/basic/mining/lobstrosity/lava = 1, /mob/living/basic/mining/watcher = 1, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion = 1, ) /// Spawns random watcher variants during map generation @@ -46,6 +46,6 @@ desc = "Chance to spawn a rare shiny version." icon_state = "legion" loot = list( - /mob/living/simple_animal/hostile/asteroid/hivelord/legion = 19, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf = 1, + /mob/living/basic/mining/legion = 19, + /mob/living/basic/mining/legion/dwarf = 1, ) diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/game/objects/structures/icemoon/cave_entrance.dm index 10f7a56c7f9..7393c20758e 100644 --- a/code/game/objects/structures/icemoon/cave_entrance.dm +++ b/code/game/objects/structures/icemoon/cave_entrance.dm @@ -102,7 +102,7 @@ GLOBAL_LIST_INIT(ore_probability, list( mob_types = list(/mob/living/basic/mining/ice_whelp) /obj/structure/spawner/ice_moon/demonic_portal/snowlegion - mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/portal) + mob_types = list(/mob/living/basic/mining/legion/snow/spawner_made) /obj/effect/collapsing_demonic_portal name = "collapsing demonic portal" diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm index 542df563a1f..22f7f0422cd 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -23,7 +23,7 @@ mob_types = list(/mob/living/basic/mining/goliath) /obj/structure/spawner/lavaland/legion - mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril) + mob_types = list(/mob/living/basic/mining/legion/spawner_made) /obj/structure/spawner/lavaland/icewatcher mob_types = list(/mob/living/basic/mining/watcher/icewing) diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm index db04c82815f..a4f40d49c8d 100644 --- a/code/game/objects/structures/spawner.dm +++ b/code/game/objects/structures/spawner.dm @@ -80,8 +80,8 @@ /mob/living/basic/mining/basilisk, /mob/living/basic/mining/goldgrub, /mob/living/basic/mining/goliath/ancient, + /mob/living/basic/mining/legion, /mob/living/basic/wumborian_fugu, - /mob/living/simple_animal/hostile/asteroid/hivelord, ) faction = list(FACTION_MINING) @@ -98,7 +98,7 @@ /obj/structure/spawner/mining/hivelord name = "hivelord den" desc = "A den housing a nest of hivelords." - mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord) + mob_types = list(/mob/living/basic/mining/hivelord) /obj/structure/spawner/mining/basilisk name = "basilisk den" diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm index c2ae89933d1..cee0f0da5b9 100644 --- a/code/modules/antagonists/changeling/powers/absorb.dm +++ b/code/modules/antagonists/changeling/powers/absorb.dm @@ -95,31 +95,14 @@ //Some of target's recent speech, so the changeling can attempt to imitate them better. //Recent as opposed to all because rounds tend to have a LOT of text. - var/list/recent_speech = list() - var/list/say_log = list() - var/log_source = target.logging - for(var/log_type in log_source) - var/nlog_type = text2num(log_type) - if(nlog_type & LOG_SAY) - var/list/reversed = log_source[log_type] - if(islist(reversed)) - say_log = reverse_range(reversed.Copy()) - break - - if(LAZYLEN(say_log) > LING_ABSORB_RECENT_SPEECH) - recent_speech = say_log.Copy(say_log.len-LING_ABSORB_RECENT_SPEECH+1,0) //0 so len-LING_ARS+1 to end of list - else - for(var/spoken_memory in say_log) - if(recent_speech.len >= LING_ABSORB_RECENT_SPEECH) - break - recent_speech[spoken_memory] = splittext(say_log[spoken_memory], "\"", 1, 0, TRUE)[3] + var/list/recent_speech = target.copy_recent_speech() if(recent_speech.len) changeling.antag_memory += "Some of [target]'s speech patterns, we should study these to better impersonate [target.p_them()]!
" to_chat(owner, span_boldnotice("Some of [target]'s speech patterns, we should study these to better impersonate [target.p_them()]!")) for(var/spoken_memory in recent_speech) - changeling.antag_memory += "\"[recent_speech[spoken_memory]]\"
" - to_chat(owner, span_notice("\"[recent_speech[spoken_memory]]\"")) + changeling.antag_memory += "\"[spoken_memory]\"
" + to_chat(owner, span_notice("\"[spoken_memory]\"")) changeling.antag_memory += "We have no more knowledge of [target]'s speech patterns.
" to_chat(owner, span_boldnotice("We have no more knowledge of [target]'s speech patterns.")) diff --git a/code/modules/antagonists/changeling/powers/panacea.dm b/code/modules/antagonists/changeling/powers/panacea.dm index 034248e1a55..68689ee65d4 100644 --- a/code/modules/antagonists/changeling/powers/panacea.dm +++ b/code/modules/antagonists/changeling/powers/panacea.dm @@ -13,7 +13,9 @@ ..() var/list/bad_organs = list( user.get_organ_by_type(/obj/item/organ/internal/body_egg), - user.get_organ_by_type(/obj/item/organ/internal/zombie_infection)) + user.get_organ_by_type(/obj/item/organ/internal/legion_tumour), + user.get_organ_by_type(/obj/item/organ/internal/zombie_infection), + ) for(var/o in bad_organs) var/obj/item/organ/O = o diff --git a/code/modules/mining/equipment/monster_organs/regenerative_core.dm b/code/modules/mining/equipment/monster_organs/regenerative_core.dm index cb224438c00..98758d5a369 100644 --- a/code/modules/mining/equipment/monster_organs/regenerative_core.dm +++ b/code/modules/mining/equipment/monster_organs/regenerative_core.dm @@ -36,7 +36,7 @@ /// Log applications and apply moodlet. /obj/item/organ/internal/monster_core/regenerative_core/apply_to(mob/living/target, mob/user) - target.add_mood_event("regenerative core", /datum/mood_event/healsbadman) + target.add_mood_event(MOOD_CATEGORY_LEGION_CORE, /datum/mood_event/healsbadman) if (target != user) target.visible_message(span_notice("[user] forces [target] to apply [src]... Black tendrils entangle and reinforce [target.p_them()]!")) SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other")) diff --git a/code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid_ai.dm b/code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid_ai.dm index e2c67af2467..c88178135dc 100644 --- a/code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid_ai.dm +++ b/code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid_ai.dm @@ -2,6 +2,7 @@ blackboard = list( BB_TARGETTING_DATUM = new /datum/targetting_datum/basic, BB_BASIC_MOB_FLEEING = TRUE, + BB_BASIC_MOB_FLEE_DISTANCE = 5, ) ai_movement = /datum/ai_movement/basic_avoidance @@ -47,7 +48,6 @@ /datum/ai_behavior/run_away_from_target/mega_arachnid clear_failed_targets = FALSE - run_distance = 5 ///only engage in melee combat against cuffed targets, otherwise keep throwing restraints at them /datum/ai_planning_subtree/basic_melee_attack_subtree/mega_arachnid diff --git a/code/modules/mob/living/basic/lavaland/basilisk/basilisk.dm b/code/modules/mob/living/basic/lavaland/basilisk/basilisk.dm index c662870393c..45bfd74d23b 100644 --- a/code/modules/mob/living/basic/lavaland/basilisk/basilisk.dm +++ b/code/modules/mob/living/basic/lavaland/basilisk/basilisk.dm @@ -75,6 +75,7 @@ /datum/ai_controller/basic_controller/basilisk blackboard = list( BB_TARGETTING_DATUM = new /datum/targetting_datum/basic, + BB_AGGRO_RANGE = 5, ) ai_movement = /datum/ai_movement/basic_avoidance diff --git a/code/modules/mob/living/basic/lavaland/goliath/goliath.dm b/code/modules/mob/living/basic/lavaland/goliath/goliath.dm index 95df44a8326..b99e254853e 100644 --- a/code/modules/mob/living/basic/lavaland/goliath/goliath.dm +++ b/code/modules/mob/living/basic/lavaland/goliath/goliath.dm @@ -44,6 +44,8 @@ COOLDOWN_DECLARE(ability_animation_cooldown) /// Our base tentacles ability var/datum/action/cooldown/mob_cooldown/goliath_tentacles/tentacles + /// Our long-ranged tentacles ability + var/datum/action/cooldown/mob_cooldown/tentacle_grasp/tentacle_line /// Things we want to eat off the floor (or a plate, we're not picky) var/static/list/goliath_foods = list(/obj/item/food/grown/ash_flora, /obj/item/food/bait/worm) @@ -70,9 +72,9 @@ var/datum/action/cooldown/mob_cooldown/tentacle_burst/melee_tentacles = new (src) melee_tentacles.Grant(src) AddComponent(/datum/component/revenge_ability, melee_tentacles, targetting = ai_controller.blackboard[BB_TARGETTING_DATUM], max_range = 1, target_self = TRUE) - var/datum/action/cooldown/mob_cooldown/tentacle_grasp/ranged_tentacles = new (src) - ranged_tentacles.Grant(src) - AddComponent(/datum/component/revenge_ability, ranged_tentacles, targetting = ai_controller.blackboard[BB_TARGETTING_DATUM], min_range = 2, max_range = 9) + tentacle_line = new (src) + tentacle_line.Grant(src) + AddComponent(/datum/component/revenge_ability, tentacle_line, targetting = ai_controller.blackboard[BB_TARGETTING_DATUM], min_range = 2, max_range = 9) tentacles_ready() RegisterSignal(src, COMSIG_MOB_ABILITY_FINISHED, PROC_REF(used_ability)) @@ -82,6 +84,7 @@ /mob/living/basic/mining/goliath/Destroy() QDEL_NULL(tentacles) + QDEL_NULL(tentacle_line) return ..() /mob/living/basic/mining/goliath/examine(mob/user) @@ -167,6 +170,12 @@ . = ..() faction = new_friend.faction.Copy() +/mob/living/basic/mining/goliath/RangedAttack(atom/atom_target, modifiers) + tentacles?.Trigger(target = atom_target) + +/mob/living/basic/mining/goliath/ranged_secondary_attack(atom/atom_target, modifiers) + tentacle_line?.Trigger(target = atom_target) + /// Legacy Goliath mob with different sprites, largely the same behaviour /mob/living/basic/mining/goliath/ancient name = "ancient goliath" diff --git a/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm new file mode 100644 index 00000000000..256ab1fbd8f --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm @@ -0,0 +1,114 @@ +/// Mob which retreats and spawns annoying sub-mobs to attack you +/mob/living/basic/mining/hivelord + name = "hivelord" + desc = "A levitating swarm of tiny creatures which act as a single individual. When threatened or hunting they rapidly replicate additional short-lived bodies." + icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' + icon_state = "hivelord" + icon_living = "hivelord" + // icon_aggro = "hivelord_alert" + icon_dead = "hivelord_dead" + icon_gib = "syndicate_gib" + mob_biotypes = MOB_ORGANIC + speed = 2 + maxHealth = 75 + health = 75 + melee_damage_lower = 0 + melee_damage_upper = 0 + attack_verb_continuous = "weakly tackles" + attack_verb_simple = "weakly tackles" + speak_emote = list("telepathically cries") + attack_sound = 'sound/weapons/pierce.ogg' + throw_blocked_message = "passes between the bodies of the" + obj_damage = 0 + pass_flags = PASSTABLE + ai_controller = /datum/ai_controller/basic_controller/hivelord + /// Mobs to spawn when we die, varedit this to be recursive to give the players a fun surprise + var/death_spawn_type = /mob/living/basic/hivelord_brood + /// Action which spawns worms + var/datum/action/cooldown/mob_cooldown/hivelord_spawn/spawn_brood + +/mob/living/basic/mining/hivelord/Initialize(mapload) + . = ..() + var/static/list/death_loot = list(/obj/item/organ/internal/monster_core/regenerative_core) + AddElement(/datum/element/relay_attackers) + AddElement(/datum/element/death_drops, death_loot) + AddComponent(/datum/component/clickbox, icon_state = "hivelord", max_scale = INFINITY, dead_state = "hivelord_dead") // They writhe so much. + AddComponent(/datum/component/appearance_on_aggro, aggro_state = "hivelord_alert") + spawn_brood = new(src) + spawn_brood.Grant(src) + ai_controller.set_blackboard_key(BB_TARGETTED_ACTION, spawn_brood) + +/mob/living/basic/mining/hivelord/Destroy() + QDEL_NULL(spawn_brood) + return ..() + +/mob/living/basic/mining/hivelord/death(gibbed) + . = ..() + var/list/safe_turfs = RANGE_TURFS(1, src) - get_turf(src) + for (var/turf/check_turf as anything in safe_turfs) + if (check_turf.is_blocked_turf(exclude_mobs = TRUE)) + safe_turfs -= check_turf + + var/turf/our_turf = get_turf(src) + for (var/i in 1 to 3) + if (!length(safe_turfs)) + return + var/turf/land_turf = pick_n_take(safe_turfs) + var/obj/effect/temp_visual/hivebrood_spawn/forecast = new(land_turf) + forecast.create_from(death_spawn_type, our_turf, CALLBACK(src, PROC_REF(complete_spawn), land_turf)) + +/// Spawns a worm on the specified turf +/mob/living/basic/mining/hivelord/proc/complete_spawn(turf/spawn_turf) + var/mob/living/brood = new death_spawn_type(spawn_turf) + brood.faction = faction + brood.ai_controller?.set_blackboard_key(ai_controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET]) + brood.dir = get_dir(src, spawn_turf) + +/mob/living/basic/mining/hivelord/RangedAttack(atom/atom_target, modifiers) + spawn_brood?.Trigger(target = atom_target) + +/// Attack worms spawned by the hivelord +/mob/living/basic/hivelord_brood + name = "hivelord brood" + desc = "Short-lived attack form of the hivelord. One isn't much of a threat, but..." + icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' + icon_state = "hivelord_brood" + icon_living = "hivelord_brood" + icon_dead = "hivelord_brood" + icon_gib = "syndicate_gib" + friendly_verb_continuous = "chirrups near" + friendly_verb_simple = "chirrup near" + mob_size = MOB_SIZE_SMALL + basic_mob_flags = DEL_ON_DEATH + pass_flags = PASSTABLE | PASSMOB + mob_biotypes = MOB_ORGANIC|MOB_BEAST + faction = list(FACTION_MINING) + unsuitable_atmos_damage = 0 + minimum_survivable_temperature = 0 + maximum_survivable_temperature = INFINITY + speed = 1.5 + maxHealth = 1 + health = 1 + melee_damage_lower = 2 + melee_damage_upper = 2 + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + speak_emote = list("telepathically cries") + attack_sound = 'sound/weapons/bite.ogg' + attack_vis_effect = ATTACK_EFFECT_BITE + obj_damage = 0 + density = FALSE + ai_controller = /datum/ai_controller/basic_controller/simple_hostile + +/mob/living/basic/hivelord_brood/Initialize(mapload) + . = ..() + add_traits(list(TRAIT_LAVA_IMMUNE, TRAIT_ASHSTORM_IMMUNE), INNATE_TRAIT) + AddElement(/datum/element/simple_flying) + AddComponent(/datum/component/swarming) + AddComponent(/datum/component/clickbox, icon_state = "hivelord", max_scale = INFINITY) + addtimer(CALLBACK(src, PROC_REF(death)), 10 SECONDS) + +/mob/living/basic/hivelord_brood/death(gibbed) + if (!gibbed) + new /obj/effect/temp_visual/hive_spawn_wither(get_turf(src), /* copy_from = */ src) + return ..() diff --git a/code/modules/mob/living/basic/lavaland/hivelord/hivelord_ai.dm b/code/modules/mob/living/basic/lavaland/hivelord/hivelord_ai.dm new file mode 100644 index 00000000000..fd7983de397 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/hivelord/hivelord_ai.dm @@ -0,0 +1,14 @@ +/// Basically just keep away and shit out worms +/datum/ai_controller/basic_controller/hivelord + blackboard = list( + BB_TARGETTING_DATUM = new /datum/targetting_datum/basic, + BB_AGGRO_RANGE = 5, // Only get mad at people nearby + ) + + ai_movement = /datum/ai_movement/basic_avoidance + idle_behavior = /datum/idle_behavior/idle_random_walk + planning_subtrees = list( + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/maintain_distance, + /datum/ai_planning_subtree/targeted_mob_ability, + ) diff --git a/code/modules/mob/living/basic/lavaland/hivelord/spawn_hivelord_brood.dm b/code/modules/mob/living/basic/lavaland/hivelord/spawn_hivelord_brood.dm new file mode 100644 index 00000000000..3fee2a003f3 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/hivelord/spawn_hivelord_brood.dm @@ -0,0 +1,124 @@ +/// Spawns a little worm nearby +/datum/action/cooldown/mob_cooldown/hivelord_spawn + name = "Spawn Brood" + desc = "Release an attack form to an adjacent square to attack your target or anyone nearby." + button_icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' + button_icon_state = "hivelord_brood" + background_icon_state = "bg_demon" + overlay_icon_state = "bg_demon_border" + click_to_activate = TRUE + cooldown_time = 2 SECONDS + melee_cooldown_time = 0 + check_flags = AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED + shared_cooldown = NONE + /// If a mob is not clicked directly, inherit targetting data from this blackboard key and setting it upon this target key + var/ai_target_key = BB_BASIC_MOB_CURRENT_TARGET + /// What are we actually spawning? + var/spawn_type = /mob/living/basic/hivelord_brood + /// Do we automatically fire with no cooldown when damaged? + var/trigger_on_hit = TRUE + /// Minimum time between triggering on hit + var/on_hit_delay = 1 SECONDS + /// Delay between triggering on hit + COOLDOWN_DECLARE(on_hit_cooldown) + +/datum/action/cooldown/mob_cooldown/hivelord_spawn/Grant(mob/granted_to) + . = ..() + if (isnull(owner)) + return + if (trigger_on_hit) + RegisterSignal(owner, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(on_attacked)) + +/datum/action/cooldown/mob_cooldown/hivelord_spawn/Remove(mob/removed_from) + UnregisterSignal(removed_from, COMSIG_ATOM_WAS_ATTACKED) + return ..() + +/datum/action/cooldown/mob_cooldown/hivelord_spawn/Activate(atom/target) + . = ..() + if (!spawn_brood(target, target_turf = get_turf(target))) + StartCooldown(0.5 SECONDS) + return + StartCooldown() + +/// Called when someone whacks us +/datum/action/cooldown/mob_cooldown/hivelord_spawn/proc/on_attacked(atom/victim, atom/attacker, attack_flags) + SIGNAL_HANDLER + if (!trigger_on_hit || !(attack_flags & ATTACKER_DAMAGING_ATTACK) || !COOLDOWN_FINISHED(src, on_hit_cooldown)) + return + COOLDOWN_START(src, on_hit_cooldown, on_hit_delay) + spawn_brood(attacker, target_turf = get_step_away(owner, attacker), feedback = FALSE) + +/// Spawn a funny little worm +/datum/action/cooldown/mob_cooldown/hivelord_spawn/proc/spawn_brood(target, turf/target_turf, feedback = TRUE) + var/ai_target = isliving(target) ? target : null + if (isnull(ai_target)) + ai_target = owner.ai_controller?.blackboard[ai_target_key] + + var/dir_to_target = get_dir(owner, target_turf) + var/list/target_turfs = list() + for(var/i in -1 to 1) + var/turn_amount = rand(-1, 1) * 45 + var/test_dir = turn(dir_to_target, turn_amount) + var/turf/test_turf = get_step(owner, test_dir) + if (test_turf.is_blocked_turf(exclude_mobs = TRUE)) + continue + target_turfs += test_turf + + if (!length(target_turfs)) + if (feedback) + owner.balloon_alert(owner, "no room!") + StartCooldown(0.5 SECONDS) + return FALSE + + var/turf/land_turf = pick(target_turfs) + var/obj/effect/temp_visual/hivebrood_spawn/forecast = new(land_turf) + forecast.create_from(spawn_type, get_turf(owner), CALLBACK(src, PROC_REF(complete_spawn), land_turf, ai_target)) + StartCooldown() + + return TRUE + +/// Actually create a mob +/datum/action/cooldown/mob_cooldown/hivelord_spawn/proc/complete_spawn(turf/spawn_turf, target) + var/mob/living/brood = new spawn_type(spawn_turf) + brood.faction = owner.faction + brood.ai_controller?.set_blackboard_key(ai_target_key, target) + brood.dir = get_dir(owner, spawn_turf) + +#define BROOD_ARC_Y_OFFSET 8 +#define BROOD_ARC_ROTATION 45 + +/// Fast animation to show a worm spawning +/obj/effect/temp_visual/hivebrood_spawn + name = "brood spawn" + duration = 0.3 SECONDS + alpha = 0 + +/// Set up our visuals and start a timer for a callback +/obj/effect/temp_visual/hivebrood_spawn/proc/create_from(mob/living/spawn_type, turf/spawn_from, datum/callback/on_completed) + addtimer(on_completed, duration, TIMER_DELETE_ME) + + var/turf/my_turf = get_turf(src) + dir = get_dir(spawn_from, my_turf) + var/move_x = (my_turf.x - spawn_from.x) * world.icon_size + var/move_y = (my_turf.y - spawn_from.y) * world.icon_size + pixel_x = -move_x + pixel_y = -move_y + + icon = initial(spawn_type.icon) + icon_state = initial(spawn_type.icon_state) + + + animate(src, pixel_x = 0, time = duration) + animate(src, pixel_y = BROOD_ARC_Y_OFFSET - (move_y * 0.5), time = duration * 0.5, flags = ANIMATION_PARALLEL, easing = SINE_EASING | EASE_OUT) + animate(pixel_y = 0, time = duration * 0.5, easing = SINE_EASING | EASE_IN) + animate(src, alpha = 255, time = duration * 0.5, flags = ANIMATION_PARALLEL) + + if (dir & (NORTH | EAST)) + transform = matrix().Turn(-BROOD_ARC_ROTATION) + animate(src, transform = matrix(), time = duration, flags = ANIMATION_PARALLEL) + else + transform = matrix().Turn(BROOD_ARC_ROTATION) + animate(src, transform = matrix(), time = duration, flags = ANIMATION_PARALLEL) + +#undef BROOD_ARC_Y_OFFSET +#undef BROOD_ARC_ROTATION diff --git a/code/modules/mob/living/basic/lavaland/legion/legion.dm b/code/modules/mob/living/basic/lavaland/legion/legion.dm new file mode 100644 index 00000000000..7c6bd0fd170 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/legion/legion.dm @@ -0,0 +1,158 @@ +/** + * Avoids players while throwing skulls at them. + * Legion skulls heal allies, bite enemies, and infest dying humans to make more legions. + */ +/mob/living/basic/mining/legion + name = "legion" + desc = "You can still see what was once a human under the shifting mass of corruption." + icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' + icon_state = "legion" + icon_living = "legion" + icon_dead = "legion" + icon_gib = "syndicate_gib" + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID + basic_mob_flags = DEL_ON_DEATH + speed = 3 + maxHealth = 75 + health = 75 + obj_damage = 60 + melee_damage_lower = 15 + melee_damage_upper = 15 + attack_verb_continuous = "lashes out at" + attack_verb_simple = "lash out at" + speak_emote = list("gurgles") + attack_sound = 'sound/weapons/pierce.ogg' + throw_blocked_message = "bounces harmlessly off of" + crusher_loot = /obj/item/crusher_trophy/legion_skull + death_message = "wails in chorus and dissolves into quivering flesh." + ai_controller = /datum/ai_controller/basic_controller/legion + /// What kind of mob do we spawn? + var/brood_type = /mob/living/basic/legion_brood + /// What kind of corpse spawner do we leave behind on death? + var/corpse_type = /obj/effect/mob_spawn/corpse/human/legioninfested + /// Who is inside of us? + var/mob/living/stored_mob + +/mob/living/basic/mining/legion/Initialize(mapload) + . = ..() + AddElement(/datum/element/death_drops, get_loot_list()) + AddElement(/datum/element/content_barfer) + + var/datum/action/cooldown/mob_cooldown/skull_launcher/skull_launcher = new(src) + skull_launcher.Grant(src) + skull_launcher.spawn_type = brood_type + ai_controller.blackboard[BB_TARGETTED_ACTION] = skull_launcher + +/// Create what we want to drop on death, in proc form so we can always return a static list +/mob/living/basic/mining/legion/proc/get_loot_list() + var/static/list/death_loot = list(/obj/item/organ/internal/monster_core/regenerative_core/legion) + return death_loot + +/mob/living/basic/mining/legion/Exited(atom/movable/gone, direction) + . = ..() + if (gone != stored_mob) + return + ai_controller.clear_blackboard_key(BB_LEGION_CORPSE) + stored_mob.remove_status_effect(/datum/status_effect/grouped/stasis, STASIS_LEGION_EATEN) + stored_mob.add_mood_event(MOOD_CATEGORY_LEGION_CORE, /datum/mood_event/healsbadman/long_term) // This will still probably mostly be gone before you are alive + stored_mob = null + +/mob/living/basic/mining/legion/death(gibbed) + if (isnull(stored_mob)) + new corpse_type(loc) + return ..() + +/// Put a corpse in this guy +/mob/living/basic/mining/legion/proc/consume(mob/living/consumed) + new /obj/effect/gibspawner/generic(consumed.loc) + gender = consumed.gender + name = consumed.real_name + consumed.investigate_log("has been killed by hivelord infestation.", INVESTIGATE_DEATHS) + consumed.death() + consumed.extinguish_mob() + consumed.fully_heal(HEAL_DAMAGE) + consumed.apply_status_effect(/datum/status_effect/grouped/stasis, STASIS_LEGION_EATEN) + consumed.forceMove(src) + ai_controller?.set_blackboard_key(BB_LEGION_CORPSE, consumed) + ai_controller?.set_blackboard_key(BB_LEGION_RECENT_LINES, consumed.copy_recent_speech(line_chance = 80)) + stored_mob = consumed + visible_message(span_warning("[src] staggers to [p_their()] feet!")) + if (prob(75)) + return + // Congratulations you have won a special prize: cancer + var/obj/item/organ/internal/legion_tumour/cancer = new() + cancer.Insert(consumed, special = TRUE, drop_if_replaced = FALSE) + +/// A Legion which only drops skeletons instead of corpses which might have fun loot, so it cannot be farmed +/mob/living/basic/mining/legion/spawner_made + corpse_type = /obj/effect/mob_spawn/corpse/human/legioninfested/skeleton/charred + + +/// Like a Legion but it's an adorable snowman +/mob/living/basic/mining/legion/snow + name = "snow legion" + desc = "You can vaguely see what was once a human under the densely packed snow. Cute, but macabre." + icon = 'icons/mob/simple/icemoon/icemoon_monsters.dmi' + icon_state = "snowlegion" + icon_living = "snowlegion" + // icon_aggro = "snowlegion_alive" + icon_dead = "snowlegion" + brood_type = /mob/living/basic/legion_brood/snow + corpse_type = /obj/effect/mob_spawn/corpse/human/legioninfested/snow + +/mob/living/basic/mining/legion/snow/Initialize(mapload) + . = ..() + AddComponent(/datum/component/appearance_on_aggro, aggro_state = "snowlegion_alive") // Surprise! I was real! + +/// As Snow Legion but spawns corpses which don't have any exciting loot +/mob/living/basic/mining/legion/snow/spawner_made + corpse_type = /obj/effect/mob_spawn/corpse/human/legioninfested/skeleton + + +/// Like a Legion but shorter and faster +/mob/living/basic/mining/legion/dwarf + name = "dwarf legion" + desc = "You can still see what was once a rather small human under the shifting mass of corruption." + icon_state = "dwarf_legion" + icon_living = "dwarf_legion" + icon_dead = "dwarf_legion" + maxHealth = 60 + health = 60 + speed = 2 + crusher_drop_chance = 20 + corpse_type = /obj/effect/mob_spawn/corpse/human/legioninfested/dwarf + + +/// Like a Legion but larger and spawns regular Legions, not currently used anywhere and very soulful +/mob/living/basic/mining/legion/large + name = "myriad" + desc = "A legion of legions, a dead end to whatever form the Necropolis was attempting to create." + icon = 'icons/mob/simple/lavaland/64x64megafauna.dmi' + icon_state = "legion" + icon_living = "legion" + icon_dead = "legion" + health_doll_icon = "legion" + speed = 5 + health = 450 + maxHealth = 450 + melee_damage_lower = 20 + melee_damage_upper = 20 + obj_damage = 30 + pixel_x = -16 + sentience_type = SENTIENCE_BOSS + +/mob/living/basic/mining/legion/large/Initialize(mapload) + . = ..() + AddComponent(\ + /datum/component/spawner,\ + spawn_types = list(/mob/living/basic/mining/legion),\ + spawn_time = 20 SECONDS,\ + max_spawned = 3,\ + spawn_text = "peels itself off from",\ + faction = faction,\ + ) + +/// Create what we want to drop on death, in proc form so we can always return a static list +/mob/living/basic/mining/legion/large/get_loot_list() + var/static/list/death_loot = list(/obj/item/organ/internal/monster_core/regenerative_core/legion = 3, /obj/effect/mob_spawn/corpse/human/legioninfested = 4) + return death_loot diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_ai.dm b/code/modules/mob/living/basic/lavaland/legion/legion_ai.dm new file mode 100644 index 00000000000..6b3525cb32a --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/legion/legion_ai.dm @@ -0,0 +1,77 @@ +/// Keep away and launch skulls at every opportunity, prioritising injured allies +/datum/ai_controller/basic_controller/legion + blackboard = list( + BB_TARGETTING_DATUM = new /datum/targetting_datum/basic/attack_until_dead/legion, + BB_BASIC_MOB_FLEEING = TRUE, + BB_AGGRO_RANGE = 5, // Unobservant + BB_BASIC_MOB_FLEE_DISTANCE = 6, + ) + + ai_movement = /datum/ai_movement/basic_avoidance + idle_behavior = /datum/idle_behavior/idle_random_walk + planning_subtrees = list( + /datum/ai_planning_subtree/random_speech/legion, + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/targeted_mob_ability, + /datum/ai_planning_subtree/flee_target/legion, + ) + +/// Chase and attack whatever we are targetting, if it's friendly we will heal them +/datum/ai_controller/basic_controller/legion_brood + blackboard = list( + BB_TARGETTING_DATUM = new /datum/targetting_datum/basic/attack_until_dead/legion, + ) + + ai_movement = /datum/ai_movement/basic_avoidance + idle_behavior = /datum/idle_behavior/idle_random_walk + planning_subtrees = list( + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/basic_melee_attack_subtree, + ) + +/// Target nearby friendlies if they are hurt (and are not themselves Legions) +/datum/targetting_datum/basic/attack_until_dead/legion + +/datum/targetting_datum/basic/attack_until_dead/legion/faction_check(mob/living/living_mob, mob/living/the_target) + if (!living_mob.faction_check_mob(the_target, exact_match = check_factions_exactly)) + return FALSE + if (istype(the_target, living_mob.type)) + return TRUE + var/atom/created_by = living_mob.ai_controller.blackboard[BB_LEGION_BROOD_CREATOR] + if (!QDELETED(created_by) && istype(the_target, created_by.type)) + return TRUE + return the_target.stat == DEAD || the_target.health >= the_target.maxHealth + +/// Don't run away from friendlies +/datum/ai_planning_subtree/flee_target/legion + +/datum/ai_planning_subtree/flee_target/legion/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) + var/mob/living/target = controller.blackboard[target_key] + if (QDELETED(target) || target.faction_check_mob(controller.pawn)) + return // Only flee if we have a hostile target + return ..() + +/// Make spooky sounds, if we have a corpse inside then impersonate them +/datum/ai_planning_subtree/random_speech/legion + speech_chance = 1 + speak = list("Come...", "Legion...", "Why...?") + emote_hear = list("groans.", "wails.", "whimpers.") + emote_see = list("twitches.", "shudders.") + /// Stuff to specifically say into a radio + var/list/radio_speech = list("Come...", "Why...?") + +/datum/ai_planning_subtree/random_speech/legion/speak(datum/ai_controller/controller) + var/mob/living/carbon/human/victim = controller.blackboard[BB_LEGION_CORPSE] + if (QDELETED(victim) || prob(30)) + return ..() + + var/list/remembered_speech = controller.blackboard[BB_LEGION_RECENT_LINES] || list() + + if (length(remembered_speech) && prob(50)) // Don't spam the radio + controller.queue_behavior(/datum/ai_behavior/perform_speech, pick(remembered_speech)) + return + + var/obj/item/radio/mob_radio = locate() in victim.contents + if (QDELETED(mob_radio)) + return ..() // No radio, just talk funny + controller.queue_behavior(/datum/ai_behavior/perform_speech_radio, pick(radio_speech + remembered_speech), mob_radio, list(RADIO_CHANNEL_SUPPLY, RADIO_CHANNEL_COMMON)) diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm b/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm new file mode 100644 index 00000000000..bc21bd0e506 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm @@ -0,0 +1,99 @@ +/// A spooky skull which heals lavaland mobs, attacks miners, and infests their bodies +/mob/living/basic/legion_brood + name = "legion" + desc = "One of many." + icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' + icon_state = "legion_head" + icon_living = "legion_head" + icon_dead = "legion_head" + icon_gib = "syndicate_gib" + basic_mob_flags = DEL_ON_DEATH + mob_size = MOB_SIZE_SMALL + pass_flags = PASSTABLE | PASSMOB + mob_biotypes = MOB_ORGANIC|MOB_BEAST + faction = list(FACTION_MINING) + unsuitable_atmos_damage = 0 + minimum_survivable_temperature = 0 + maximum_survivable_temperature = INFINITY + friendly_verb_continuous = "chatters near" + friendly_verb_simple = "chatter near" + maxHealth = 1 + health = 1 + melee_damage_lower = 12 + melee_damage_upper = 12 + obj_damage = 0 + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + attack_vis_effect = ATTACK_EFFECT_BITE + speak_emote = list("echoes") // who the fuck speaking as this mob it dies 10 seconds after it spawns + attack_sound = 'sound/weapons/pierce.ogg' + density = FALSE + ai_controller = /datum/ai_controller/basic_controller/legion_brood + /// Reference to a guy who made us + var/mob/living/created_by + +/mob/living/basic/legion_brood/Initialize(mapload) + . = ..() + add_traits(list(TRAIT_LAVA_IMMUNE, TRAIT_ASHSTORM_IMMUNE), INNATE_TRAIT) + AddElement(/datum/element/simple_flying) + AddComponent(/datum/component/swarming) + AddComponent(/datum/component/clickbox, icon_state = "sphere", max_scale = 2) + addtimer(CALLBACK(src, PROC_REF(death)), 10 SECONDS) + +/mob/living/basic/legion_brood/death(gibbed) + if (!gibbed) + new /obj/effect/temp_visual/hive_spawn_wither(get_turf(src), /* copy_from = */ src) + return ..() + +/mob/living/basic/legion_brood/melee_attack(mob/living/target, list/modifiers, ignore_cooldown) + if (ishuman(target) && target.stat > SOFT_CRIT) + infest(target) + return + if (isliving(target) && faction_check_mob(target) && !istype(target, created_by?.type)) + visible_message(span_warning("[src] melds with [target]'s flesh!")) + target.apply_status_effect(/datum/status_effect/regenerative_core) + new /obj/effect/temp_visual/heal(get_turf(target), COLOR_HEALING_CYAN) + death() + return + return ..() + +/// Turn the targetted mob into one of us +/mob/living/basic/legion_brood/proc/infest(mob/living/target) + visible_message(span_warning("[name] burrows into the flesh of [target]!")) + var/spawn_type = get_legion_type(target) + var/mob/living/basic/mining/legion/new_legion = new spawn_type(loc) + new_legion.consume(target) + new_legion.faction = faction.Copy() + qdel(src) + +/// Returns the kind of legion we make out of the target +/mob/living/basic/legion_brood/proc/get_legion_type(mob/living/target) + if (HAS_TRAIT(target, TRAIT_DWARF)) + return /mob/living/basic/mining/legion/dwarf + return /mob/living/basic/mining/legion + +/// Sets someone as our creator, mostly so you can't use skulls to heal yourself +/mob/living/basic/legion_brood/proc/assign_creator(mob/living/creator, copy_full_faction = TRUE) + if (copy_full_faction) + faction = creator.faction.Copy() + else + faction |= REF(creator) + created_by = creator + ai_controller?.set_blackboard_key(BB_LEGION_BROOD_CREATOR, creator) + RegisterSignal(creator, COMSIG_QDELETING, PROC_REF(creator_destroyed)) + +/// Reference handling +/mob/living/basic/legion_brood/proc/creator_destroyed() + SIGNAL_HANDLER + created_by = null + +/// Like the Legion's summoned skull but funnier (it's snow now) +/mob/living/basic/legion_brood/snow + name = "snow legion" + icon = 'icons/mob/simple/icemoon/icemoon_monsters.dmi' + icon_state = "snowlegion_head" + icon_living = "snowlegion_head" + icon_dead = "snowlegion_head" + +/mob/living/basic/legion_brood/snow/get_legion_type(mob/living/target) + return /mob/living/basic/mining/legion/snow diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm b/code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm new file mode 100644 index 00000000000..078af57de2a --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm @@ -0,0 +1,159 @@ +/// Left behind when a legion infects you, for medical enrichment +/obj/item/organ/internal/legion_tumour + name = "legion tumour" + desc = "A mass of pulsing flesh and dark tendrils, containing the power to regenerate flesh at a terrible cost." + failing_desc = "pulses and writhes with horrible life, reaching towards you with its tendrils!" + icon = 'icons/obj/medical/organs/mining_organs.dmi' + icon_state = "legion_remains" + zone = BODY_ZONE_CHEST + slot = ORGAN_SLOT_PARASITE_EGG + decay_factor = STANDARD_ORGAN_DECAY * 3 // About 5 minutes outside of a host + /// What stage of growth the corruption has reached. + var/stage = 0 + /// We apply this status effect periodically or when used on someone + var/applied_status = /datum/status_effect/regenerative_core + /// How long have we been in this stage? + var/elapsed_time = 0 SECONDS + /// How long does it take to advance one stage? + var/growth_time = 80 SECONDS // Long enough that if you go back to lavaland without realising it you're not totally fucked + /// What kind of mob will we transform into? + var/spawn_type = /mob/living/basic/mining/legion + /// Spooky sounds to play as you start to turn + var/static/list/spooky_sounds = list( + 'sound/voice/lowHiss1.ogg', + 'sound/voice/lowHiss2.ogg', + 'sound/voice/lowHiss3.ogg', + 'sound/voice/lowHiss4.ogg', + ) + +/obj/item/organ/internal/legion_tumour/Initialize(mapload) + . = ..() + animate_pulse() + +/obj/item/organ/internal/legion_tumour/apply_organ_damage(damage_amount, maximum, required_organ_flag) + var/was_failing = organ_flags & ORGAN_FAILING + . = ..() + if (was_failing != (organ_flags & ORGAN_FAILING)) + animate_pulse() + +/obj/item/organ/internal/legion_tumour/set_organ_damage(damage_amount, required_organ_flag) + . = ..() + animate_pulse() + +/// Do a heartbeat animation depending on if we're failing or not +/obj/item/organ/internal/legion_tumour/proc/animate_pulse() + animate(src, transform = matrix()) // Stop any current animation + + var/speed_divider = organ_flags & ORGAN_FAILING ? 2 : 1 + + animate(src, transform = matrix().Scale(1.1), time = 0.5 SECONDS / speed_divider, easing = SINE_EASING | EASE_OUT, loop = -1, flags = ANIMATION_PARALLEL) + animate(transform = matrix(), time = 0.5 SECONDS / speed_divider, easing = SINE_EASING | EASE_IN) + animate(transform = matrix(), time = 2 SECONDS / speed_divider) + +/obj/item/organ/internal/legion_tumour/Remove(mob/living/carbon/egg_owner, special) + . = ..() + stage = 0 + elapsed_time = 0 + +/obj/item/organ/internal/legion_tumour/attack(mob/living/target, mob/living/user, params) + if (try_apply(target, user)) + qdel(src) + return + return ..() + +/// Smear it on someone like a regen core, why not. Make sure they're alive though. +/obj/item/organ/internal/legion_tumour/proc/try_apply(mob/living/target, mob/user) + if(!user.Adjacent(target) || !isliving(target)) + return FALSE + + if (target.stat <= SOFT_CRIT && !(organ_flags & ORGAN_FAILING)) + target.add_mood_event(MOOD_CATEGORY_LEGION_CORE, /datum/mood_event/healsbadman) + target.apply_status_effect(applied_status) + + if (target != user) + target.visible_message(span_notice("[user] splatters [target] with [src]... Disgusting tendrils pull [target.p_their()] wounds shut!")) + else + to_chat(user, span_notice("You smear [src] on yourself. Disgusting tendrils pull your wounds closed.")) + return TRUE + + if (!ishuman(target)) + return FALSE + + target.visible_message(span_boldwarning("[user] splatters [target] with [src]... and it springs into horrible life!")) + var/mob/living/basic/legion_brood/skull = new(target.loc) + skull.melee_attack(target) + return TRUE + +/obj/item/organ/internal/legion_tumour/on_life(seconds_per_tick, times_fired) + . = ..() + if (QDELETED(src) || QDELETED(owner)) + return + + if (stage >= 2) + if(SPT_PROB(stage / 5, seconds_per_tick)) + to_chat(owner, span_notice("You feel a bit better.")) + owner.apply_status_effect(applied_status) // It's not all bad! + if(SPT_PROB(1, seconds_per_tick)) + owner.emote("twitch") + + switch(stage) + if(2, 3) + if(SPT_PROB(1, seconds_per_tick)) + to_chat(owner, span_danger("Your chest spasms!")) + if(SPT_PROB(1, seconds_per_tick)) + to_chat(owner, span_danger("You feel weak.")) + if(SPT_PROB(1, seconds_per_tick)) + SEND_SOUND(owner, sound(pick(spooky_sounds))) + if(SPT_PROB(2, seconds_per_tick)) + owner.vomit() + if(4, 5) + if(SPT_PROB(2, seconds_per_tick)) + to_chat(owner, span_danger("Something flexes under your skin.")) + if(SPT_PROB(2, seconds_per_tick)) + if (prob(40)) + SEND_SOUND(owner, sound('sound/voice/ghost_whisper.ogg')) + else + SEND_SOUND(owner, sound(pick(spooky_sounds))) + if(SPT_PROB(3, seconds_per_tick)) + owner.vomit(vomit_type = /obj/effect/decal/cleanable/vomit/old/black_bile) + if (prob(50)) + var/turf/check_turf = get_step(owner.loc, owner.dir) + var/atom/land_turf = (check_turf.is_blocked_turf()) ? owner.loc : check_turf + var/mob/living/basic/legion_brood/child = new(land_turf) + child.assign_creator(owner, copy_full_faction = FALSE) + + if(SPT_PROB(3, seconds_per_tick)) + to_chat(owner, span_danger("Your muscles ache.")) + owner.take_bodypart_damage(3) + + if (stage == 5) + if (SPT_PROB(10, seconds_per_tick)) + infest() + return + + elapsed_time += seconds_per_tick SECONDS * ((organ_flags & ORGAN_FAILING) ? 3 : 1) // Let's call it "matured" rather than failed + if (elapsed_time < growth_time) + return + stage++ + elapsed_time = 0 + if (stage == 5) + to_chat(owner, span_bolddanger("Something is moving under your skin!")) + +/// Consume our host +/obj/item/organ/internal/legion_tumour/proc/infest() + if (QDELETED(src) || QDELETED(owner)) + return + owner.visible_message(span_boldwarning("Black tendrils burst from [owner]'s flesh, covering them in amorphous flesh!")) + var/mob/living/basic/mining/legion/new_legion = new spawn_type(owner.loc) + new_legion.consume(owner) + qdel(src) + +/obj/item/organ/internal/legion_tumour/on_find(mob/living/finder) + . = ..() + to_chat(finder, span_warning("There's an enormous tumour in [owner]'s [zone]!")) + if(stage < 4) + to_chat(finder, span_notice("Its tendrils seem to twitch towards the light.")) + return + to_chat(finder, span_notice("Its pulsing tendrils reach all throughout the body.")) + if(prob(stage * 2)) + infest() diff --git a/code/modules/mob/living/basic/lavaland/legion/spawn_legions.dm b/code/modules/mob/living/basic/lavaland/legion/spawn_legions.dm new file mode 100644 index 00000000000..1ffcafecd56 --- /dev/null +++ b/code/modules/mob/living/basic/lavaland/legion/spawn_legions.dm @@ -0,0 +1,109 @@ +/// Spawns a little worm nearby +/datum/action/cooldown/mob_cooldown/skull_launcher + name = "Launch Legion" + desc = "Propel a living piece of your body to a distant location." + button_icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' + button_icon_state = "legion_head" + background_icon_state = "bg_demon" + overlay_icon_state = "bg_demon_border" + click_to_activate = TRUE + cooldown_time = 2 SECONDS + melee_cooldown_time = 0 + check_flags = AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED + shared_cooldown = NONE + /// If a mob is not clicked directly, inherit targetting data from this blackboard key and setting it upon this target key + var/ai_target_key = BB_BASIC_MOB_CURRENT_TARGET + /// What are we actually spawning? + var/spawn_type = /mob/living/basic/legion_brood + /// How far can we fire? + var/max_range = 7 + +/datum/action/cooldown/mob_cooldown/skull_launcher/Activate(atom/target) + var/turf/target_turf = get_turf(target) + + if (get_dist(owner, target_turf) > max_range) + target_turf = get_ranged_target_turf_direct(owner, target_turf, max_range) + + if (target_turf.is_blocked_turf()) + var/list/near_turfs = RANGE_TURFS(1, target_turf) - target_turf + for (var/turf/check_turf as anything in near_turfs) + if (check_turf.is_blocked_turf()) + near_turfs -= check_turf + if (length(near_turfs)) + target_turf = pick(near_turfs) + else if(target_turf.is_blocked_turf(exclude_mobs = TRUE)) + owner.balloon_alert(owner, "no room!") + StartCooldown(0.5 SECONDS) + return + + var/ai_target = isliving(target) ? target : null + if (isnull(ai_target)) + ai_target = owner.ai_controller?.blackboard[ai_target_key] + + var/target_dir = get_dir(owner, target) + + var/obj/effect/temp_visual/legion_skull_depart/launch = new(get_turf(owner)) + launch.set_appearance(spawn_type) + launch.dir = target_dir + new /obj/effect/temp_visual/legion_brood_indicator(target_turf) + var/obj/effect/temp_visual/legion_skull_land/land = new(target_turf) + land.dir = target_dir + land.set_appearance(spawn_type, CALLBACK(src, PROC_REF(spawn_skull), target_turf, ai_target)) + StartCooldown() + +/// Actually create a mob +/datum/action/cooldown/mob_cooldown/skull_launcher/proc/spawn_skull(turf/spawn_location, target) + var/mob/living/basic/legion_brood/brood = new spawn_type(spawn_location) + if (istype(brood)) + brood.assign_creator(owner) + brood.ai_controller?.set_blackboard_key(ai_target_key, target) + brood.dir = get_dir(owner, spawn_location) + if (!isnull(target)) + brood.face_atom(target) + else + brood.dir = get_dir(owner, spawn_location) + + +/// Animation for launching a skull +/obj/effect/temp_visual/legion_skull_depart + name = "legion brood launch" + icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' + icon_state = "legion_head" + duration = 0.25 SECONDS + +/// Copy appearance from the passed atom type +/obj/effect/temp_visual/legion_skull_depart/proc/set_appearance(atom/spawned_type) + icon = initial(spawned_type.icon) + icon_state = initial(spawned_type.icon_state) + animate(src, alpha = 0, pixel_y = 72, time = duration) + +/// Animation for landing a skull +/obj/effect/temp_visual/legion_skull_land + name = "legion brood land" + duration = 0.5 SECONDS + icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' + icon_state = "legion_head" + alpha = 0 + pixel_y = 72 + +/// Copy appearance from the passed atom type and store what to do on animation complete +/obj/effect/temp_visual/legion_skull_land/proc/set_appearance(atom/spawned_type, datum/callback/on_completed) + icon = initial(spawned_type.icon) + icon_state = initial(spawned_type.icon_state) + animate(src, alpha = 0, pixel_y = 72, time = duration / 2) + animate(alpha = 255, pixel_y = 0, time = duration / 2) + addtimer(on_completed, duration, TIMER_DELETE_ME) + +/// A skull is going to be here! Oh no! +/obj/effect/temp_visual/legion_brood_indicator + name = "legion brood land" + duration = 0.75 SECONDS + layer = BELOW_MOB_LAYER + plane = GAME_PLANE + icon = 'icons/mob/telegraphing/telegraph.dmi' + icon_state = "skull" + +/obj/effect/temp_visual/legion_brood_indicator/Initialize(mapload) + . = ..() + animate(src, alpha = 255, time = 0.5 SECONDS) + animate(alpha = 0, time = 0.25 SECONDS) diff --git a/code/modules/mob/living/basic/lavaland/mining.dm b/code/modules/mob/living/basic/lavaland/mining.dm index 3570936d2f5..0b6c4f321b6 100644 --- a/code/modules/mob/living/basic/lavaland/mining.dm +++ b/code/modules/mob/living/basic/lavaland/mining.dm @@ -9,6 +9,10 @@ unsuitable_atmos_damage = 0 minimum_survivable_temperature = 0 maximum_survivable_temperature = INFINITY + // Pale purple, should be red enough to see stuff on lavaland + lighting_cutoff_red = 25 + lighting_cutoff_green = 15 + lighting_cutoff_blue = 35 /// Message to output if throwing damage is absorbed var/throw_blocked_message = "bounces off" /// What crusher trophy this mob drops, if any diff --git a/code/modules/mob/living/basic/lavaland/watcher/watcher_ai.dm b/code/modules/mob/living/basic/lavaland/watcher/watcher_ai.dm index 1f310ac229f..a25234817f3 100644 --- a/code/modules/mob/living/basic/lavaland/watcher/watcher_ai.dm +++ b/code/modules/mob/living/basic/lavaland/watcher/watcher_ai.dm @@ -9,9 +9,9 @@ planning_subtrees = list( /datum/ai_planning_subtree/target_retaliate/check_faction, /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/maintain_distance, /datum/ai_planning_subtree/use_mob_ability/gaze, /datum/ai_planning_subtree/ranged_skirmish/watcher, - /datum/ai_planning_subtree/maintain_distance, ) /datum/ai_planning_subtree/use_mob_ability/gaze diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/blankbody.dm b/code/modules/mob/living/basic/space_fauna/netherworld/blankbody.dm index 5a7bb075f19..d49932fb704 100644 --- a/code/modules/mob/living/basic/space_fauna/netherworld/blankbody.dm +++ b/code/modules/mob/living/basic/space_fauna/netherworld/blankbody.dm @@ -26,22 +26,9 @@ lighting_cutoff_green = 15 lighting_cutoff_blue = 40 - ai_controller = /datum/ai_controller/basic_controller/blankbody + ai_controller = /datum/ai_controller/basic_controller/simple_hostile_obstacles /mob/living/basic/blankbody/Initialize(mapload) . = ..() AddElement(/datum/element/swabable, CELL_LINE_TABLE_NETHER, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 0) AddComponent(/datum/component/health_scaling_effects, min_health_attack_modifier_lower = 8, min_health_attack_modifier_upper = 14) - -/datum/ai_controller/basic_controller/blankbody - blackboard = list( - BB_TARGETTING_DATUM = new /datum/targetting_datum/basic(), - ) - - ai_movement = /datum/ai_movement/basic_avoidance - idle_behavior = /datum/idle_behavior/idle_random_walk - planning_subtrees = list( - /datum/ai_planning_subtree/simple_find_target, - /datum/ai_planning_subtree/attack_obstacle_in_path, - /datum/ai_planning_subtree/basic_melee_attack_subtree, - ) diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm b/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm index b38ada0f6e1..cdde6ad05e4 100644 --- a/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm +++ b/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm @@ -27,7 +27,7 @@ lighting_cutoff_green = 25 lighting_cutoff_blue = 15 - ai_controller = /datum/ai_controller/basic_controller/creature + ai_controller = /datum/ai_controller/basic_controller/simple_hostile_obstacles /mob/living/basic/creature/Initialize(mapload) . = ..() @@ -101,16 +101,3 @@ exit_jaunt(cast_on) return enter_jaunt(cast_on) - -/datum/ai_controller/basic_controller/creature - blackboard = list( - BB_TARGETTING_DATUM = new /datum/targetting_datum/basic(), - ) - - ai_movement = /datum/ai_movement/basic_avoidance - idle_behavior = /datum/idle_behavior/idle_random_walk - planning_subtrees = list( - /datum/ai_planning_subtree/simple_find_target, - /datum/ai_planning_subtree/attack_obstacle_in_path, - /datum/ai_planning_subtree/basic_melee_attack_subtree, - ) diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm b/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm index 18dca95013e..3f445ea1261 100644 --- a/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm +++ b/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm @@ -28,7 +28,7 @@ lighting_cutoff_green = 15 lighting_cutoff_blue = 50 - ai_controller = /datum/ai_controller/basic_controller/migo + ai_controller = /datum/ai_controller/basic_controller/simple_hostile_obstacles var/static/list/migo_sounds /// Odds migo will dodge var/dodge_prob = 10 @@ -71,16 +71,3 @@ . = Move(get_step(loc,pick(cdir, ccdir))) if(!.)//Can't dodge there so we just carry on . = Move(moving_to, move_direction) - -/datum/ai_controller/basic_controller/migo - blackboard = list( - BB_TARGETTING_DATUM = new /datum/targetting_datum/basic(), - ) - - ai_movement = /datum/ai_movement/basic_avoidance - idle_behavior = /datum/idle_behavior/idle_random_walk - planning_subtrees = list( - /datum/ai_planning_subtree/simple_find_target, - /datum/ai_planning_subtree/attack_obstacle_in_path, - /datum/ai_planning_subtree/basic_melee_attack_subtree, - ) diff --git a/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm b/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm index 3b32fbb4ce7..519e8ba1a73 100644 --- a/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm +++ b/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm @@ -110,8 +110,7 @@ faction = list(FACTION_STICKMAN) melee_damage_lower = 1 melee_damage_upper = 5 - - ai_controller = /datum/ai_controller/basic_controller/wizard_copy + ai_controller = /datum/ai_controller/basic_controller/simple_hostile /mob/living/basic/paper_wizard/copy/Initialize(mapload) . = ..() @@ -141,18 +140,6 @@ new /obj/effect/temp_visual/small_smoke/halfsecond(get_turf(src)) qdel(src) //I see through your ruse! -/datum/ai_controller/basic_controller/wizard_copy - blackboard = list( - BB_TARGETTING_DATUM = new /datum/targetting_datum/basic, - ) - - ai_movement = /datum/ai_movement/basic_avoidance - idle_behavior = /datum/idle_behavior/idle_random_walk - planning_subtrees = list( - /datum/ai_planning_subtree/simple_find_target, - /datum/ai_planning_subtree/basic_melee_attack_subtree, - ) - //fancy effects /obj/effect/temp_visual/paper_scatter name = "scattering paper" diff --git a/code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider.dm b/code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider.dm index 57b9da542b7..50ec85e342c 100644 --- a/code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider.dm +++ b/code/modules/mob/living/basic/space_fauna/spider/young_spider/young_spider.dm @@ -30,6 +30,7 @@ /datum/ai_controller/basic_controller/young_spider blackboard = list( BB_TARGETTING_DATUM = new /datum/targetting_datum/basic(), + BB_BASIC_MOB_FLEE_DISTANCE = 6, ) ai_traits = STOP_MOVING_WHEN_PULLED @@ -46,6 +47,3 @@ /datum/ai_planning_subtree/find_unwebbed_turf, /datum/ai_planning_subtree/spin_web, ) - -/datum/ai_behavior/run_away_from_target/young_spider - run_distance = 6 diff --git a/code/modules/mob/living/basic/vermin/mouse.dm b/code/modules/mob/living/basic/vermin/mouse.dm index 9e8f1b8df55..46e175c5323 100644 --- a/code/modules/mob/living/basic/vermin/mouse.dm +++ b/code/modules/mob/living/basic/vermin/mouse.dm @@ -381,6 +381,7 @@ BB_CURRENT_HUNTING_TARGET = null, // cheese BB_LOW_PRIORITY_HUNTING_TARGET = null, // cable BB_TARGETTING_DATUM = new /datum/targetting_datum/basic(), // Use this to find people to run away from + BB_BASIC_MOB_FLEE_DISTANCE = 3, ) ai_traits = STOP_MOVING_WHEN_PULLED @@ -400,9 +401,6 @@ ) /// Don't look for anything to run away from if you are distracted by being adjacent to cheese -/datum/ai_planning_subtree/flee_target/mouse - flee_behaviour = /datum/ai_behavior/run_away_from_target/mouse - /datum/ai_planning_subtree/flee_target/mouse /datum/ai_planning_subtree/flee_target/mouse/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) @@ -411,11 +409,6 @@ return // We see some cheese, which is more important than our life return ..() -/datum/ai_planning_subtree/flee_target/mouse/select - -/datum/ai_behavior/run_away_from_target/mouse - run_distance = 3 // Mostly exists in small tunnels, don't get ahead of yourself - /// AI controller for rats, slightly more complex than mice becuase they attack people /datum/ai_controller/basic_controller/mouse/rat blackboard = list( diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 745a48c948c..828a78ccfb1 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -436,7 +436,7 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/hierophant/CanAttack(atom/the_target) . = ..() - if(istype(the_target, /mob/living/simple_animal/hostile/asteroid/hivelordbrood)) //ignore temporary targets in favor of more permanent targets + if(istype(the_target, /mob/living/basic/legion_brood)) //ignore temporary targets in favor of more permanent targets return FALSE /mob/living/simple_animal/hostile/megafauna/hierophant/GiveTarget(new_target) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 05695daf59a..777cb3b878f 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -141,10 +141,9 @@ ///Attack proc. Spawns a singular legion skull. /mob/living/simple_animal/hostile/megafauna/legion/proc/create_legion_skull() - var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/A = new(loc) - A.GiveTarget(target) - A.friends = friends - A.faction = faction + var/mob/living/basic/legion_brood/minion = new(loc) + minion.assign_creator(src) + minion.ai_controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET] = target //CHARGE @@ -210,7 +209,7 @@ var/mob/living/living_target = target switch(living_target.stat) if(UNCONSCIOUS, HARD_CRIT) - var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/legion = new(loc) + var/mob/living/basic/legion_brood/legion = new(loc) legion.infest(living_target) 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 a705e11465b..ec6c843080c 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 @@ -328,10 +328,9 @@ /obj/item/crusher_trophy/legionnaire_spine/on_mark_detonation(mob/living/target, mob/living/user) if(!prob(bonus_value) || target.stat == DEAD) return - var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/A = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion(user.loc) - A.GiveTarget(target) - A.friends += user - A.faction = user.faction.Copy() + var/mob/living/basic/legion_brood/minion = new (user.loc) + minion.assign_creator(user) + minion.ai_controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET] = target /obj/item/crusher_trophy/legionnaire_spine/attack_self(mob/user) if(!isliving(user)) @@ -342,9 +341,9 @@ to_chat(LivingUser, "You need to wait longer to use this again.") return LivingUser.visible_message(span_boldwarning("[LivingUser] shakes the [src] and summons a legion skull!")) - var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/LegionSkull = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion(LivingUser.loc) - LegionSkull.friends += LivingUser - LegionSkull.faction = LivingUser.faction.Copy() + + var/mob/living/basic/legion_brood/minion = new (LivingUser.loc) + minion.assign_creator(LivingUser) next_use_time = world.time + 4 SECONDS #undef LEGIONNAIRE_CHARGE diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm deleted file mode 100644 index 20ac9642e01..00000000000 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ /dev/null @@ -1,332 +0,0 @@ -/mob/living/simple_animal/hostile/asteroid/hivelord - name = "hivelord" - desc = "A levitating swarm of tiny creatures which act as a single individual. When threatened or hunting they rapidly replicate additional short-lived bodies." - icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' - icon_state = "hivelord" - icon_living = "hivelord" - icon_aggro = "hivelord_alert" - icon_dead = "hivelord_dead" - icon_gib = "syndicate_gib" - mob_biotypes = MOB_ORGANIC - move_to_delay = 14 - ranged = 1 - vision_range = 5 - aggro_vision_range = 9 - speed = 3 - maxHealth = 75 - health = 75 - harm_intent_damage = 5 - melee_damage_lower = 0 - melee_damage_upper = 0 - attack_verb_continuous = "weakly tackles" - attack_verb_simple = "weakly tackles" - speak_emote = list("telepathically cries") - attack_sound = 'sound/weapons/pierce.ogg' - throw_message = "passes between the bodies of the" - ranged_cooldown = 0 - ranged_cooldown_time = 20 - obj_damage = 0 - environment_smash = ENVIRONMENT_SMASH_NONE - retreat_distance = 3 - minimum_distance = 3 - pass_flags = PASSTABLE - loot = list(/obj/item/organ/internal/monster_core/regenerative_core) - var/brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood - var/has_clickbox = TRUE - -/mob/living/simple_animal/hostile/asteroid/hivelord/Initialize(mapload) - . = ..() - if(has_clickbox) - AddComponent(/datum/component/clickbox, icon_state = "hivelord", max_scale = INFINITY, dead_state = "hivelord_dead") //they writhe so much. - -/mob/living/simple_animal/hostile/asteroid/hivelord/OpenFire(the_target) - if(world.time < ranged_cooldown) - return - var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/brood = new brood_type(src.loc) - brood.flags_1 |= (flags_1 & ADMIN_SPAWNED_1) - brood.GiveTarget(target) - brood.friends = friends - brood.faction = faction.Copy() - ranged_cooldown = world.time + ranged_cooldown_time - -/mob/living/simple_animal/hostile/asteroid/hivelord/AttackingTarget() - OpenFire() - return TRUE - -/mob/living/simple_animal/hostile/asteroid/hivelord/death(gibbed) - mouse_opacity = MOUSE_OPACITY_ICON - return ..() - -//A fragile but rapidly produced creature -/mob/living/simple_animal/hostile/asteroid/hivelordbrood - name = "hivelord brood" - desc = "Short-lived attack form of the hivelord. One isn't much of a threat, but..." - icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' - icon_state = "hivelord_brood" - icon_living = "hivelord_brood" - icon_aggro = "hivelord_brood" - icon_dead = "hivelord_brood" - icon_gib = "syndicate_gib" - move_to_delay = 1 - friendly_verb_continuous = "buzzes near" - friendly_verb_simple = "buzz near" - vision_range = 10 - speed = 3 - maxHealth = 1 - health = 1 - harm_intent_damage = 5 - melee_damage_lower = 2 - melee_damage_upper = 2 - attack_verb_continuous = "slashes" - attack_verb_simple = "slash" - speak_emote = list("telepathically cries") - attack_sound = 'sound/weapons/pierce.ogg' - attack_vis_effect = ATTACK_EFFECT_SLASH - throw_message = "falls right through the strange body of the" - obj_damage = 0 - environment_smash = ENVIRONMENT_SMASH_NONE - pass_flags = PASSTABLE | PASSMOB - density = FALSE - del_on_death = 1 - var/clickbox_state = "hivelord" - var/clickbox_max_scale = INFINITY - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/Initialize(mapload) - . = ..() - addtimer(CALLBACK(src, PROC_REF(death)), 10 SECONDS) - AddElement(/datum/element/simple_flying) - AddComponent(/datum/component/swarming) - AddComponent(/datum/component/clickbox, icon_state = clickbox_state, max_scale = clickbox_max_scale) - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/death(gibbed) - if (!gibbed) - new /obj/effect/temp_visual/hive_spawn_wither(get_turf(src), /* copy_from = */ src) - return ..() - -//Legion -/mob/living/simple_animal/hostile/asteroid/hivelord/legion - name = "legion" - desc = "You can still see what was once a human under the shifting mass of corruption." - icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' - icon_state = "legion" - icon_living = "legion" - icon_aggro = "legion" - icon_dead = "legion" - icon_gib = "syndicate_gib" - mob_biotypes = MOB_ORGANIC|MOB_HUMANOID - mouse_opacity = MOUSE_OPACITY_ICON - obj_damage = 60 - melee_damage_lower = 15 - melee_damage_upper = 15 - attack_verb_continuous = "lashes out at" - attack_verb_simple = "lash out at" - speak_emote = list("echoes") - attack_sound = 'sound/weapons/pierce.ogg' - throw_message = "bounces harmlessly off of" - crusher_loot = /obj/item/crusher_trophy/legion_skull - loot = list(/obj/item/organ/internal/monster_core/regenerative_core/legion) - brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion - del_on_death = 1 - stat_attack = HARD_CRIT - robust_searching = 1 - has_clickbox = FALSE - var/dwarf_mob = FALSE - var/snow_legion = FALSE - var/mob/living/carbon/human/stored_mob - -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/Initialize(mapload) - . = ..() - AddElement(/datum/element/content_barfer) - -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf - name = "dwarf legion" - desc = "You can still see what was once a rather small human under the shifting mass of corruption." - icon_state = "dwarf_legion" - icon_living = "dwarf_legion" - icon_aggro = "dwarf_legion" - icon_dead = "dwarf_legion" - maxHealth = 60 - health = 60 - speed = 2 //faster! - crusher_drop_mod = 20 - dwarf_mob = TRUE - -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/death(gibbed) - visible_message(span_warning("The skulls on [src] wail in anger as they flee from their dying host!")) - if (!isnull(stored_mob)) - stored_mob = null - return ..() - - // We didn't contain a real body so spawn a random one - var/turf/our_turf = get_turf(src) - if(our_turf) - if(from_spawner) - new /obj/effect/mob_spawn/corpse/human/charredskeleton(our_turf) - else if(dwarf_mob) - new /obj/effect/mob_spawn/corpse/human/legioninfested/dwarf(our_turf) - else if(snow_legion) - new /obj/effect/mob_spawn/corpse/human/snowlegioninfested(our_turf) - else - new /obj/effect/mob_spawn/corpse/human/legioninfested(our_turf) - return ..() - -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril - from_spawner = TRUE - -//Legion skull -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion - name = "legion" - desc = "One of many." - icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' - icon_state = "legion_head" - icon_living = "legion_head" - icon_aggro = "legion_head" - icon_dead = "legion_head" - icon_gib = "syndicate_gib" - friendly_verb_continuous = "buzzes near" - friendly_verb_simple = "buzz near" - vision_range = 10 - maxHealth = 1 - health = 5 - harm_intent_damage = 5 - melee_damage_lower = 12 - melee_damage_upper = 12 - attack_verb_continuous = "bites" - attack_verb_simple = "bite" - attack_vis_effect = ATTACK_EFFECT_BITE - speak_emote = list("echoes") - attack_sound = 'sound/weapons/pierce.ogg' - throw_message = "is shrugged off by" - del_on_death = TRUE - stat_attack = HARD_CRIT - robust_searching = 1 - clickbox_state = "sphere" - clickbox_max_scale = 2 - var/can_infest_dead = FALSE - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/Life(seconds_per_tick = SSMOBS_DT, times_fired) - . = ..() - if(stat == DEAD || !isturf(loc)) - return - for(var/mob/living/carbon/human/victim in range(src, 1)) //Only for corpse right next to/on same tile - switch(victim.stat) - if(UNCONSCIOUS, HARD_CRIT) - infest(victim) - return //This will qdelete the legion. - if(DEAD) - if(can_infest_dead) - infest(victim) - return //This will qdelete the legion. - -///Create a legion at the location of a corpse. Exists so that legion subtypes can override it with their own type of legion. -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/make_legion(mob/living/carbon/human/H) - if(HAS_TRAIT(H, TRAIT_DWARF)) //dwarf legions aren't just fluff! - return new /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf(H.loc) - else - return new /mob/living/simple_animal/hostile/asteroid/hivelord/legion(H.loc) - -///Create a new legion using the supplied human H -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H) - visible_message(span_warning("[name] burrows into the flesh of [H]!")) - var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L = make_legion(H) - visible_message(span_warning("[L] staggers to [L.p_their()] feet!")) - H.investigate_log("has been killed by hivelord infestation.", INVESTIGATE_DEATHS) - H.death() - H.adjustBruteLoss(1000) - L.stored_mob = H - H.forceMove(L) - qdel(src) - -//Advanced Legion is slightly tougher to kill and can raise corpses (revive other legions) -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/advanced - stat_attack = DEAD - maxHealth = 120 - health = 120 - brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/advanced - icon_state = "dwarf_legion" - icon_living = "dwarf_legion" - icon_aggro = "dwarf_legion" - icon_dead = "dwarf_legion" - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/advanced - stat_attack = DEAD - can_infest_dead = TRUE - -//Legion that spawns Legions -/mob/living/simple_animal/hostile/big_legion - name = "legion" - desc = "One of many." - icon = 'icons/mob/simple/lavaland/64x64megafauna.dmi' - icon_state = "legion" - icon_living = "legion" - icon_dead = "legion" - health_doll_icon = "legion" - health = 450 - maxHealth = 450 - melee_damage_lower = 20 - melee_damage_upper = 20 - anchored = FALSE - AIStatus = AI_ON - stop_automated_movement = FALSE - wander = TRUE - maxbodytemp = INFINITY - layer = MOB_LAYER - del_on_death = TRUE - sentience_type = SENTIENCE_BOSS - loot = list(/obj/item/organ/internal/monster_core/regenerative_core/legion = 3, /obj/effect/mob_spawn/corpse/human/legioninfested = 5) - move_to_delay = 14 - vision_range = 5 - aggro_vision_range = 9 - speed = 3 - faction = list(FACTION_MINING) - weather_immunities = list(TRAIT_LAVA_IMMUNE, TRAIT_ASHSTORM_IMMUNE) - obj_damage = 30 - environment_smash = ENVIRONMENT_SMASH_STRUCTURES - // Purple, but bright cause we're gonna need to spot mobs on lavaland - lighting_cutoff_red = 35 - lighting_cutoff_green = 20 - lighting_cutoff_blue = 45 - - -/mob/living/simple_animal/hostile/big_legion/Initialize(mapload) - .=..() - AddComponent(\ - /datum/component/spawner,\ - spawn_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion),\ - spawn_time = 20 SECONDS,\ - max_spawned = 3,\ - spawn_text = "peels itself off from",\ - faction = faction,\ - ) - -// Snow Legion -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow - name = "snow legion" - desc = "You can still see what was once a human under the shifting snowy mass, clearly decorated by a clown." - icon = 'icons/mob/simple/icemoon/icemoon_monsters.dmi' - icon_state = "snowlegion" - icon_living = "snowlegion" - icon_aggro = "snowlegion_alive" - icon_dead = "snowlegion" - crusher_loot = /obj/item/crusher_trophy/legion_skull - loot = list(/obj/item/organ/internal/monster_core/regenerative_core/legion) - brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow - weather_immunities = list(TRAIT_SNOWSTORM_IMMUNE) - snow_legion = TRUE - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow/make_legion(mob/living/carbon/human/H) - return new /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow(H.loc) - -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/portal - from_spawner = TRUE - -// Snow Legion skull -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow - name = "snow legion" - desc = "One of many." - icon = 'icons/mob/simple/icemoon/icemoon_monsters.dmi' - icon_state = "snowlegion_head" - icon_living = "snowlegion_head" - icon_aggro = "snowlegion_head" - icon_dead = "snowlegion_head" - weather_immunities = list(TRAIT_SNOWSTORM_IMMUNE) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index c5b240b481f..0e0e208c596 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -537,3 +537,33 @@ "[key_name(src)] manually changed selected zone", data, ) + +/** + * Returns an associative list of the logs of a certain amount of lines spoken recently by this mob + * copy_amount - number of lines to return + * line_chance - chance to return a line, if you don't want just the most recent x lines + */ +/mob/proc/copy_recent_speech(copy_amount = LING_ABSORB_RECENT_SPEECH, line_chance = 100) + var/list/recent_speech = list() + var/list/say_log = list() + var/log_source = logging + for(var/log_type in log_source) + var/nlog_type = text2num(log_type) + if(nlog_type & LOG_SAY) + var/list/reversed = log_source[log_type] + if(islist(reversed)) + say_log = reverse_range(reversed.Copy()) + break + + for(var/spoken_memory in say_log) + if(recent_speech.len >= copy_amount) + break + if(!prob(line_chance)) + continue + recent_speech[spoken_memory] = splittext(say_log[spoken_memory], "\"", 1, 0, TRUE)[3] + + var/list/raw_lines = list() + for (var/key as anything in recent_speech) + raw_lines += recent_speech[key] + + return raw_lines diff --git a/code/modules/mob_spawn/corpses/mining_corpses.dm b/code/modules/mob_spawn/corpses/mining_corpses.dm index c0ea4b6af42..8b7ad474b16 100644 --- a/code/modules/mob_spawn/corpses/mining_corpses.dm +++ b/code/modules/mob_spawn/corpses/mining_corpses.dm @@ -16,18 +16,21 @@ //Legion infested mobs -//dwarf type which spawns dwarfy versions -/obj/effect/mob_spawn/corpse/human/legioninfested/dwarf - -/obj/effect/mob_spawn/corpse/human/legioninfested/dwarf/special(mob/living/carbon/human/spawned_human) - . = ..() - spawned_human.dna.add_mutation(/datum/mutation/human/dwarfism) - -//main type, rolls a pool of legion victims +/// Mob spawner used by Legion to spawn costumed bodies /obj/effect/mob_spawn/corpse/human/legioninfested brute_damage = 1000 /obj/effect/mob_spawn/corpse/human/legioninfested/Initialize(mapload) + outfit = select_outfit() + return ..() + +/obj/effect/mob_spawn/corpse/human/legioninfested/special(mob/living/carbon/human/spawned_human) + . = ..() + var/obj/item/organ/internal/legion_tumour/cancer = new() + cancer.Insert(spawned_human, special = TRUE, drop_if_replaced = FALSE) + +/// Returns the outfit worn by our corpse +/obj/effect/mob_spawn/corpse/human/legioninfested/proc/select_outfit() var/corpse_theme = pick_weight(list( "Miner" = 64, "Clown" = 5, @@ -40,26 +43,36 @@ "Shadow", )) = 4, )) + switch(corpse_theme) if("Miner") - outfit = /datum/outfit/consumed_miner + return /datum/outfit/consumed_miner if("Ashwalker") - outfit = /datum/outfit/consumed_ashwalker + return /datum/outfit/consumed_ashwalker if("Golem") - outfit = /datum/outfit/consumed_golem + return /datum/outfit/consumed_golem if("Clown") - outfit = /datum/outfit/consumed_clown + return /datum/outfit/consumed_clown if("Cultist") - outfit = /datum/outfit/consumed_cultist + return /datum/outfit/consumed_cultist if("Dame") - outfit = /datum/outfit/consumed_dame + return /datum/outfit/consumed_dame if("Operative") - outfit = /datum/outfit/syndicatecommandocorpse/lessenedgear + return /datum/outfit/syndicatecommandocorpse/lessenedgear if("Shadow") - outfit = /datum/outfit/consumed_shadowperson - . = ..() + return /datum/outfit/consumed_shadowperson -/obj/effect/mob_spawn/corpse/human/snowlegioninfested/Initialize(mapload) +/// Corpse spawner used by dwarf legions to make small corpses +/obj/effect/mob_spawn/corpse/human/legioninfested/dwarf + +/obj/effect/mob_spawn/corpse/human/legioninfested/dwarf/special(mob/living/carbon/human/spawned_human) + . = ..() + spawned_human.dna.add_mutation(/datum/mutation/human/dwarfism) + +/// Corpse spawner used by snow legions with alternate costumes +/obj/effect/mob_spawn/corpse/human/legioninfested/snow + +/obj/effect/mob_spawn/corpse/human/legioninfested/snow/select_outfit() var/corpse_theme = pick_weight(list( "Miner" = 64, "Clown" = 5, @@ -72,24 +85,49 @@ "Shadow", )) = 4, )) + switch(corpse_theme) if("Miner") - outfit = /datum/outfit/consumed_miner + return /datum/outfit/consumed_miner if("Settler") - outfit = /datum/outfit/consumed_ice_settler + return /datum/outfit/consumed_ice_settler if("Heremoth") - outfit = /datum/outfit/consumed_heremoth + return /datum/outfit/consumed_heremoth if("Clown") - outfit = /datum/outfit/consumed_clown + return /datum/outfit/consumed_clown if("Cultist") - outfit = /datum/outfit/consumed_cultist + return /datum/outfit/consumed_cultist if("Golem") - outfit = /datum/outfit/consumed_golem + return /datum/outfit/consumed_golem if("Operative") - outfit = /datum/outfit/syndicatecommandocorpse/lessenedgear + return /datum/outfit/syndicatecommandocorpse/lessenedgear if("Shadow") - outfit = /datum/outfit/consumed_shadowperson + return /datum/outfit/consumed_shadowperson + +/// Creates a dead legion-infested skeleton +/obj/effect/mob_spawn/corpse/human/legioninfested/skeleton + name = "legion-infested skeleton" + mob_name = "skeleton" + mob_species = /datum/species/skeleton + +/obj/effect/mob_spawn/corpse/human/legioninfested/skeleton/select_outfit() + return null + +/obj/effect/mob_spawn/corpse/human/legioninfested/skeleton/special(mob/living/carbon/human/spawned_human) . = ..() + spawned_human.gender = NEUTER + +/// Creates a dead and burned legion-infested skeleton +/obj/effect/mob_spawn/corpse/human/legioninfested/skeleton/charred + name = "charred legion-infested skeleton" + mob_name = "charred skeleton" + brute_damage = 0 + burn_damage = 1000 + +/obj/effect/mob_spawn/corpse/human/legioninfested/skeleton/charred/special(mob/living/carbon/human/spawned_human) + . = ..() + spawned_human.color = "#454545" + /datum/outfit/consumed_miner name = "Legion-Consumed Miner" diff --git a/code/modules/procedural_mapping/mapGenerators/asteroid.dm b/code/modules/procedural_mapping/mapGenerators/asteroid.dm index ab2bc6f2ca4..bf6c84ebf88 100644 --- a/code/modules/procedural_mapping/mapGenerators/asteroid.dm +++ b/code/modules/procedural_mapping/mapGenerators/asteroid.dm @@ -22,7 +22,7 @@ spawnableAtoms = list( /mob/living/basic/mining/basilisk = 10, /mob/living/basic/mining/goliath/ancient = 10, - /mob/living/simple_animal/hostile/asteroid/hivelord = 10, + /mob/living/basic/mining/hivelord = 10, ) diff --git a/code/modules/surgery/organs/_organ.dm b/code/modules/surgery/organs/_organ.dm index 04103648fda..4a1e3cde555 100644 --- a/code/modules/surgery/organs/_organ.dm +++ b/code/modules/surgery/organs/_organ.dm @@ -57,6 +57,8 @@ var/list/organ_traits /// Status Effects that are given to the holder of the organ. var/list/organ_effects + /// String displayed when the organ has decayed. + var/failing_desc = "has decayed for too long, and has turned a sickly color. It probably won't work without repairs." // Players can look at prefs before atoms SS init, and without this // they would not be able to see external organs, such as moth wings. @@ -242,10 +244,7 @@ INITIALIZE_IMMEDIATE(/obj/item/organ) . += span_notice("It should be inserted in the [parse_zone(zone)].") if(organ_flags & ORGAN_FAILING) - if(IS_ROBOTIC_ORGAN(src)) - . += span_warning("[src] seems to be broken.") - return - . += span_warning("[src] has decayed for too long, and has turned a sickly color. It probably won't work without repairs.") + . += span_warning("[src] [failing_desc]") return if(damage > high_threshold) diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm index 0a7332c0dd8..f0578832969 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm @@ -4,6 +4,7 @@ desc = "A state-of-the-art implant that improves a baseline's functionality." visual = FALSE organ_flags = ORGAN_ROBOTIC + failing_desc = "seems to be broken." var/implant_color = "#FFFFFF" var/implant_overlay diff --git a/code/modules/surgery/organs/internal/ears/_ears.dm b/code/modules/surgery/organs/internal/ears/_ears.dm index ea642879430..7d2b0f3c549 100644 --- a/code/modules/surgery/organs/internal/ears/_ears.dm +++ b/code/modules/surgery/organs/internal/ears/_ears.dm @@ -105,6 +105,7 @@ desc = "A basic cybernetic organ designed to mimic the operation of ears." damage_multiplier = 0.9 organ_flags = ORGAN_ROBOTIC + failing_desc = "seems to be broken." /obj/item/organ/internal/ears/cybernetic/upgraded name = "cybernetic ears" diff --git a/code/modules/surgery/organs/internal/eyes/_eyes.dm b/code/modules/surgery/organs/internal/eyes/_eyes.dm index a6a749f2621..5a6702738be 100644 --- a/code/modules/surgery/organs/internal/eyes/_eyes.dm +++ b/code/modules/surgery/organs/internal/eyes/_eyes.dm @@ -292,6 +292,7 @@ icon_state = "cybernetic_eyeballs" desc = "Your vision is augmented." organ_flags = ORGAN_ROBOTIC + failing_desc = "seems to be broken." /obj/item/organ/internal/eyes/robotic/emp_act(severity) . = ..() @@ -630,7 +631,7 @@ if(QDELETED(eye_owner) || !ishuman(eye_owner)) //Other carbon mobs don't have eye color. return - + if(!eye.on) eye_icon_state = initial(eye_icon_state) overlay_ignore_lighting = FALSE diff --git a/code/modules/surgery/organs/internal/heart/_heart.dm b/code/modules/surgery/organs/internal/heart/_heart.dm index ce4b948c653..e553f8f1307 100644 --- a/code/modules/surgery/organs/internal/heart/_heart.dm +++ b/code/modules/surgery/organs/internal/heart/_heart.dm @@ -203,6 +203,7 @@ base_icon_state = "heart-c" organ_flags = ORGAN_ROBOTIC maxHealth = STANDARD_ORGAN_THRESHOLD*0.75 //This also hits defib timer, so a bit higher than its less important counterparts + failing_desc = "seems to be broken." var/dose_available = FALSE var/rid = /datum/reagent/medicine/epinephrine diff --git a/code/modules/surgery/organs/internal/liver/_liver.dm b/code/modules/surgery/organs/internal/liver/_liver.dm index afeb8decde4..4eb5c665db6 100755 --- a/code/modules/surgery/organs/internal/liver/_liver.dm +++ b/code/modules/surgery/organs/internal/liver/_liver.dm @@ -245,6 +245,7 @@ /obj/item/organ/internal/liver/cybernetic name = "basic cybernetic liver" desc = "A very basic device designed to mimic the functions of a human liver. Handles toxins slightly worse than an organic liver." + failing_desc = "seems to be broken." icon_state = "liver-c" organ_flags = ORGAN_ROBOTIC maxHealth = STANDARD_ORGAN_THRESHOLD*0.5 diff --git a/code/modules/surgery/organs/internal/lungs/_lungs.dm b/code/modules/surgery/organs/internal/lungs/_lungs.dm index 5e4e0648067..71dc305ac5f 100644 --- a/code/modules/surgery/organs/internal/lungs/_lungs.dm +++ b/code/modules/surgery/organs/internal/lungs/_lungs.dm @@ -837,6 +837,7 @@ /obj/item/organ/internal/lungs/cybernetic name = "basic cybernetic lungs" desc = "A basic cybernetic version of the lungs found in traditional humanoid entities." + failing_desc = "seems to be broken." icon_state = "lungs-c" organ_flags = ORGAN_ROBOTIC maxHealth = STANDARD_ORGAN_THRESHOLD * 0.5 diff --git a/code/modules/surgery/organs/internal/stomach/_stomach.dm b/code/modules/surgery/organs/internal/stomach/_stomach.dm index c817e7209db..63fefca156c 100644 --- a/code/modules/surgery/organs/internal/stomach/_stomach.dm +++ b/code/modules/surgery/organs/internal/stomach/_stomach.dm @@ -288,6 +288,7 @@ /obj/item/organ/internal/stomach/cybernetic name = "basic cybernetic stomach" desc = "A basic device designed to mimic the functions of a human stomach" + failing_desc = "seems to be broken." icon_state = "stomach-c" organ_flags = ORGAN_ROBOTIC maxHealth = STANDARD_ORGAN_THRESHOLD * 0.5 diff --git a/code/modules/surgery/organs/internal/tongue/_tongue.dm b/code/modules/surgery/organs/internal/tongue/_tongue.dm index 94f9abafa14..b53bcc5404e 100644 --- a/code/modules/surgery/organs/internal/tongue/_tongue.dm +++ b/code/modules/surgery/organs/internal/tongue/_tongue.dm @@ -536,6 +536,7 @@ GLOBAL_LIST_INIT(english_to_zombie, list()) /obj/item/organ/internal/tongue/robot name = "robotic voicebox" desc = "A voice synthesizer that can interface with organic lifeforms." + failing_desc = "seems to be broken." organ_flags = ORGAN_ROBOTIC icon_state = "tonguerobot" say_mod = "states" diff --git a/code/modules/unit_tests/simple_animal_freeze.dm b/code/modules/unit_tests/simple_animal_freeze.dm index ad1eacc3e6d..824011366a7 100644 --- a/code/modules/unit_tests/simple_animal_freeze.dm +++ b/code/modules/unit_tests/simple_animal_freeze.dm @@ -64,22 +64,10 @@ /mob/living/simple_animal/hostile/asteroid/gutlunch/grublunch, /mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck, /mob/living/simple_animal/hostile/asteroid/gutlunch/guthen, - /mob/living/simple_animal/hostile/asteroid/hivelord, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/advanced, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/portal, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, - /mob/living/simple_animal/hostile/asteroid/hivelordbrood, - /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion, - /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/advanced, - /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow, /mob/living/simple_animal/hostile/asteroid/ice_demon, /mob/living/simple_animal/hostile/asteroid/polarbear, /mob/living/simple_animal/hostile/asteroid/polarbear/lesser, /mob/living/simple_animal/hostile/asteroid/wolf, - /mob/living/simple_animal/hostile/big_legion, /mob/living/simple_animal/hostile/construct, /mob/living/simple_animal/hostile/construct/artificer, /mob/living/simple_animal/hostile/construct/artificer/angelic, diff --git a/icons/mob/simple/lavaland/lavaland_monsters.dmi b/icons/mob/simple/lavaland/lavaland_monsters.dmi index 13c37dca594f0c3981fc98f78b99acf8a67aa641..38b78cf468f1f135abe20bd2d2dabbfd2502dc2c 100644 GIT binary patch literal 134470 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

$<3d(Ybr`>KRge;YnsRdYA9ImLIcZ#;- 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

Hc*3u{nj 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

oRDp#;LgJum>nn(xavaK>`)3=YC0sXfXw|$lr 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 diff --git a/icons/mob/telegraphing/telegraph.dmi b/icons/mob/telegraphing/telegraph.dmi index d5e03419cd89863617c43bbf2c30be4fa31de2f3..de525ead4ee9a7d49e279477b7d29a9226b3bfbe 100644 GIT binary patch delta 1959 zcmV;Y2Uz&l4Yd!DB!97bR9JLGWpiV4X>fFDZ*Bkpc$}Tgu?oU46ouhAd5S~325GDv zvq+0{XkS5Mb8UjLg(O;hdk2MrAc$PfaEJfPv2PA-kGgC5okDc;1clwE;B0XwStyiS z&Mdjnrq>gbP6UN4=`d0{4lWFyGR}+(5ekyCbI@0cP^dUFtHDS zYL()Bt8jAZOINO)6jDge0xfPbP>^dMFE{W10CF^ajk;_36U3%i@^f{~!TCPn7`$kXHs(fOQ174hUFTZoSt0 zlKRTdXyKRgN!nXo1hzc59Ms4Ff#T=3$(o;2-}5~G)PL@2`Kfwa+lyKO)Puf`<0mH% zc3)eT!>ye=G5%4*KU5a`O`4bG+Y~?z>soN@ZRKxWCAaW%rY$Xh>!=LX3z~tN1qD`a z7HachZ?2u{7W)B4L%JC1ZHM0tpa8TFl4B8Yu-ZsswJ`1pO&hCbp!GUHT3@RPWyPQS z9I*Cq&3|DHzvRBgZ-QC@)LV#|CfqtGaMm0cM+?7&BgUFvY6VdIRRL)2XN+9(7Hjya zho$Au)1W$__FDgbPJK{2q5NCAf}woeA={cC%WuuEX@klY%xMUP9X^J5=Vu8((wN;o zhkEB13m|YW#Eu~62mv@p2*5c)0L~EtaE=gwbAN;YoFfF_93cSb2mv@p2*5c)0L~Et zaE=gwbA$k#W4rSK0=C#1bY188FQH66)052)vvL6mvh`@k%z_%vQvl`EJ#2XY%x zD{sA;=GNP5-cIPr&zZK$baW9|n|q*tV}Io}&>pt1n%O$ioYp*VmK7kG%kJjrkuGF+ z`~6}waMTaf@^CBy4ptjUdVN@1@_-2Ib%3-!YiE|0pZj^8YYx}$FTEvDKmV8jTF_^OH3JCi>~0OyDiAcOS+PU@DP!5<@lbHoV1 z1msoQeY<-I00Fk`iko+JVT1rSL9Y=g1VAA9_seT}zm~U^d&CG7oN?gj9CKL1wJjrIgu?k(&w0=XB! zbzLvuy~c+;d;aIt<6Z#XvE4Cov-wBDVg#a|7fS$^ft4D}=D#yg0km#P>=9=t*_64v zpMHcN0Th5VI0B1j*ZdIfn~b%yg}Zg{~L&*r98Ln@}GlS7LVNW)O>0E29|snKeUeFq;vR9 z1+bzG-ZB)oeAn;s`#Hg(Qh$7#0yy&}XFksJNbK>}`5K$5G!F`@k4l%fd=A9N#7V6H zi-i|-Z?s!jDux{(Iwp=Y#9O?5l>N>X)rwQnYCsQ*t}S-bJ*b@2eJtgtzKL7$d%+fe zGpILzuc?Gv?@azJj)|Mie`mz5VCRS(LC*2|c=(KayVYHRbw1~Q32|f)ls?L~4cH>A z00pk&cq@nbTG|dE1%Hso2jtiCK9TLYA0 z(gcF+jPi{yJHD$KSi4ebcSU;B%j<3c1yI|pAdQX7>#@eHHGjt^SGDs;iXgq|}ivccKa7yxkH20TRDOi4hRb%63c79s@m)F5=aY002ovPDHLkV1j~Pvi1M~ delta 1734 zcmV;%208h)57rHkB!8)TR9JLGWpiV4X>fFDZ*Bkpc$|%lu?mAQ6h-H}uej(M#MC-w zDN1qBUnr@0H36%Tgi8OuLkmKoP%dYtPc?yio`9LJ4a~LBrMP734e{UsO1-X%B?0?4*#|) z`Pp8$`t-xAc27wql~g1GZ+@}RP?Vz`8Z>=JFQUFjuy$2Ze*gdl=t)FDRCt{2olA1u zFbqT|sT?Z1_%uG0Pvh)ztSnMfrN{)(0Kwm&-)0hh*p$@b2O{ZjpP!!(QkU zTEf>vpZim%v?`uO_n*iy+WzRdh<3E@ z)bwW+|I)eIHAP;QFI9k5tVco9?bYvXCHLqf)mBu$w^WwW6}y3v28DLsDq8j7Xswgd zcE{gOwHH=3R$z!t{nB5NWrq|nr%F@5a9JKtP-QkG7 zXMZGaqJQ=RthZ3>nxJV|AZ-p!qenj@5R#hgR2j8-TnP z91&C;8lX5dKyhe*;?Mxap#h3R0~Ch_C=Lx!9Df?1I5a?UXn^9-0L7sJibDew=eYF& zNG?YV2_xg^8WegzE_+ZW8Bf>x0M>CQ%%-VM+WG+2SoGbddXayay#S=qXU*e}WQ@!~ zTpvK9caj4Qu@~m-;N6Pu)!oon(>LP)qZc=dq=_E8VrI^1`okB97&$xFnwvOcxfyG^ z^?zu6D?P9N(Dea&N(02n=sbF_wsmes7dfKuNe{jE;q?KKwE;4mpS8+XW-%J+8fWMu z=}FH;IzF^MKxEE-K^Ie+W8Tpi!JQdZJpVjj(^;5s2AX=%U&(e<88>EcKz;d;H(Rb>L5J= zgxyM#Q6JW}Tp%L59pFtbJD3&KM?bHl-Qm{$t%rnJZz0kZ9nli^A-e(R4NI@kX9-XomH;49RPFTP?lgdcHtY&L zc6VdY0EaND1fl^9p7H(r?|pyk*k0`!B@iQl3eShx`u}|&a(+ZVdhQcTpS=JF(h%(# zn)hEVPoBKd00$sF^y{x>6bTwYAb)F2VCLAu5hV}}pwN4hSJ(eYIy69Wj$0;fwf;;p zN+9cgK?ca2SQ%lp{wt#zpm$K>h1V_dL<4vyM`-ieBNu|c$yz>p^n1>e z^0p)9GI7^!NN7^(s*Enit*O-Bhq1cUkY@kff30m@kwA3%w|0Eiv?@(g(|_3QL3*)f zV@uU8s{O?Pcjs6)7&*o>MOrI;ddJ6S%rf%6ff+~-S<>@p!*PJ;L!KD}U;Xwz9^>CY zjh^$-bGQE-+|zhO&$sH!>^JbPr|C=W7-T!5pK5>|``|rAanE=C5!a7Q4)yY-3P9>h zq&~hLJoicGdBewEee0WemVOnE_?tna^+#1DXu2!)k60#dwf-x^QNhJo z9te7Sdt04_()@Tl*4Ke#9UK!_od2qT5rLD|_7et5RDmTxacF?z(0>5Mp#h3R0~BX@ zB#?oiwZM@;Yd8{vI%nekt6^R&W3U8R3)=w2F%4j?Jkc7U!Rp`~pb|iO=&i{kG{ISj z2C#-!WsSBWYhfFpIIsa$&W$7E5Dm~8u;`r|cTI=v$Ko8lX5dKyhe*;`|o}kXq)W<_41WummU$ c13|_43(Ts}cujI5x&QzG07*qoM6N<$f^nZ!?*IS* diff --git a/icons/obj/medical/organs/mining_organs.dmi b/icons/obj/medical/organs/mining_organs.dmi index f3fc298284ba6a7e5eb490f85d762412b802d96b..172f94001ffafab8b0e3cc6ff33d7231cc2595c8 100644 GIT binary patch delta 2407 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 bf)E3S#Rhnby`W6_VF2#?5ALHmpC jobId % 10 === 0; @@ -49,6 +43,16 @@ const jobToColor = (jobId) => { return COLORS.department.other; }; +const statToIcon = (life_status) => { + switch (life_status) { + case STAT_LIVING: + return 'heart'; + case STAT_DEAD: + return 'skull'; + } + return 'heartbeat'; +}; + const healthToAttribute = (oxy, tox, burn, brute, attributeList) => { const healthSum = oxy + tox + burn + brute; const level = Math.min(Math.max(Math.ceil(healthSum / 25), 0), 5); @@ -129,13 +133,7 @@ const CrewTableEntry = (props, context) => { {oxydam !== undefined ? ( { )} size={1} /> - ) : life_status ? ( + ) : life_status !== STAT_DEAD ? ( ) : ( @@ -162,7 +160,7 @@ const CrewTableEntry = (props, context) => { {'/'} - ) : life_status ? ( + ) : life_status !== STAT_DEAD ? ( 'Alive' ) : ( 'Dead' diff --git a/tools/UpdatePaths/Scripts/78624_simple_to_basic_legion.txt b/tools/UpdatePaths/Scripts/78624_simple_to_basic_legion.txt new file mode 100644 index 00000000000..bf397a83bb2 --- /dev/null +++ b/tools/UpdatePaths/Scripts/78624_simple_to_basic_legion.txt @@ -0,0 +1,3 @@ +/mob/living/simple_animal/hostile/asteroid/hivelord : /mob/living/basic/mining/hivelord{@OLD} +/mob/living/simple_animal/hostile/big_legion : /mob/living/basic/mining/legion/big{@OLD} +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/@SUBTYPES : /mob/living/basic/mining/legion/@SUBTYPES{@OLD}