This commit is contained in:
zerothebigboy
2023-01-30 00:01:22 -05:00
parent 2d5e163916
commit 091d9ec00f
44 changed files with 277 additions and 256 deletions

View File

@@ -48,13 +48,11 @@
else //Maybe uses plasma in the future, although that wouldn't make any sense...
leaping = 1
weather_immunities += "lava"
update_icons()
throw_at(A, MAX_ALIEN_LEAP_DIST, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/leap_end))
/mob/living/carbon/alien/humanoid/hunter/proc/leap_end()
leaping = 0
weather_immunities -= "lava"
update_icons()
/mob/living/carbon/alien/humanoid/hunter/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)

View File

@@ -214,11 +214,11 @@
/datum/species/golem/titanium/on_species_gain(mob/living/carbon/C, datum/species/old_species)
. = ..()
C.weather_immunities |= "ash"
ADD_TRAIT(C, TRAIT_ASHSTORM_IMMUNE, SPECIES_TRAIT)
/datum/species/golem/titanium/on_species_loss(mob/living/carbon/C)
. = ..()
C.weather_immunities -= "ash"
REMOVE_TRAIT(C, TRAIT_ASHSTORM_IMMUNE, SPECIES_TRAIT)
//Immune to ash storms and lava
/datum/species/golem/plastitanium
@@ -233,13 +233,13 @@
/datum/species/golem/plastitanium/on_species_gain(mob/living/carbon/C, datum/species/old_species)
. = ..()
C.weather_immunities |= "lava"
C.weather_immunities |= "ash"
ADD_TRAIT(C, TRAIT_LAVA_IMMUNE, SPECIES_TRAIT)
ADD_TRAIT(C, TRAIT_ASHSTORM_IMMUNE, SPECIES_TRAIT)
/datum/species/golem/plastitanium/on_species_loss(mob/living/carbon/C)
. = ..()
C.weather_immunities -= "ash"
C.weather_immunities -= "lava"
REMOVE_TRAIT(C, TRAIT_LAVA_IMMUNE, SPECIES_TRAIT)
REMOVE_TRAIT(C, TRAIT_ASHSTORM_IMMUNE, SPECIES_TRAIT)
//Fast and regenerates... but can only speak like an abductor
/datum/species/golem/alloy

View File

@@ -107,8 +107,6 @@
var/hellbound = 0 //People who've signed infernal contracts are unrevivable.
var/list/weather_immunities = list()
var/stun_absorption = null //converted to a list of stun absorption sources this mob has when one is added
var/blood_volume = 0 //how much blood the mob has

View File

@@ -6,7 +6,6 @@
pass_flags = PASSTABLE | PASSMOB
mob_size = MOB_SIZE_TINY
desc = "A generic pAI mobile hard-light holographics emitter. It seems to be deactivated."
weather_immunities = list("ash")
health = 500
maxHealth = 500
layer = BELOW_MOB_LAYER

View File

@@ -8,7 +8,6 @@
initial_language_holder = /datum/language_holder/synthetic
see_in_dark = 8
bubble_icon = "machine"
weather_immunities = list("ash")
possible_a_intents = list(INTENT_HELP, INTENT_HARM)
mob_biotypes = MOB_ROBOTIC
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
@@ -61,6 +60,7 @@
diag_hud.add_to_hud(src)
diag_hud_set_status()
diag_hud_set_health()
ADD_TRAIT(src, TRAIT_ASHSTORM_IMMUNE, ROUNDSTART_TRAIT)
/mob/living/silicon/ComponentInitialize()
. = ..()

View File

@@ -61,7 +61,7 @@
icon_living = "snowbear"
icon_dead = "snowbear_dead"
desc = "It's a polar bear, in space, but not actually in space."
weather_immunities = list("snow")
weather_immunities = list(TRAIT_SNOWSTORM_IMMUNE)
/mob/living/simple_animal/hostile/bear/russian
name = "combat bear"

View File

@@ -26,7 +26,7 @@
gold_core_spawnable = HOSTILE_SPAWN
faction = list(ROLE_WIZARD)
footstep_type = FOOTSTEP_MOB_SHOE
weather_immunities = list("lava","ash")
weather_immunities = list(TRAIT_LAVA_IMMUNE, TRAIT_ASHSTORM_IMMUNE)
minbodytemp = 0
maxbodytemp = INFINITY
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)

View File

@@ -16,7 +16,7 @@ Difficulty: Extremely Hard
mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
light_color = "#E4C7C5"
movement_type = GROUND
weather_immunities = list("snow")
weather_immunities = list(TRAIT_SNOWSTORM_IMMUNE)
speak_emote = list("roars")
armour_penetration = 100
melee_damage_lower = 10

View File

@@ -10,7 +10,7 @@
obj_damage = 400
light_range = 3
faction = list("mining", "boss")
weather_immunities = list("lava","ash")
weather_immunities = list(TRAIT_LAVA_IMMUNE,TRAIT_ASHSTORM_IMMUNE)
movement_type = FLYING
robust_searching = 1
ranged_ignores_vision = TRUE

View File

@@ -52,7 +52,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa
crusher_achievement_type = /datum/award/achievement/boss/swarmer_beacon_crusher
score_achievement_type = /datum/award/score/swarmer_beacon_score
faction = list("mining", "boss", "swarmer")
weather_immunities = list("lava","ash")
weather_immunities = list(TRAIT_LAVA_IMMUNE, TRAIT_ASHSTORM_IMMUNE)
stop_automated_movement = TRUE
wander = FALSE
layer = BELOW_MOB_LAYER
@@ -101,7 +101,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa
/mob/living/simple_animal/hostile/swarmer/ai
wander = 1
faction = list("swarmer", "mining")
weather_immunities = list("ash") //wouldn't be fun otherwise
weather_immunities = list(TRAIT_LAVA_IMMUNE, TRAIT_ASHSTORM_IMMUNE) //wouldn't be fun otherwise
AIStatus = AI_ON
/mob/living/simple_animal/hostile/swarmer/ai/Initialize(mapload)

View File

@@ -14,7 +14,7 @@ Difficulty: Hard
attack_verb_continuous = "claws"
attack_verb_simple = "claw"
attack_sound = 'sound/magic/demon_attack1.ogg'
weather_immunities = list("snow")
weather_immunities = list(TRAIT_SNOWSTORM_IMMUNE)
speak_emote = list("roars")
armour_penetration = 40
melee_damage_lower = 40

View File

@@ -10,7 +10,7 @@
speak_emote = list("warbles", "quavers")
emote_hear = list("trills.")
emote_see = list("sniffs.", "burps.")
weather_immunities = list("lava","ash")
weather_immunities = list(TRAIT_LAVA_IMMUNE, TRAIT_ASHSTORM_IMMUNE)
faction = list("mining", "ashwalker")
density = FALSE
speak_chance = 1

View File

@@ -272,7 +272,7 @@
aggro_vision_range = 9
speed = 3
faction = list("mining")
weather_immunities = list("lava","ash")
weather_immunities = list(TRAIT_LAVA_IMMUNE, TRAIT_ASHSTORM_IMMUNE)
obj_damage = 30
environment_smash = ENVIRONMENT_SMASH_STRUCTURES
see_in_dark = 8
@@ -321,7 +321,7 @@
gloves = /obj/item/clothing/gloves/color/black
mask = /obj/item/clothing/mask/gas/explorer
if(prob(20))
suit = pickweight(list(/obj/item/clothing/suit/hooded/explorer/standard = 6, /obj/item/clothing/suit/hooded/cloak/goliath = 2, /obj/item/clothing/suit/hooded/explorer/exo = 6, /obj/item/clothing/suit/hooded/explorer/seva = 6))
suit = pickweight(list(/obj/item/clothing/suit/hooded/explorer/standard = 6, /obj/item/clothing/suit/hooded/cloak/goliath = 2, /obj/item/clothing/suit/hooded/explorer/exo = 6, /obj/item/clothing/suit/hooded/explorer/heva = 6))
if(prob(30))
r_pocket = pickweight(list(/obj/item/stack/marker_beacon = 20, /obj/item/stack/spacecash/c1000 = 7, /obj/item/reagent_containers/hypospray/medipen/survival = 2, /obj/item/borg/upgrade/modkit/damage = 1 ))
if(prob(10))

View File

@@ -3,7 +3,7 @@
vision_range = 2
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
faction = list("mining")
weather_immunities = list("lava","ash")
weather_immunities = list(TRAIT_LAVA_IMMUNE,TRAIT_ASHSTORM_IMMUNE)
obj_damage = 30
environment_smash = ENVIRONMENT_SMASH_WALLS
minbodytemp = 0

View File

@@ -46,7 +46,7 @@
icon_dead = "eskimo_dead"
maxHealth = 55
health = 55
weather_immunities = list("snow")
weather_immunities = list(TRAIT_SNOWSTORM_IMMUNE)
gold_core_spawnable = NO_SPAWN
melee_damage_lower = 17
melee_damage_upper = 20
@@ -65,7 +65,7 @@
icon_dead = "templar_dead"
maxHealth = 150
health = 150
weather_immunities = list("snow")
weather_immunities = list(TRAIT_SNOWSTORM_IMMUNE)
speed = 2
gold_core_spawnable = NO_SPAWN
speak_chance = 1
@@ -86,7 +86,7 @@
speed = 5
maxHealth = 75
health = 75
weather_immunities = list("snow")
weather_immunities = list(TRAIT_SNOWSTORM_IMMUNE)
color = rgb(114,228,250)
loot = list(/obj/effect/decal/remains/human{color = rgb(114,228,250)})

View File

@@ -56,6 +56,9 @@
var/minbodytemp = 250
var/maxbodytemp = 350
/// List of weather immunity traits that are then added on Initialize(), see traits.dm.
var/list/weather_immunities
///Healable by medical stacks? Defaults to yes.
var/healable = 1
@@ -165,6 +168,8 @@
AddComponent(/datum/component/personal_crafting)
if(footstep_type)
AddComponent(/datum/component/footstep, footstep_type)
for(var/trait in weather_immunities)
ADD_TRAIT(src, trait, ROUNDSTART_TRAIT)
/mob/living/simple_animal/Destroy()
GLOB.simple_animals[AIStatus] -= src