gcs icon indicating copy to clipboard operation
gcs copied to clipboard

Feature: Partial dice on innate attack damage

Open ryder-james opened this issue 2 years ago • 7 comments

I propose adding a way to allow input of partial dice damage for innate attacks. According to B62, you do not have to by whole numbered dice of damage.

To calculate damage/cost...

...for damage values that include a die component: Use ceiling(x(D +/- 0.3y)), where x is the price of the attack type in CP (e.g., 5 for a Burning attack), D is the number of dice, and y is a whole number added to or subtracted from the roll.

Examples:

  • Burning Attack 1d-2 (avg 1.5 damage) [2] (5 * (1 - 0.3(2)))
  • Toxic Attack 2d+3 (avg. 10) [12] (4 * (2 + 0.3(3))), rounded up
  • Fatigue Attack 32d+25 (avg. 137) [395] (10 * (32 + 0.3(25)))
  • Fatigue Attack 39d (avg. 136.5) [390] (10 * (39 + 0.3(0)))

...for static damage values: Use ceiling(x(0.25 + 0.3(y - 1)), where x is the price of the attack type and y is the total amount of static damage desired.

Examples:

  • Burning Attack 2 [3] (5 * (0.25 + 0.3(1))), rounded up
  • Toxic Attack 10 [12] (4 * (0.25 + 0.3(9))), rounded up
  • Fatigue Attack 137 [411] (10 * (0.25 + 0.3(136))), rounded up

After calculating cost for damage, apply any modifiers to the final, rounded up value to get the total cost of the innate attack. (see Kromm's official ruling on this here)

ryder-james avatar Jun 25 '22 22:06 ryder-james

Wouldn't the way GCS works necessitate that this functionality is reversed, so you get the damage from the level / point value?

rinickolous avatar Jun 25 '22 23:06 rinickolous

Yes, I believe @rinickolous is correct, at least without some sort of change to the interface specifically for this purpose, which I'm unlikely to want to do.

richardwilkes avatar Jun 26 '22 03:06 richardwilkes

Although going the other direction may be problematic, due to the split between dice and modifiers. Anyway, good to have this info here for future pondering...

richardwilkes avatar Jun 26 '22 03:06 richardwilkes

So yes, the logic is definitely backwards; Though I think with the possibility of floating point CP inputs in the new GCS, doing the math the other way should be possible - and as per the linked post from Kromm, the behavior would be the same regardless of the underlying advantage. Round up before starting the modifier step. My main concern comes from the need for the innate attack to do some very specific stuff that other advantages won't do, hurting DRY code

ryder-james avatar Jun 26 '22 03:06 ryder-james

To clarify, you might have a "decimal level" advantage or something, then points per level would be the cost of the attack type, and levels could be the fractional input (5 points per level, 3.3 levels would create a 3d+1 attack for 16.5 total CP, which rounds up to 17 before the modifier step)

ryder-james avatar Jun 26 '22 03:06 ryder-james

From what I'm seeing here, the point costs don't factor into this at all, and what we're looking for instead is just a change in how leveled damage is handled when it comes to decimal levels of an advantage. Decimal levels and their point costs are already handled (in GCS 5). What we'd be looking for, then, is a ruling on how to handle damage scaling for partial levels. I'm not sure if there is a precedence in the books or any official SJG rulings, but I saw some precedence for how partial dice should be treated in the Master Library: Many of the monsters in the Dungeon Fantasy 2 directory have modified base attacks listed in their notes sections. From what I can tell, it looks like a modifier to the attack's damage is calculated by multiplying the base dice by the level. However, I don't see a clear way for this to work at higher damage values. Something like 1d damage at level 1.5 is easy enough: 1d + round((1.5*3.5)-3.5) = 1d+2 makes sense, but what about 2d damage at level 1.5? is it 3d or 2d+4? I guess that depends on Modifying Dice + Adds (B269), right? Then there's the matter of how base values with already present modifiers would work. Say 2d+3 * 1.5: Average base damage is 10, * 1.5 is 15, - 7 is 8, and you end up with 2d+8 or 4d+1 with MD+A. And would there be any difference if it was 4d-4 * 1.5? The average damage is also 10, so you end up with 10 * 1.5 is 15, - 14 (3.5*4) is 1, so 4d+1 unambiguously. There's definitely some flaws here. It doesn't seem to be possible, for example, to achieve certain results from some base damage values (e.g. working backwards, 4d-4 should be 1d * ~2.9, but 1d * 2.9 yields 2d+3 (if we take whole level multiples to mean "multiply the number of dice by this number)).

rinickolous avatar Jun 26 '22 11:06 rinickolous

Hmmm... I understand the difficulty you're pointing out. The best approach probably is letting them enter their own damage. That said, I still think fractional levels would be nice just so GCS can math out the CP for you - which is really the most annoying part for me when I'm entering attacks with partial dice.

Edit: just saw the note about GCS 5. Is that the upcoming Go implementation?

ryder-james avatar Jun 28 '22 15:06 ryder-james

GCS v5+ has support for fractional levels and I don't currently plan to do anything beyond that for this. If there is something more focused that you believe could be done, please either re-open this issue and explain, or create a new issue for it.

richardwilkes avatar Dec 25 '22 00:12 richardwilkes