[MIRROR] Settler partially atomized into traits, ashwalkers given some settler traits (#28298)

* Settler partially atomized into traits, ashwalkers given some settler traits

* Update declarations.dm

---------

Co-authored-by: Joshua Kidder <49173900+Metekillot@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
This commit is contained in:
SkyratBot
2024-06-22 10:10:51 +05:30
committed by GitHub
co-authored by Joshua Kidder SpaceLoveSs13
parent e0e459a0a3
commit cb7943b601
12 changed files with 55 additions and 15 deletions
+2 -2
View File
@@ -9,8 +9,8 @@
#define FAV_BAIT_DIFFICULTY_MOD -5
/// Difficulty modifier when bait is fish's disliked
#define DISLIKED_BAIT_DIFFICULTY_MOD 15
/// Difficulty modifier when our fisherman has the trait TRAIT_SETTLER
#define SETTLER_DIFFICULTY_MOD -5
/// Difficulty modifier when our fisherman has the trait TRAIT_EXPERT_FISHER
#define EXPERT_FISHER_DIFFICULTY_MOD -5
#define FISH_TRAIT_MINOR_DIFFICULTY_BOOST 5
+8
View File
@@ -1151,6 +1151,14 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// Does this item bypass ranged armor checks?
#define TRAIT_BYPASS_RANGED_ARMOR "bypass_ranged_armor"
/// Traits given by settler, each with their own specific effects for cases where someone would have that trait, but not the other settler effects
#define TRAIT_EXPERT_FISHER "expert_fisher" // fishing is easier
#define TRAIT_ROUGHRIDER "roughrider" // you can improve speed on mounted animals with a good mood
#define TRAIT_STUBBY_BODY "stubby_body" // you have a stubby body that lessens your agility
#define TRAIT_BEAST_EMPATHY "beast_empathy" // you're good with animals, such as with taming them
#define TRAIT_STURDY_FRAME "sturdy_frame" // you suffer much lesser effects from equipment that slows you down
/// This trait lets you attach limbs to any player without surgery.
#define TRAIT_EASY_ATTACH "easy_attach"
+5
View File
@@ -139,6 +139,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_BALD" = TRAIT_BALD,
"TRAIT_BALLOON_SUTRA" = TRAIT_BALLOON_SUTRA,
"TRAIT_BATON_RESISTANCE" = TRAIT_BATON_RESISTANCE,
"TRAIT_BEAST_EMPATHY" = TRAIT_BEAST_EMPATHY,
"TRAIT_BEING_BLADE_SHIELDED" = TRAIT_BEING_BLADE_SHIELDED,
"TRAIT_BLOB_ALLY" = TRAIT_BLOB_ALLY,
"TRAIT_BLOCK_SHUTTLE_MOVEMENT" = TRAIT_BLOCK_SHUTTLE_MOVEMENT,
@@ -209,6 +210,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_EXAMINE_FISHING_SPOT" = TRAIT_EXAMINE_FISHING_SPOT,
"TRAIT_EXAMINE_FITNESS" = TRAIT_EXAMINE_FITNESS,
"TRAIT_EXPANDED_FOV" = TRAIT_EXPANDED_FOV,
"TRAIT_EXPERT_FISHER" = TRAIT_EXPERT_FISHER,
"TRAIT_EXTROVERT" = TRAIT_EXTROVERT,
"TRAIT_FAKEDEATH" = TRAIT_FAKEDEATH,
"TRAIT_FASTMED" = TRAIT_FASTMED,
@@ -417,6 +419,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_ROCK_METAMORPHIC" = TRAIT_ROCK_METAMORPHIC,
"TRAIT_ROCK_STONER" = TRAIT_ROCK_STONER,
"TRAIT_ROD_SUPLEX" = TRAIT_ROD_SUPLEX,
"TRAIT_ROUGHRIDER" = TRAIT_ROUGHRIDER,
"TRAIT_SABRAGE_PRO" = TRAIT_SABRAGE_PRO,
"TRAIT_SACRIFICED" = TRAIT_SACRIFICED,
"TRAIT_SECURITY_HUD" = TRAIT_SECURITY_HUD,
@@ -449,7 +452,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_STIMULATED" = TRAIT_STIMULATED,
"TRAIT_STRONG_GRABBER" = TRAIT_STRONG_GRABBER,
"TRAIT_STRONG_STOMACH" = TRAIT_STRONG_STOMACH,
"TRAIT_STUBBY_BODY" = TRAIT_STUBBY_BODY,
"TRAIT_STUNIMMUNE" = TRAIT_STUNIMMUNE,
"TRAIT_STURDY_FRAME" = TRAIT_STURDY_FRAME,
"TRAIT_SUCCUMB_OVERRIDE" = TRAIT_SUCCUMB_OVERRIDE,
"TRAIT_SUICIDED" = TRAIT_SUICIDED,
"TRAIT_SUPERMATTER_SOOTHER" = TRAIT_SUPERMATTER_SOOTHER,
+5
View File
@@ -36,6 +36,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_BADTOUCH" = TRAIT_BADTOUCH,
"TRAIT_BALD" = TRAIT_BALD,
"TRAIT_BATON_RESISTANCE" = TRAIT_BATON_RESISTANCE,
"TRAIT_BEAST_EMPATHY" = TRAIT_BEAST_EMPATHY,
"TRAIT_BLOCK_SHUTTLE_MOVEMENT" = TRAIT_BLOCK_SHUTTLE_MOVEMENT,
"TRAIT_BLOOD_CLANS" = TRAIT_BLOOD_CLANS,
"TRAIT_BLOODSHOT_EYES" = TRAIT_BLOODSHOT_EYES,
@@ -72,6 +73,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_EMPATH" = TRAIT_EMPATH,
"TRAIT_EXAMINE_FITNESS" = TRAIT_EXAMINE_FITNESS,
"TRAIT_EXPANDED_FOV" = TRAIT_EXPANDED_FOV,
"TRAIT_EXPERT_FISHER" = TRAIT_EXPERT_FISHER,
"TRAIT_FAKEDEATH" = TRAIT_FAKEDEATH,
"TRAIT_FAST_CUFFING" = TRAIT_FAST_CUFFING,
"TRAIT_FAT" = TRAIT_FAT,
@@ -189,6 +191,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_RESISTHIGHPRESSURE" = TRAIT_RESISTHIGHPRESSURE,
"TRAIT_RESISTLOWPRESSURE" = TRAIT_RESISTLOWPRESSURE,
"TRAIT_RESTRAINED" = TRAIT_RESTRAINED,
"TRAIT_ROUGHRIDER" = TRAIT_ROUGHRIDER,
"TRAIT_SECURITY_HUD" = TRAIT_SECURITY_HUD,
"TRAIT_SELF_AWARE" = TRAIT_SELF_AWARE,
"TRAIT_SETTLER" = TRAIT_SETTLER,
@@ -209,7 +212,9 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_STABLELIVER" = TRAIT_STABLELIVER,
"TRAIT_STRONG_GRABBER" = TRAIT_STRONG_GRABBER,
"TRAIT_STRONG_STOMACH" = TRAIT_STRONG_STOMACH,
"TRAIT_STUBBY_BODY" = TRAIT_STUBBY_BODY,
"TRAIT_STUNIMMUNE" = TRAIT_STUNIMMUNE,
"TRAIT_STURDY_FRAME" = TRAIT_STURDY_FRAME,
"TRAIT_SURGEON" = TRAIT_SURGEON,
"TRAIT_SURGICALLY_ANALYZED" = TRAIT_SURGICALLY_ANALYZED,
"TRAIT_TAGGER" = TRAIT_TAGGER,
+8 -3
View File
@@ -116,9 +116,14 @@
last_move_diagonal = ((direction & (direction - 1)) && (living_parent.loc == next))
var/modified_move_cooldown = vehicle_move_cooldown
var/modified_move_delay = vehicle_move_delay
if(ishuman(user) && HAS_TRAIT(user, TRAIT_SETTLER))
var/mob/living/carbon/human/settler_rider = user
switch(settler_rider.mob_mood.sanity_level)
if(ishuman(user) && HAS_TRAIT(user, TRAIT_ROUGHRIDER)) // YEEHAW!
var/mob/living/carbon/human/rough_rider = user
var/ride_benefit = null
if(HAS_TRAIT(rough_rider, TRAIT_PRIMITIVE)) // closer to a beast than a man; you don't need to think to ride!
ride_benefit = SANITY_LEVEL_GREAT
else
ride_benefit = rough_rider.mob_mood.sanity_level
switch(ride_benefit)
if(SANITY_LEVEL_GREAT)
modified_move_cooldown *= 0.5
modified_move_delay *= 0.5
+2 -2
View File
@@ -42,7 +42,7 @@
var/inform_tamer = FALSE
atom_parent.balloon_alert(attacker, "fed")
var/modified_tame_chance = current_tame_chance
if(HAS_TRAIT(attacker, TRAIT_SETTLER))
if(HAS_TRAIT(attacker, TRAIT_BEAST_EMPATHY))
modified_tame_chance += 50
inform_tamer = TRUE
if(unique || !already_friends(attacker))
@@ -71,7 +71,7 @@
if(inform_tamer)
source.balloon_alert(tamer, "tamed")
if(HAS_TRAIT(tamer, TRAIT_SETTLER))
if(HAS_TRAIT(tamer, TRAIT_BEAST_EMPATHY))
INVOKE_ASYNC(src, PROC_REF(rename_pet), source, tamer)
if(unique)
qdel(src)
+1 -1
View File
@@ -69,7 +69,7 @@
if(HAS_TRAIT(user, TRAIT_FREERUNNING)) //do you have any idea how fast I am???
adjusted_climb_time *= 0.8
adjusted_climb_stun *= 0.8
if(HAS_TRAIT(user, TRAIT_SETTLER)) //hold on, gimme a moment, my tiny legs can't get over the goshdamn table
if(HAS_TRAIT(user, TRAIT_STUBBY_BODY)) //hold on, gimme a moment, my tiny legs can't get over the goshdamn table
adjusted_climb_time *= 1.5
adjusted_climb_stun *= 1.5
LAZYADDASSOCLIST(current_climbers, climbed_thing, user)
+11 -1
View File
@@ -9,11 +9,19 @@
value = 4
mob_trait = TRAIT_SETTLER
quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE
medical_record_text = "Patient appears to be abnormally stout."
medical_record_text = "Patient has been exposed to planetary conditions for extended periods, resulting in an excessively stout build."
mail_goodies = list(
/obj/item/clothing/shoes/workboots/mining,
/obj/item/gps,
)
/// Most of the behavior of settler is from these traits, rather than exclusively the quirk
var/list/settler_traits = list(
TRAIT_EXPERT_FISHER,
TRAIT_ROUGHRIDER,
TRAIT_STUBBY_BODY,
TRAIT_BEAST_EMPATHY,
TRAIT_STURDY_FRAME,
)
/datum/quirk/item_quirk/settler/add(client/client_source)
var/mob/living/carbon/human/human_quirkholder = quirk_holder
@@ -23,6 +31,7 @@
//SKYRAT EDIT END
human_quirkholder.add_movespeed_modifier(/datum/movespeed_modifier/settler)
human_quirkholder.physiology.hunger_mod *= 0.5 //good for you, shortass, you don't get hungry nearly as often
human_quirkholder.add_traits(settler_traits, QUIRK_TRAIT)
/datum/quirk/item_quirk/settler/add_unique(client/client_source)
give_item_to_holder(/obj/item/storage/box/papersack/wheat, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS))
@@ -35,3 +44,4 @@
human_quirkholder.set_mob_height(HUMAN_HEIGHT_MEDIUM)
human_quirkholder.remove_movespeed_modifier(/datum/movespeed_modifier/settler)
human_quirkholder.physiology.hunger_mod *= 2
human_quirkholder.remove_traits(settler_traits, QUIRK_TRAIT)
+2 -2
View File
@@ -85,8 +85,8 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list(
. = fishing_difficulty
// Difficulty modifier added by having the Settler quirk
if(HAS_TRAIT(fisherman, TRAIT_SETTLER))
. += SETTLER_DIFFICULTY_MOD
if(HAS_TRAIT(fisherman, TRAIT_EXPERT_FISHER))
. += EXPERT_FISHER_DIFFICULTY_MOD
// Difficulty modifier added by the fisher's skill level
if(!challenge || !(challenge.special_effects & FISHING_MINIGAME_RULE_NO_EXP))
+9 -1
View File
@@ -394,7 +394,15 @@
/obj/item/organ/internal/brain/primitive //No like books and stompy metal men
name = "primitive brain"
desc = "This juicy piece of meat has a clearly underdeveloped frontal lobe."
organ_traits = list(TRAIT_ADVANCEDTOOLUSER, TRAIT_CAN_STRIP, TRAIT_PRIMITIVE) // No literacy
organ_traits = list(
TRAIT_ADVANCEDTOOLUSER,
TRAIT_CAN_STRIP,
TRAIT_PRIMITIVE, // No literacy
TRAIT_FORBID_MINING_SHUTTLE_CONSOLE_OUTSIDE_STATION,
TRAIT_EXPERT_FISHER, // live off land, fish from river
TRAIT_ROUGHRIDER, // ride beast, chase down prey, flee from danger
TRAIT_BEAST_EMPATHY, // know the way of beast, calm with food
)
/obj/item/organ/internal/brain/golem
name = "crystalline matrix"
@@ -160,7 +160,6 @@ Lizard subspecies: ASHWALKERS
inherent_traits = list(
TRAIT_MUTANT_COLORS,
TRAIT_VIRUSIMMUNE,
TRAIT_FORBID_MINING_SHUTTLE_CONSOLE_OUTSIDE_STATION,
)
species_language_holder = /datum/language_holder/lizard/ash
digitigrade_customization = DIGITIGRADE_FORCED
+2 -2
View File
@@ -1594,8 +1594,8 @@
else
speedies += thing.slowdown
//if our movespeed mod is in the negatives, we don't modify it since that's a benefit
if(speedies > 0 && HAS_TRAIT(src, TRAIT_SETTLER))
//if we have TRAIT_STURDY_FRAME, we reduce our overall speed penalty UNLESS that penalty would be a negative value, and therefore a speed boost.
if(speedies > 0 && HAS_TRAIT(src, TRAIT_STURDY_FRAME))
speedies *= 0.2
if(immutable_speedies)