Skip to content

Reworks Melee to use rolls and stats#1015

Open
FalloutFalcon wants to merge 4 commits into
DarkPack13:masterfrom
FalloutFalcon:soft-melee-rework
Open

Reworks Melee to use rolls and stats#1015
FalloutFalcon wants to merge 4 commits into
DarkPack13:masterfrom
FalloutFalcon:soft-melee-rework

Conversation

@FalloutFalcon
Copy link
Copy Markdown
Member

@FalloutFalcon FalloutFalcon commented May 4, 2026

About The Pull Request

Mostly reproduces the same code as brawl.
This needs a followup pr with a ton of balance tweaks for the weapons, we have some varibles that lets us replicate ttrpg stuff. (like attack difficulty)

Why It's Good For The Game

This has alot of balance effects but TTRPG accuraecy and parody with brawl is good.

Changelog

🆑
balance: Reworks melee to roll damage based off two rolls (to parody the TTRPG and brawl)
balance: Protean claws use brawl
refactor: Removes snowflake protean claws damage buff in favor of generic melee code
/:cl:

@github-actions
Copy link
Copy Markdown
Contributor

This PR has been inactive for long enough to be automatically marked as stale. This means it is at risk of being auto closed in ~7 days. Please address any outstanding review items and ensure your PR is finished - if both are true, and you have auto-staled anyway, you need to actively ask maintainers (by pinging them in the /tg/station Discord) to (re)review or merge your PR. If no maintainer responds to your request, you may wish to close this PR yourself while you seek maintainer comment, as you will later be able to reopen the PR yourself.

@github-actions github-actions Bot added the Stale label May 12, 2026
@FalloutFalcon FalloutFalcon marked this pull request as ready for review May 18, 2026 15:15
@FalloutFalcon FalloutFalcon requested a review from a team as a code owner May 18, 2026 15:15
// DARKPACK EDIT ADD START - STORYTELLER_ROLLS/STORYTELLER_STATS
// This is pretty evil, but we are gonna convert all the tg force into the +# that melee weapons have listed.
// This means we can do stuff like set force of a baseball bat to 2 TTRPG_DAM and it just works.
var/bonus_dice = round(final_force / (1 TTRPG_DAMAGE))
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.

small nit - doesn't round() always round down? i noticed this in testing for something a bit back. i can imagine people getting antsy about this

var/datum/storyteller_roll/damage/damage_roll = new()
damage_roll.applicable_stats = list(attacking_item.st_damage_stat)
var/damage_roll_result = damage_roll.st_roll(user, src, bonus_dice)
final_force = damage_roll_result
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.

don't you mean damage_roll_result TTRPG_DAMAGE?

i forget if this is already handled by the storyteller roll subtype

attack_roll.difficulty = attacking_item.attack_difficulty
var/attack_roll_result = attack_roll.st_roll(user, src)

// What i want to do is acctually have it return if not success. But that creates bad visual feedback as all the FX still play. just give them them SOME damage..
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.

good idea since the rng-ification of combat would probably be ferociously hated

Comment on lines +361 to +369
if(attack_roll_result == ROLL_SUCCESS)
// This is pretty evil, but we are gonna convert all the tg force into the +# that melee weapons have listed.
// This means we can do stuff like set force of a baseball bat to 2 TTRPG_DAM and it just works.
var/bonus_dice = round(final_force / (1 TTRPG_DAMAGE))
var/datum/storyteller_roll/damage/damage_roll = new()
damage_roll.applicable_stats = list(attacking_item.st_damage_stat)
var/damage_roll_result = damage_roll.st_roll(user, src, bonus_dice)

final_force = max(damage_roll_result TTRPG_DAMAGE, 1 TTRPG_DAMAGE)
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.

so i don't get it - say a baseball bat has original force = 40. this makes bonus dice = 4. so if i have 0 strength, then the roll becomes 4 dice rolled for damage, giving me 10-40 damage which seems good. but then if i have 4 strength, then i have 8 potential dice, no? meaning strength, the stat which affects the damage roll, is actually additive to the force, not the foundation of the damage, as now my range is 10-80.

what i'm trying to say here is that this (the usage of ttrpg accurate rolls in melee) is an additive buff to the calculation of melee force, rather than a reworking of how the damage is created in the first place (which may be the intent of the pr?)

i don't exactly have an issue with this moreso than i feel like it may unintentionally up-end the balance - i see what you were trying to do, and it is smart

then again if the point is to have a better bandaid than my 'makes melee do something' pr, then this definitely does that, i think, if a bit stronger

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.

2 participants