public DamageSpecificationBuilder With(AttackDamageHand hand) { if (_damageSource is DamageSource s && s != DamageSource.Attack) { throw new ParseException( $"Damage source was already restricted to {_damageSource}"); } if (_hand is AttackDamageHand h && h != hand) { throw new ParseException( $"Hand was already restricted to {_hand}"); } return(new DamageSpecificationBuilder(_mode, DamageSource.Attack, _ailment, hand)); }
public IStatBuilder SkillUsesHand(AttackDamageHand hand) => FromIdentity($"SkillUses.{hand}", typeof(bool));
public DamageStatConcretizer With(AttackDamageHand hand) => With(_specificationBuilder.With(hand));
public AilmentAttackDamageSpecification(AttackDamageHand attackDamageHand, Ailment ailment) : base(DamageSource.Attack.GetName() + "." + attackDamageHand.GetName() + "." + ailment.GetName(), DamageSource.Attack, ailment) { _attackDamageHand = attackDamageHand; }
public SkillAttackDamageSpecification(AttackDamageHand attackDamageHand) : base(DamageSource.Attack.GetName() + "." + attackDamageHand.GetName() + ".Skill", DamageSource.Attack, null) { }
public IDamageRelatedStatBuilder With(AttackDamageHand hand) => With(StatConcretizer.With(hand));
public IActionBuilder HitWith(AttackDamageHand hand) => new ActionBuilder(_statFactory, CoreBuilder.Create($"Hit.{hand}"), _entity);
private ValueBuilder SkillUsesHandAsMultiplier(AttackDamageHand hand) => ValueFactory.If(_stat.SkillUsesHand(hand).IsSet).Then(1).Else(0);
public AilmentAttackDamageSpecification(AttackDamageHand attackDamageHand, Ailment ailment) : base($"{DamageSource.Attack}.{attackDamageHand}.{ailment}", DamageSource.Attack, ailment) { _attackDamageHand = attackDamageHand; }
public SkillAttackDamageSpecification(AttackDamageHand attackDamageHand) : base($"{DamageSource.Attack}.{attackDamageHand}.Skill", DamageSource.Attack, null) { }