示例#1
0
 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)
 {
 }