11-08-2019, 03:38 PM | #1 |
Join Date: Feb 2005
Location: Psionic Ward
|
Make advantage grant +1/die to ALL "Punch" and "Kick" modes
I'm trying to implement the advantage "Unarmed Master" from Pyramid 3-61 p13. One of the benefits of the advantage is that it gives +1/die to punches and kicks, and the bonus stacks with other bonuses (like for Karate).
So far, I've figured out Code:
+@basethdice(ST:Punch) to ST:Punch::damage, +@basethdice(ST:Kick) to ST:Kick:damage Is there a way to make it grant a bonus to all the "punch modes" given by skills? |
11-12-2019, 04:02 PM | #2 |
Join Date: Aug 2004
Location: Binghamton, NY, USA. Near the river Styx in the 5th Circle.
|
Re: Make advantage grant +1/die to ALL "Punch" and "Kick" modes
Alrighty, so I let this sit for a few days to give my brain some time to percolate on this. The basic issue is that it's not really possible for a trait to give a bonus to a specific attack mode of another trait; with a "trait" in GCA being defined as an Attribute, Advantage, Disadvantage, Perk, Quirk, Skill, Spell, or piece of Equipment.
Modifiers can give bonuses to specific modes to the trait on which the modifier is applied. So this leaves us with two options, require a modifier be added to the trait which you intend to get the bonus (Boxing/Brawling/Karate) or make a change to the attack modes of those traits. The way that it's currently done is to make changes to the targeted traits themselves; all unarmed combat skills have code in the damage tag of each attack mode to give bonuses for things like skill level and claws. This is further complicated by the way that GCA treats different combat modes internally. I've tested this code, and it looks like it's working properly, but I do recommend you double-check for your own usage. Code:
#ReplaceTags in {SK:Boxing} with _ {damage(_ thr-1 + _ @if("AD:Unarmed Master::level" = 1 then @basethdice(ST:Punch) else 0) + _ @if(me::level = ST:DX+1 then @basethdice(ST:Punch) else @if(me::level > ST:DX+1 then 2 * @basethdice(ST:Punch) else 0)) + _ @if("AD:Claws (Blunt Claws)::level" = 1 & @itemhasmod(AD:Claws (Blunt Claws), Feet Only) = 0 then @basethdice(ST:Punch) else @if("AD:Claws (Long Talons)::level" = 1 & @itemhasmod(AD:Claws (Long Talons), Feet Only) = 0 then @basethdice(ST:Punch) else 0)) _ )} #ReplaceTags in {SK:Karate} with _ {damage(_ thr-1 + _ @if("AD:Unarmed Master::level" = 1 then @basethdice(ST:Punch) else 0) + _ @if(me::level = ST:DX then @basethdice(ST:Punch) else @if(me::level > ST:DX then 2 * @basethdice(ST:Punch) else 0)) + _ @if("AD:Claws (Blunt Claws)::level" = 1 & @itemhasmod(AD:Claws (Blunt Claws), Feet Only) = 0 then @basethdice(ST:Punch) else @if("AD:Claws (Long Talons)::level" = 1 & @itemhasmod(AD:Claws (Long Talons), Feet Only) = 0 then @basethdice(ST:Punch) else 0)) _ | _ thr+ _ @if("AD:Unarmed Master::level" = 1 then @basethdice(ST:Kick) else 0) + _ @if(me::level = ST:DX then @basethdice(ST:Kick) else @if(me::level > ST:DX then 2 * @basethdice(ST:Kick) else 0)) + _ @if("DI:Horizontal::level" = 1 then @if("AD:Claws (Blunt Claws)::level" = 1 then 0 else @if("AD:Claws (Sharp Claws)::level" = 1 then 0 else @if("AD:Claws (Talons)::level" = 1 then 0 else @if("AD:Claws (Long Talons)::level" = 1 then 0 else -@basethdice(ST:Kick))))) else 0) + _ @if("AD:Claws (Blunt Claws)::level" = 1 & @itemhasmod(AD:Claws (Blunt Claws), Hands Only) = 0 then @basethdice(ST:Kick) else @if("AD:Claws (Long Talons)::level" = 1 & @itemhasmod(AD:Claws (Long Talons), Hands Only) = 0 then @basethdice(ST:Kick) else @if("AD:Claws (Hooves)::level" = 1 then @basethdice(ST:Kick) else 0)))_ )} #ReplaceTags in {SK:Brawling} with _ {damage(_ thr-1 + _ @if("AD:Unarmed Master::level" = 1 then @basethdice(ST:Punch) else 0) + _ @if(me::level > ST:DX+1 then @basethdice(ST:Punch) else 0) + _ @if("AD:Claws (Blunt Claws)::level" = 1 & @itemhasmod(AD:Claws (Blunt Claws), Feet Only) = 0 then @basethdice(ST:Punch) else @if("AD:Claws (Long Talons)::level" = 1 & @itemhasmod(AD:Claws (Long Talons), Feet Only) = 0 then @basethdice(ST:Punch) else 0)) _ | _ thr-1 + _ @if("AD:Unarmed Master::level" = 1 then @basethdice(ST:Bite) else 0) + _ @if(me::level > ST:DX+1 then @basethdice(ST:Bite) else 0) + _ -@if("DI:Weak Bite::level" = 1 then 2 * @basethdice(ST:Bite) else 0)_ | _ thr+ _ @if("AD:Unarmed Master::level" = 1 then @basethdice(ST:Kick) else 0) + _ @if(me::level > ST:DX+1 then @basethdice(ST:Kick) else 0) + _ @if("DI:Horizontal::level" = 1 then @if("AD:Claws (Blunt Claws)::level" = 1 then 0 else @if("AD:Claws (Sharp Claws)::level" = 1 then 0 else @if("AD:Claws (Talons)::level" = 1 then 0 else @if("AD:Claws (Long Talons)::level" = 1 then 0 else -@basethdice(ST:Kick))))) else 0) + _ @if("AD:Claws (Blunt Claws)::level" = 1 & @itemhasmod(AD:Claws (Blunt Claws), Hands Only) = 0 then @basethdice(ST:Kick) else @if("AD:Claws (Long Talons)::level" = 1 & @itemhasmod(AD:Claws (Long Talons), Hands Only) = 0 then @basethdice(ST:Kick) else @if("AD:Claws (Hooves)::level" = 1 then @basethdice(ST:Kick) else 0)))_ )}
__________________
Eric B. Smith GURPS Data File Coordinator GURPSLand I shall pull the pin from this healing grenade and... Kaboom-baya. |
11-15-2019, 08:38 AM | #3 |
Join Date: Feb 2005
Location: Psionic Ward
|
Re: Make advantage grant +1/die to ALL "Punch" and "Kick" modes
Thank you for your help!
|
|
|