Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix reaction/initiative aug/magic compatibility #714

Merged
merged 8 commits into from
Oct 23, 2023

Conversation

jdevnull
Copy link
Contributor

M&M pg79:

Magic effects, such as adept powers and spells, are usually complementary to bioware effects.

Further down the page:

If Reaction/Initiative-boosting bioware is used in conjunction with adept powers or spells that boost Reaction and Initiative, only the highest bonus applies.

So, this PR does the following:

  1. Muscle toner and cerebral boosters, while they affect the reaction calculation, do not directly augment the reaction stat, thus they should be compatible with reaction increasing magics.
  2. The higher of either total reaction augmentations -or- reaction magic should be applied.
  3. The higher of either total initiative dice augmentations -or- initiative dice magic should be applied.

@jdevnull
Copy link
Contributor Author

jdevnull commented Oct 16, 2023

Question: This effectively redefines incompatibility as meaning that only the higher value applies. Would it make sense then to strip out the code that prevents casting the increase reaction and increase reflexes spells from being cast on those with reaction/initiative augmentations?

Edit: This redefinition and stripping out the casting restriction would also be the easiest way to fix the bug where the increase reaction spell blocks the increase reflexes spell and is blocked by the increase qui/int spells, muscle toner, and cerebral booster.

src/handler.cpp Outdated Show resolved Hide resolved
// We want the higher of either cyber+bio or magic/adept
sbyte aug_rea = GET_REA(ch);
sbyte aug_init_dice = GET_INIT_DICE(ch);
GET_REA(ch) = 0;
Copy link
Owner

Choose a reason for hiding this comment

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

Should this be GET_REA(ch) = GET_REAL_REA(ch)?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The quickness and intelligence contributions to reaction get added in at the very end of all the attribute stuff, so that drugs, capping, and nerve strike modifiers all apply.

There's a question as to how GET_REAL_REA should be calculated though... SR3 rules consider cerebral boosters, muscle toner, and adept improved ability to be natural in most cases.... but not always, since toners (and probably also adept improved qui) don't apply to reaction when rigging.

Copy link
Owner

Choose a reason for hiding this comment

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

I don't have a strong opinion on that question myself, so if you're confident in this code as it stands I'm happy to merge it for testing.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Maybe leave GET_REAL_REA alone for informational purposes, and then if we're decking or rigging, let's update GET_REA (and GET_INIT_DICE) to the appropriate values.

@luciensadi
Copy link
Owner

Can I get write access to your fork? I need to push the updated workflow file so the build can succeed.

@jdevnull
Copy link
Contributor Author

Available direct decker reaction/initiative bonuses are their cyberdeck's response increase, running a hot ASIST while using pure DNI, and a reality filter, for a cumulative maximum bonus of +10 reaction +5D6 initiative (Matrix pg 24). If we assume that all player deckers use pure DNI, then their reaction = intelligence (Matrix pg 18). Direct cyber/bio bonuses to reaction/initiative don't apply (Matrix pg 24). Magical bonuses are not mentioned, so I assume they also don't apply. This revision fixes the bug where the cerebral booster bonus and pain editor penalty weren't propagating to matrix reaction, and implements the missing reaction/initiative from using a hot ASIST with a pure DNI.

Except for VCRs, direct cyber/bio bonuses to reaction/initiative (and indirectly through quickness) don't apply (R3 pg 27). There's a line stating that physical spells affecting reaction do apply (R3 pg 28), but no such spell exists (there's only a mana spell that does that). For ease of coding, I assume magical bonuses have the same restrictions as cyber/bio. This revision fixes the bugs where the cerebral booster bonus and pain editor penalty weren't propagating to rigger reaction, and where the pain editor penalty wasn't propagating to control pool.

However, this PR does allow direct reaction/initiative bonuses to apply to riggers from drugs. SR3 rules as written is unclear on this point, but this is necessary to allow riggers to keep up with samurai (though an alternative solution exists if we want to consider ruling that drugs don't stack with reaction/initiative increasing 'ware/magic). I also implemented a cap at 5 for bonus initiative dice, as the fastest samurai and riggers should not be faster than the fastest deckers.

I think another review (to sanity check the new changes), and then this PR will be ready to be merged for testing.

@luciensadi
Copy link
Owner

Thanks! Merging to test.

@luciensadi luciensadi merged commit cd30c0a into luciensadi:master Oct 23, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants