Skip to content

Fera rework #489

Merged
FalloutFalcon merged 296 commits intoDarkPack13:masterfrom
FalloutFalcon:fera-rework
Feb 19, 2026
Merged

Fera rework #489
FalloutFalcon merged 296 commits intoDarkPack13:masterfrom
FalloutFalcon:fera-rework

Conversation

@FalloutFalcon
Copy link
Copy Markdown
Member

@FalloutFalcon FalloutFalcon commented Jan 7, 2026

About The Pull Request

Part 1 of the fera rework: Most garou content minus 1-5 gifts
Requires #407, #657
Continuation of #122
Should fix #484
Fixes bloodpool part of #513

Playerfacing: Implements garou based upon the following document: https://docs.google.com/document/d/1ZhMsB3mToUq5Q7dk86YdyvcRfaPpq2sOxYeZKwCNEQU/edit?tab=t.0#heading=h.axkr5oqixflc
Codewise: Aims to overhaul fera onto the new splat framework and future proof the handling of splats to prevent stuff like corax just being a secret tribe of the garou and other extremely jank code.

Why It's Good For The Game

Better code c:

Alteast on Apoc, we already have plans for the bear and fox fera very soon, we need good bones for that.

Changelog

🆑
add: Readds garou
add: Moon phase is calculated mostly accurately based on in-game day
add: Rage gained from looking at the moon is now based on phase
add: Howl emote that can be used by dogs, dogs (garou), or dogs (gangrel)
add: Re-implements 1 gift for each auspice
fix: Blood-pool icon is properly updated when its added to you
admin: Adjustments to stats and important prefs can be properly viewed in the log viewers
balance: Makes generic helpers to represent "Heal this amount of "dots" of damage". Gives this to garou at 1 dot every "turn" (5 seconds at the time of writing)
balance: Punching basic mobs and humans now calculate damage based on strength
balance: W20 silver bullet handling. No agg damage in breed form. 5 bullets are a guaranteed loss of gnosis.
/:cl:

Copy link
Copy Markdown
Contributor

@chazzyjazzy chazzyjazzy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok - im gonna need to review this like, two more times, maybe one. i gave it a read through and understood most of what was going on, but im getting the feeling that i missed something and i was exhausted enough to just hit accept but that wont happen

Comment on lines +25 to +34
// DARKPACK EDIT CHANGE START - STORYTELLER_STATS
// ROLL TO HIT // DARKPACK TODO
// var/successes = SSroll.storyteller_roll(user.st_get_stat(STAT_DEXTERITY) + user.st_get_stat(STAT_BRAWL), 6, list(user), user)
// ROLL TO DAMAGE
var/damage_output
if(HAS_TRAIT(user, TRAIT_PERFECT_ATTACKER))
damage_output = user.st_get_stat(STAT_STRENGTH)
else
damage_output = SSroll.storyteller_roll(user.st_get_stat(STAT_STRENGTH), 6, list(user), user, TRUE)
var/damage = (basic_mob_flags & IMMUNE_TO_FISTS) ? 0 : damage_output TTRPG_DAMAGE // DARKPACK EDIT CHANGE - STORYTELLER_STATS
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Disclaimer I am drunk but shouldnt it be dexterity to see if they hit?

Like, the agility or speed or whatever if they miss

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be! It soft requires #633 so i can make the handling a bit cleaner and make sure this doesn't spam your chat.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#633 has been merged


/datum/species
/// Used in get_generic_name to replace gender
var/visable_gender_override
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo, visible

@@ -0,0 +1,46 @@
/datum/splat/werewolf/proc/examine_other_human(mob/living/carbon/examined)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

perhaps some wyrmtaint stuff here?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wyrmtaint still isn't really possible to get because we dont have da quirk.

Comment thread modular_darkpack/modules/werewolf_the_apocalypse/code/subsplats/tribes/garou.dm Outdated
Comment on lines +25 to +37
/**
* Gives the human a tribe, applying
* on_gain effects and post_gain effects if the
* parameter is true. Can also remove tribes
* with or without a replacement, and apply
* on_lose effects. Will have no effect the human
* is being given the tribe it already has.
*
* Arguments:
* * setting_tribe - Typepath or tribe singleton to give to the human
* * joining_round - If this tribe is being given at roundstart and should call on_join_round
*/
/mob/living/carbon/human/proc/set_fera_tribe(setting_tribe, joining_round)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this on human? can't it be on living?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

parody with clans. no strong reason atm for either type..

/datum/splat/werewolf/proc/auspice_rank_check()
return auspice.rank_requirments(renown)

// Pretty iffy on this. This could likely just be moved onto the splat itself so corax and other breeds can override it.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes that is probably for the best but please do it another pr because this one is already so long

Comment on lines +8 to +11
// DARKPACK TODO - WEREWOLF - (len lore)
/datum/splat/werewolf/kinfolk/get_splat_description()
return "Lorem Ipsum"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should probably get this and the other three filled out esp while waiting for reviews (since i dont think i should be the only review on this its so long), TFN has lore people who can help like Icey or Justice who have always helped me, or u can ask atla who made the doc

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the "len" mentioned in the comment is atlamillia.

Comment on lines +69 to +75
/datum/splat/werewolf/shifter/proc/get_breed_form_species()
return breed_form?.breed_species
/*
if(!owner?.dna)
return
return GLOB.breed_forms_list[owner.dna.features[FEATURE_FERA_BREED]]
*/
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can probably delete that comment since get_breed_form_species seems like its doing its job, the early return if dna doesnt exist may be helpful tho

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep! this used to be how xeon's code handled breeds but i ditched that.

/**
* If the character is any kind of fera or kinfolk creature, named after the game line
*/
/proc/iswerewolfsplat(mob/character)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldnt all these args in this file be mob/living since splats can only exist on mob/living

Copy link
Copy Markdown
Member Author

@FalloutFalcon FalloutFalcon Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

get_splat notibly exists on /mob/ atm...

parody with /proc/isvampiresplat(mob/character) which likely only exists because of its previous form as a define.
It would mean reworking all of those as well for sanity.

FalloutFalcon and others added 3 commits February 13, 2026 09:53
…s/tribes/garou.dm

Co-authored-by: chazzyjazzy <33268885+chazzyjazzy@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@chazzyjazzy chazzyjazzy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK - tested it for a few minutes, I've reviewed it once, this PR is massive, it was TMed and it went well, I couldnt find any major bugs on local, gave it another quick review of a few files, I think its time to merge this.

really cool stuff here, alot of people will be really happy with this

@FalloutFalcon FalloutFalcon added this pull request to the merge queue Feb 19, 2026
Merged via the queue into DarkPack13:master with commit 3ba2221 Feb 19, 2026
23 checks passed
@FalloutFalcon FalloutFalcon deleted the fera-rework branch February 19, 2026 16:29
github-actions Bot added a commit that referenced this pull request Feb 19, 2026
darkpack13-api Bot added a commit that referenced this pull request Feb 19, 2026
@FalloutFalcon FalloutFalcon mentioned this pull request Feb 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Basic mobs speaking causes runtimes

5 participants