mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 15:17:01 +01:00
museum away mission (#81208)
## About The Pull Request adds a new gateway map, the Nanotrasen Museum it is filled with """"Mannequins"""" and Common Core lore im not putting the preview here because you really should explore it yourself but if youre that curious i think the Checks tab in mapdiffbot would have it this gateway map contains no combat unless you count falling into chasms because you did not carry a light or going into the boarded room with no loot or any incentive with obvious signs that there is the sole enemy on the map in there the loot is the lore ok thanks also makes mines detonate if theyre detonated by a non-mob im pretty sure this couldnt have been intentional trams stop chasms and also the relevant items <details> <summary>on second thought if you want spoilers check this</summary>  </details> ## Why It's Good For The Game more gateway maps = good ## Changelog 🆑 add: nanotrasen museum gateway map /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
/mob/living/basic/statue/mannequin
|
||||
name = "mannequin"
|
||||
desc = "Oh, so this is a dress-up game now."
|
||||
icon = 'icons/mob/human/mannequin.dmi'
|
||||
icon_state = "mannequin_wood_male"
|
||||
icon_living = "mannequin_wood_male"
|
||||
icon_dead = "mannequin_wood_male"
|
||||
health = 300
|
||||
maxHealth = 300
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 30
|
||||
sentience_type = SENTIENCE_ARTIFICIAL
|
||||
ai_controller = /datum/ai_controller/basic_controller/stares_at_people
|
||||
/// the path to a fake item we will hold in our right hand
|
||||
var/obj/item/held_item
|
||||
/// the path to a fake hat we will wear
|
||||
var/obj/item/hat
|
||||
|
||||
/mob/living/basic/statue/mannequin/Initialize(mapload)
|
||||
. = ..()
|
||||
update_appearance()
|
||||
|
||||
/mob/living/basic/statue/mannequin/update_overlays()
|
||||
. = ..()
|
||||
if(held_item)
|
||||
. += mutable_appearance(initial(held_item.righthand_file), initial(held_item.inhand_icon_state))
|
||||
if(hat)
|
||||
. += mutable_appearance(initial(hat.worn_icon), initial(hat.worn_icon_state) || initial(hat.icon_state))
|
||||
|
||||
/datum/ai_controller/basic_controller/stares_at_people
|
||||
blackboard = list(
|
||||
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
|
||||
BB_AGGRO_RANGE = 6,
|
||||
)
|
||||
|
||||
ai_movement = /datum/ai_movement/dumb
|
||||
idle_behavior = null
|
||||
planning_subtrees = list(
|
||||
/datum/ai_planning_subtree/simple_find_target,
|
||||
/datum/ai_planning_subtree/face_target_or_face_initial, // we be creepy and all
|
||||
)
|
||||
|
||||
/datum/ai_planning_subtree/face_target_or_face_initial
|
||||
|
||||
/datum/ai_planning_subtree/face_target_or_face_initial/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
|
||||
if(isnull(controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET]))
|
||||
return
|
||||
var/mob/living/we = controller.pawn
|
||||
controller.blackboard[BB_STARTING_DIRECTION] = we.dir
|
||||
controller.queue_behavior(/datum/ai_behavior/face_target_or_face_initial, BB_BASIC_MOB_CURRENT_TARGET)
|
||||
|
||||
/datum/ai_behavior/face_target_or_face_initial
|
||||
|
||||
/datum/ai_behavior/face_target_or_face_initial/setup(datum/ai_controller/controller, target_key)
|
||||
. = ..()
|
||||
var/atom/movable/target = controller.blackboard[target_key]
|
||||
return ismovable(target) && isturf(target.loc) && ismob(controller.pawn)
|
||||
|
||||
/datum/ai_behavior/face_target_or_face_initial/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
|
||||
. = ..()
|
||||
var/atom/movable/target = controller.blackboard[target_key]
|
||||
var/mob/living/we = controller.pawn
|
||||
if(isnull(target) || get_dist(we, target) > 8)
|
||||
we.dir = controller.blackboard[BB_STARTING_DIRECTION]
|
||||
finish_action(controller, TRUE)
|
||||
else
|
||||
we.face_atom(target)
|
||||
|
||||
/mob/living/basic/statue/mannequin/suspicious
|
||||
name = "mannequin?"
|
||||
desc = "Their eyes follow you."
|
||||
health = 1500 //yeah uhh avoid these
|
||||
maxHealth = 1500
|
||||
ai_controller = /datum/ai_controller/basic_controller/suspicious_mannequin
|
||||
|
||||
/datum/ai_controller/basic_controller/suspicious_mannequin
|
||||
blackboard = list(
|
||||
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
|
||||
BB_AGGRO_RANGE = 14,
|
||||
BB_EMOTE_KEY = "scream", //spooky
|
||||
)
|
||||
|
||||
ai_movement = /datum/ai_movement/jps //threat
|
||||
idle_behavior = null
|
||||
planning_subtrees = list(
|
||||
/datum/ai_planning_subtree/simple_find_target,
|
||||
/datum/ai_planning_subtree/run_emote,
|
||||
/datum/ai_planning_subtree/basic_melee_attack_subtree,
|
||||
)
|
||||
Reference in New Issue
Block a user