mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-17 02:54:44 +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) /🆑
181 lines
6.4 KiB
Plaintext
181 lines
6.4 KiB
Plaintext
/mob/living/basic/skeleton
|
|
name = "reanimated skeleton"
|
|
desc = "A real bonefied skeleton, doesn't seem like it wants to socialize."
|
|
gender = NEUTER
|
|
icon = 'icons/mob/simple/simple_human.dmi'
|
|
mob_biotypes = MOB_UNDEAD|MOB_HUMANOID|MOB_SKELETAL
|
|
speak_emote = list("rattles")
|
|
maxHealth = 40
|
|
health = 40
|
|
basic_mob_flags = DEL_ON_DEATH
|
|
melee_damage_lower = 15
|
|
melee_damage_upper = 15
|
|
unsuitable_atmos_damage = 0
|
|
unsuitable_cold_damage = 0
|
|
unsuitable_heat_damage = 0
|
|
attack_verb_continuous = "slashes"
|
|
attack_verb_simple = "slash"
|
|
attack_sound = 'sound/items/weapons/slash.ogg'
|
|
attack_vis_effect = ATTACK_EFFECT_CLAW
|
|
faction = list(FACTION_SKELETON)
|
|
// Going for a sort of pale bluegreen here, shooting for boneish
|
|
lighting_cutoff_red = 15
|
|
lighting_cutoff_green = 25
|
|
lighting_cutoff_blue = 35
|
|
death_message = "collapses into a pile of bones!"
|
|
ai_controller = /datum/ai_controller/basic_controller/skeleton
|
|
/// Loot this mob drops on death.
|
|
var/list/loot = list(/obj/effect/decal/remains/human)
|
|
/// Path of the outfit we give to the mob's visuals.
|
|
var/outfit = null
|
|
/// Path of the species we give to the mob's visuals.
|
|
var/species = /datum/species/skeleton
|
|
/// Path of the held item we give to the mob's visuals.
|
|
var/held_item
|
|
/// Types of milk skeletons like to drink
|
|
var/static/list/good_drinks = list(
|
|
/obj/item/reagent_containers/condiment/milk,
|
|
)
|
|
/// Bad milk that skeletons hate
|
|
var/static/list/bad_drinks = list(
|
|
/obj/item/reagent_containers/condiment/soymilk,
|
|
)
|
|
|
|
/mob/living/basic/skeleton/Initialize(mapload)
|
|
. = ..()
|
|
apply_dynamic_human_appearance(src, outfit, species, r_hand = held_item)
|
|
AddElement(/datum/element/footstep, FOOTSTEP_MOB_SHOE)
|
|
if(LAZYLEN(loot))
|
|
loot = string_list(loot)
|
|
AddElement(/datum/element/death_drops, loot)
|
|
AddElement(/datum/element/basic_eating, heal_amt = 50, drinking = TRUE, food_types = good_drinks)
|
|
AddElement(/datum/element/basic_eating, heal_amt = 0, damage_amount = 25, damage_type = BURN, drinking = TRUE, food_types = bad_drinks)
|
|
ADD_TRAIT(src, TRAIT_SNOWSTORM_IMMUNE, INNATE_TRAIT)
|
|
var/list/foods_list = good_drinks + bad_drinks
|
|
ai_controller?.set_blackboard_key(BB_BASIC_FOODS, typecacheof(foods_list))
|
|
|
|
/mob/living/basic/skeleton/settler
|
|
name = "undead settler"
|
|
desc = "The reanimated remains of some poor settler."
|
|
maxHealth = 55
|
|
health = 55
|
|
melee_damage_lower = 17
|
|
melee_damage_upper = 20
|
|
attack_verb_continuous = "jabs"
|
|
attack_verb_simple = "jab"
|
|
attack_sound = 'sound/items/weapons/bladeslice.ogg'
|
|
attack_vis_effect = ATTACK_EFFECT_SLASH
|
|
death_message = "collapses into a pile of bones, its gear falling to the floor!"
|
|
loot = list(
|
|
/obj/effect/decal/remains/human,
|
|
/obj/item/spear,
|
|
/obj/item/clothing/shoes/winterboots,
|
|
/obj/item/clothing/suit/hooded/wintercoat,
|
|
)
|
|
outfit = /datum/outfit/settler
|
|
held_item = /obj/item/spear
|
|
|
|
/datum/outfit/settler
|
|
name = "Settler"
|
|
suit = /obj/item/clothing/suit/hooded/wintercoat
|
|
shoes = /obj/item/clothing/shoes/winterboots
|
|
|
|
/mob/living/basic/skeleton/templar
|
|
name = "undead templar"
|
|
desc = "The reanimated remains of a holy templar knight."
|
|
maxHealth = 150
|
|
health = 150
|
|
speed = 2
|
|
damage_coeff = list(BRUTE = 0.5, BURN = 0.5, TOX = 0, STAMINA = 0, OXY = 0) //trying to simulate actually having armor
|
|
obj_damage = 50
|
|
melee_damage_lower = 25
|
|
melee_damage_upper = 30
|
|
attack_verb_continuous = "slices"
|
|
attack_verb_simple = "slice"
|
|
attack_sound = 'sound/items/weapons/bladeslice.ogg'
|
|
attack_vis_effect = ATTACK_EFFECT_SLASH
|
|
death_message = "collapses into a pile of bones, its gear clanging as it hits the ground!"
|
|
loot = list(
|
|
/obj/effect/decal/remains/human,
|
|
/obj/item/clothing/suit/chaplainsuit/armor/templar,
|
|
/obj/item/clothing/head/helmet/chaplain,
|
|
/obj/item/claymore/weak{name = "holy sword"}
|
|
)
|
|
outfit = /datum/outfit/templar
|
|
|
|
/datum/outfit/templar
|
|
name = "Templar"
|
|
head = /obj/item/clothing/head/helmet/chaplain
|
|
suit = /obj/item/clothing/suit/chaplainsuit/armor/templar
|
|
r_hand = /obj/item/claymore/weak
|
|
|
|
/mob/living/basic/skeleton/ice
|
|
name = "ice skeleton"
|
|
desc = "A reanimated skeleton protected by a thick sheet of natural ice armor. Looks slow, though."
|
|
speed = 5
|
|
maxHealth = 75
|
|
health = 75
|
|
color = rgb(114,228,250)
|
|
loot = list(/obj/effect/decal/remains/human{color = rgb(114,228,250)})
|
|
|
|
/mob/living/basic/skeleton/plasmaminer
|
|
name = "shambling miner"
|
|
desc = "A plasma-soaked miner, their exposed limbs turned into a grossly incandescent bone seemingly made of plasma."
|
|
icon_state = "plasma_miner"
|
|
icon_living = "plasma_miner"
|
|
icon_dead = "plasma_miner"
|
|
maxHealth = 150
|
|
health = 150
|
|
melee_damage_lower = 15
|
|
melee_damage_upper = 20
|
|
light_color = LIGHT_COLOR_PURPLE
|
|
light_range = 2
|
|
death_message = "collapses into a pile of bones, their suit dissolving among the plasma!"
|
|
loot = list(/obj/effect/decal/remains/plasma)
|
|
outfit = /datum/outfit/plasma_miner
|
|
species = /datum/species/plasmaman
|
|
|
|
/mob/living/basic/skeleton/plasmaminer/jackhammer
|
|
desc = "A plasma-soaked miner, their exposed limbs turned into a grossly incandescent bone seemingly made of plasma. They seem to still have their mining tool in their hand, gripping tightly."
|
|
icon_state = "plasma_miner_tool"
|
|
icon_living = "plasma_miner_tool"
|
|
icon_dead = "plasma_miner_tool"
|
|
maxHealth = 185
|
|
health = 185
|
|
melee_damage_lower = 20
|
|
melee_damage_upper = 25
|
|
attack_verb_continuous = "blasts"
|
|
attack_verb_simple = "blast"
|
|
attack_sound = 'sound/items/weapons/sonic_jackhammer.ogg'
|
|
attack_vis_effect = null
|
|
loot = list(/obj/effect/decal/remains/plasma, /obj/item/pickaxe/drill/jackhammer)
|
|
held_item = /obj/item/pickaxe/drill/jackhammer
|
|
|
|
/datum/outfit/plasma_miner
|
|
name = "Plasma Miner"
|
|
uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland
|
|
suit = /obj/item/clothing/suit/hooded/explorer
|
|
mask = /obj/item/clothing/mask/gas/explorer
|
|
|
|
// Skeleton AI
|
|
|
|
/// Skeletons mostly just beat people to death, but they'll also find and drink milk.
|
|
/datum/ai_controller/basic_controller/skeleton
|
|
blackboard = list(
|
|
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
|
|
BB_TARGET_MINIMUM_STAT = HARD_CRIT,
|
|
BB_EMOTE_KEY = "rattles",
|
|
BB_EMOTE_CHANCE = 20,
|
|
)
|
|
|
|
ai_movement = /datum/ai_movement/basic_avoidance
|
|
idle_behavior = /datum/idle_behavior/idle_random_walk
|
|
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/escape_captivity,
|
|
/datum/ai_planning_subtree/run_emote,
|
|
/datum/ai_planning_subtree/find_food,
|
|
/datum/ai_planning_subtree/simple_find_target,
|
|
/datum/ai_planning_subtree/basic_melee_attack_subtree,
|
|
)
|