Skip to content

Commit

Permalink
DID YOU KNOW YOU CAN TAME CLOWNS?!
Browse files Browse the repository at this point in the history
  • Loading branch information
Syndicat-Meow committed Dec 27, 2024
1 parent 573ce7b commit 67b3247
Show file tree
Hide file tree
Showing 9 changed files with 72 additions and 19 deletions.
4 changes: 2 additions & 2 deletions code/__DEFINES/fish.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,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

Expand Down
8 changes: 4 additions & 4 deletions code/__DEFINES/traits/declarations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1258,11 +1258,11 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai

/// 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_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
#define TRAIT_STURDY_FRAME "sturdy_frame" // you suffer much lesser effects from equipment that slows you down

/// This item cannot be selected for or used by a theft objective (Spies, Traitors, etc.)
/* #define TRAIT_ITEM_OBJECTIVE_BLOCKED "item_objective_blocked" */
Expand Down
8 changes: 4 additions & 4 deletions code/_globalvars/traits/_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -544,7 +544,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
/* "TRAIT_EASYBLEED" = TRAIT_EASYBLEED, */
/* "TRAIT_EXAMINE_FISHING_SPOT" = TRAIT_EXAMINE_FISHING_SPOT, */
/* "TRAIT_EXAMINE_FITNESS" = TRAIT_EXAMINE_FITNESS, */
/* "TRAIT_EXPERT_FISHER" = TRAIT_EXPERT_FISHER, */
"TRAIT_EXPERT_FISHER" = TRAIT_EXPERT_FISHER,
/* "TRAIT_FAST_CUFFING" = TRAIT_FAST_CUFFING, */
/* "TRAIT_FAST_TYING" = TRAIT_FAST_TYING, */
/* "TRAIT_FIST_MINING" = TRAIT_FIST_MINING, */
Expand Down Expand Up @@ -589,7 +589,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
/* "TRAIT_ROCK_EATER" = TRAIT_ROCK_EATER, */
/* "TRAIT_ROCK_METAMORPHIC" = TRAIT_ROCK_METAMORPHIC, */
/* "TRAIT_ROCK_STONER" = TRAIT_ROCK_STONER, */
/* "TRAIT_ROUGHRIDER" = TRAIT_ROUGHRIDER, */
"TRAIT_ROUGHRIDER" = TRAIT_ROUGHRIDER,
/* "TRAIT_SEE_WORN_COLOURS" = TRAIT_SEE_WORN_COLOURS, */
/* "TRAIT_SILICON_EMOTES_ALLOWED" = TRAIT_SILICON_EMOTES_ALLOWED, */
/* "TRAIT_SLOW_FLIP" = TRAIT_SLOW_FLIP, */
Expand All @@ -599,9 +599,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
/* "TRAIT_STIMULATED" = TRAIT_STIMULATED, */
/* "TRAIT_STRENGTH" = TRAIT_STRENGTH, */
/* "TRAIT_STRONG_STOMACH" = TRAIT_STRONG_STOMACH, */
/* "TRAIT_STUBBY_BODY" = TRAIT_STUBBY_BODY, */
"TRAIT_STUBBY_BODY" = TRAIT_STUBBY_BODY,
/* "TRAIT_STUN_ON_NEXT_SHOVE" = TRAIT_STUN_ON_NEXT_SHOVE, */
/* "TRAIT_STURDY_FRAME" = TRAIT_STURDY_FRAME, */
"TRAIT_STURDY_FRAME" = TRAIT_STURDY_FRAME,
/* "TRAIT_SURGEON" = TRAIT_SURGEON, */
/* "TRAIT_SURGICALLY_ANALYZED" = TRAIT_SURGICALLY_ANALYZED, */
/* "TRAIT_SYNDIE_KISS" = TRAIT_SYNDIE_KISS, */
Expand Down
29 changes: 27 additions & 2 deletions code/datums/components/riding/riding_mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
return ..()

/datum/component/riding/creature/driver_move(atom/movable/movable_parent, mob/living/user, direction)
if(!COOLDOWN_FINISHED(src, vehicle_move_cooldown))
if(!COOLDOWN_FINISHED(src, vehicle_move_cooldown) || !Process_Spacemove())
return COMPONENT_DRIVER_BLOCK_MOVE
if(!keycheck(user))
if(ispath(keytype, /obj/item))
Expand All @@ -103,7 +103,32 @@
var/turf/next = get_step(living_parent, direction)
step(living_parent, direction)
last_move_diagonal = ((direction & (direction - 1)) && (living_parent.loc == next))
COOLDOWN_START(src, vehicle_move_cooldown, (last_move_diagonal ? 2 : 1) * move_delay()) // monkestation edit: use move_delay() proc instead of raw vehicle_move_delay var
var/modified_move_cooldown = vehicle_move_cooldown
var/modified_move_delay = vehicle_move_delay
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
if(SANITY_LEVEL_NEUTRAL)
modified_move_cooldown *= 0.8
modified_move_delay *= 0.8
if(SANITY_LEVEL_DISTURBED)
modified_move_cooldown *= 1
modified_move_delay *= 1
if(SANITY_LEVEL_CRAZY)
modified_move_cooldown *= 1.2
modified_move_delay *= 1.2
if(SANITY_LEVEL_INSANE)
modified_move_cooldown *= 1.5
modified_move_delay *= 1.5
COOLDOWN_START(src, vehicle_move_cooldown = modified_move_cooldown, (last_move_diagonal ? 2 : 1) * modified_move_delay)
return ..()

/datum/component/riding/creature/keycheck(mob/user)
Expand Down
3 changes: 3 additions & 0 deletions code/datums/elements/climbable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@
if(HAS_TRAIT(user,TRAIT_FAST_CLIMBER)) //How it feels to chew 5 gum
adjusted_climb_time *= 0.3
//MONKESTATION EDIT END
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)
if(do_after(user, adjusted_climb_time, climbed_thing, interaction_key = DOAFTER_SOURCE_CLIMBING)) // monkestation edit: add an interaction key
if(QDELETED(climbed_thing)) //Checking if structure has been destroyed
Expand Down
22 changes: 16 additions & 6 deletions code/datums/quirks/positive_quirks/settler.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* /datum/quirk/item_quirk/settler - monkestation disabled for now
/datum/quirk/item_quirk/settler /// was needed for monke to patch out some stuff from cat reforged.
name = "Settler"
desc = "You are from a lineage of the earliest space settlers! While your family's generational exposure to varying gravity \
has resulted in a ... smaller height than is typical for your species, you make up for it by being much better at outdoorsmanship and \
Expand All @@ -9,25 +9,35 @@
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_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))
give_item_to_holder(/obj/item/storage/toolbox/fishing/small, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS))
/datum/quirk/item_quirk/settler/add(client/client_source)
var/mob/living/carbon/human/human_quirkholder = quirk_holder
human_quirkholder.set_mob_height(HUMAN_HEIGHT_SHORTEST)
human_quirkholder.add_movespeed_modifier(/datum/movespeed_modifier/settler)

Check failure on line 29 in code/datums/quirks/positive_quirks/settler.dm

View workflow job for this annotation

GitHub Actions / Run Linters

failed to resolve path /datum/movespeed_modifier/settler

Check failure on line 29 in code/datums/quirks/positive_quirks/settler.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0404: Path /datum/movespeed_modifier/settler does not exist
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))

Check failure on line 34 in code/datums/quirks/positive_quirks/settler.dm

View workflow job for this annotation

GitHub Actions / Run Linters

failed to resolve path /obj/item/storage/box/papersack/wheat

Check failure on line 34 in code/datums/quirks/positive_quirks/settler.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0404: Path /obj/item/storage/box/papersack/wheat does not exist
give_item_to_holder(/obj/item/storage/toolbox/fishing/small, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS))
/datum/quirk/item_quirk/settler/remove()
if(QDELING(quirk_holder))
return
var/mob/living/carbon/human/human_quirkholder = quirk_holder
human_quirkholder.set_mob_height(HUMAN_HEIGHT_MEDIUM)
human_quirkholder.remove_movespeed_modifier(/datum/movespeed_modifier/settler)

Check failure on line 41 in code/datums/quirks/positive_quirks/settler.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0404: Path /datum/movespeed_modifier/settler does not exist
human_quirkholder.physiology.hunger_mod *= 2
*/
human_quirkholder.remove_traits(settler_traits, QUIRK_TRAIT)
3 changes: 3 additions & 0 deletions code/modules/fishing/sources/_fish_source.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list(
/datum/fish_source/proc/calculate_difficulty(result, obj/item/fishing_rod/rod, mob/fisherman, datum/fishing_challenge/challenge)
. = fishing_difficulty

// Difficulty modifier added by having the Settler quirk
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))
Expand Down
9 changes: 8 additions & 1 deletion code/modules/mob/living/brain/brain_item.dm
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,14 @@
/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_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/lustrous
name = "lustrous brain"
Expand Down
5 changes: 5 additions & 0 deletions code/modules/mob/mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1413,6 +1413,11 @@
immutable_speedies += thing.slowdown
else
speedies += thing.slowdown

//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)
add_or_update_variable_movespeed_modifier(
/datum/movespeed_modifier/equipment_speedmod/immutable,
Expand Down

0 comments on commit 67b3247

Please sign in to comment.