mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-16 10:35:41 +01:00
0c3b1b8364
## About The Pull Request Splinter of #94324 Plasmamen no longer take 1.5x brute and burn damgae Plasmamen are now affected by demolition modifier, meaning they take less damage from sharp objects and more damage from blunt objects Skeletons and golems are also affected by demolition modifier ## Why It's Good For The Game As a part of #94324 I was making `MINERAL` mobs affected by demo mod But I realized this would absolutely murder the heck out of Plasmamen! 1.5x brute + another 1.25x brute from blunt objects! But then I realized "wait that kinda makes sense... a lot *more* sense than the arbitrary damage modifier" So here we are Plasmemes are as vulnerable to being smashed to bits as before, but can now boast a minor resistance to being stabbed due to their lack of fleshy bits This feels a bit more appropriate to their skeletal nature without completely removing that aspect of their character. It also gives them a very minor upside (they need it) ## Changelog 🆑 Melbert balance: Plasmamen no longer take flat 1.5x brute and burn damage balance: Plasmamen are now affected by weapon demolition modifier, meaning blunt attacks deal more damage but slashing or piercing deal less damage balance: Skeletons and Golems are also affected by weapon demolition modifier, as well as any mineral type mobs (of which none currently exist) /🆑
160 lines
4.8 KiB
Plaintext
160 lines
4.8 KiB
Plaintext
// A mob which only moves when it isn't being watched by living beings.
|
|
|
|
/mob/living/basic/statue
|
|
name = "statue" // matches the name of the statue with the flesh-to-stone spell
|
|
desc = "An incredibly lifelike marble carving. Its eyes seem to follow you..." // same as an ordinary statue with the added "eye following you" description
|
|
icon = 'icons/obj/art/statue.dmi'
|
|
icon_state = "human_male"
|
|
icon_living = "human_male"
|
|
icon_dead = "human_male"
|
|
gender = NEUTER
|
|
combat_mode = TRUE
|
|
mob_biotypes = MOB_HUMANOID|MOB_MINERAL
|
|
gold_core_spawnable = NO_SPAWN
|
|
|
|
response_help_continuous = "touches"
|
|
response_help_simple = "touch"
|
|
response_disarm_continuous = "pushes"
|
|
response_disarm_simple = "push"
|
|
|
|
speed = -1
|
|
maxHealth = 50000
|
|
health = 50000
|
|
obj_damage = 100
|
|
melee_damage_lower = 68
|
|
melee_damage_upper = 83
|
|
attack_verb_continuous = "claws"
|
|
attack_verb_simple = "claw"
|
|
attack_sound = 'sound/effects/hallucinations/growl1.ogg'
|
|
attack_vis_effect = ATTACK_EFFECT_CLAW
|
|
melee_attack_cooldown = 1 SECONDS
|
|
|
|
status_flags = CANPUSH
|
|
faction = list(FACTION_STATUE)
|
|
speak_emote = list("screams")
|
|
death_message = "falls apart into a fine dust."
|
|
unsuitable_atmos_damage = 0
|
|
unsuitable_cold_damage = 0
|
|
unsuitable_heat_damage = 0
|
|
|
|
animate_movement = NO_STEPS // Do not animate movement, you jump around as you're a scary statue.
|
|
hud_possible = list(ANTAG_HUD)
|
|
|
|
// Dim purple, I want it to be possible to miss people in the dark but not easy to
|
|
lighting_cutoff_red = 15
|
|
lighting_cutoff_green = 10
|
|
lighting_cutoff_blue = 25
|
|
|
|
sight = SEE_SELF|SEE_MOBS|SEE_OBJS|SEE_TURFS
|
|
|
|
move_force = MOVE_FORCE_EXTREMELY_STRONG
|
|
move_resist = MOVE_FORCE_EXTREMELY_STRONG
|
|
pull_force = MOVE_FORCE_EXTREMELY_STRONG
|
|
|
|
damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, STAMINA = 0, OXY = 1)
|
|
ai_controller = /datum/ai_controller/basic_controller/statue
|
|
|
|
/mob/living/basic/statue/Initialize(mapload)
|
|
. = ..()
|
|
add_traits(list(TRAIT_MUTE, TRAIT_UNOBSERVANT), INNATE_TRAIT)
|
|
AddComponent(/datum/component/unobserved_actor, unobserved_flags = NO_OBSERVED_MOVEMENT | NO_OBSERVED_ATTACKS)
|
|
|
|
var/static/list/innate_actions = list(
|
|
/datum/action/cooldown/spell/aoe/blindness,
|
|
/datum/action/cooldown/spell/aoe/flicker_lights,
|
|
)
|
|
grant_actions_by_list(innate_actions)
|
|
|
|
/mob/living/basic/statue/med_hud_set_health()
|
|
return //we're a statue we're invincible
|
|
|
|
/mob/living/basic/statue/med_hud_set_status()
|
|
return //we're a statue we're invincible
|
|
|
|
// Cannot talk
|
|
|
|
// Turn to dust when gibbed
|
|
|
|
/mob/living/basic/statue/gib()
|
|
dust()
|
|
|
|
// Statue powers
|
|
|
|
// Flicker lights
|
|
/datum/action/cooldown/spell/aoe/flicker_lights
|
|
name = "Flicker Lights"
|
|
desc = "You will trigger a large amount of lights around you to flicker."
|
|
button_icon = 'icons/mob/actions/actions_AI.dmi'
|
|
button_icon_state = "blackout"
|
|
cooldown_time = 30 SECONDS
|
|
spell_requirements = NONE
|
|
aoe_radius = 14
|
|
|
|
/datum/action/cooldown/spell/aoe/flicker_lights/get_things_to_cast_on(atom/center)
|
|
var/list/things = list()
|
|
for(var/obj/machinery/light/nearby_light in range(aoe_radius, center))
|
|
if(!nearby_light.on)
|
|
continue
|
|
|
|
things += nearby_light
|
|
|
|
return things
|
|
|
|
/datum/action/cooldown/spell/aoe/flicker_lights/cast_on_thing_in_aoe(obj/machinery/light/victim, atom/caster)
|
|
victim.flicker()
|
|
|
|
//Blind AOE
|
|
/datum/action/cooldown/spell/aoe/blindness
|
|
name = "Blindness"
|
|
desc = "Your prey will be momentarily blind for you to advance on them."
|
|
button_icon_state = "blind"
|
|
cooldown_time = 1 MINUTES
|
|
spell_requirements = NONE
|
|
aoe_radius = 14
|
|
|
|
/datum/action/cooldown/spell/aoe/blindness/cast(atom/cast_on)
|
|
cast_on.visible_message(span_danger("[cast_on] glares their eyes."))
|
|
return ..()
|
|
|
|
/datum/action/cooldown/spell/aoe/blindness/get_things_to_cast_on(atom/center)
|
|
var/list/things = list()
|
|
for(var/mob/living/nearby_mob in range(aoe_radius, center))
|
|
if(nearby_mob == owner || nearby_mob == center)
|
|
continue
|
|
|
|
things += nearby_mob
|
|
|
|
return things
|
|
|
|
/datum/action/cooldown/spell/aoe/blindness/cast_on_thing_in_aoe(mob/living/victim, atom/caster)
|
|
victim.adjust_temp_blindness(8 SECONDS)
|
|
|
|
/datum/ai_controller/basic_controller/statue
|
|
blackboard = list(
|
|
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
|
|
)
|
|
|
|
ai_movement = /datum/ai_movement/basic_avoidance
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/escape_captivity,
|
|
/datum/ai_planning_subtree/simple_find_target,
|
|
/datum/ai_planning_subtree/basic_melee_attack_subtree,
|
|
/datum/ai_planning_subtree/find_and_hunt_target/look_for_light_fixtures,
|
|
)
|
|
|
|
/mob/living/basic/statue/frosty
|
|
name = "Frosty"
|
|
desc = "Just a snowman. Just a snowman. Oh god, it's just a snowman."
|
|
icon_dead = "snowman"
|
|
icon_living = "snowman"
|
|
icon_state = "snowman"
|
|
health = 5000
|
|
maxHealth = 5000
|
|
melee_damage_lower = 65
|
|
melee_damage_upper = 65
|
|
faction = list(FACTION_STATUE,FACTION_MINING)
|
|
|
|
/mob/living/basic/statue/frosty/Initialize(mapload)
|
|
. = ..()
|
|
AddElement(/datum/element/death_drops, /obj/item/dnainjector/geladikinesis)
|