mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 16:18:01 +01:00
[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:
co-authored by
Joshua Kidder
SpaceLoveSs13
parent
e0e459a0a3
commit
cb7943b601
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user