Ejemplo n.º 1
0
 public void OnEventDidTrigger(RuleAttackWithWeaponResolve evt)
 {
     if (this.WaitForAttackResolve)
     {
         this.TryRunActions(evt.AttackWithWeapon, evt);
     }
 }
 public void OnEventDidTrigger(RuleAttackWithWeaponResolve evt)
 {
     if (this.Owner.Wielder == null || evt.AttackWithWeapon.Weapon != this.Owner)
     {
         return;
     }
     if (!evt.AttackRoll.IsHit && only_on_hit)
     {
         return;
     }
     TryRunActions(evt.AttackWithWeapon);
 }
Ejemplo n.º 3
0
        private void TryRunActions(RuleAttackWithWeapon rule, RuleAttackWithWeaponResolve evt)
        {
            var valid_target = this.CheckValidTarget(rule);

            if ((this.CheckCondition(rule) && valid_target) || ((IsRanged && CheckProjectile(evt)) && valid_target))
            {
                using (new ContextAttackData(rule.AttackRoll, null))
                {
                    IFactContextOwner factContextOwner2 = base.Fact as IFactContextOwner;
                    if (factContextOwner2 != null)
                    {
                        factContextOwner2.RunActionInContext(this.Action, rule.Initiator);
                    }
                }
            }
        }
Ejemplo n.º 4
0
 private bool CheckProjectile(RuleAttackWithWeaponResolve evt)
 {
     if (ReduceHPToZero && !(evt.Target.HPLeft <= 0 && evt.Target.HPLeft + evt.Damage.Damage > 0))
     {
         return(false);
     }
     if (this.CriticalHit && (!evt.AttackWithWeapon.Projectile.AttackRoll.IsCriticalConfirmed || evt.AttackWithWeapon.Projectile.AttackRoll.FortificationNegatesCriticalHit))
     {
         return(false);
     }
     if ((evt.AttackWithWeapon.Weapon.Blueprint.Category == WeaponCategory.Dagger || evt.AttackWithWeapon.Weapon.Blueprint.Category == WeaponCategory.Starknife) && evt.AttackWithWeapon.Weapon.Blueprint.IsRanged)
     {
         return(true);
     }
     return(false);
 }
Ejemplo n.º 5
0
 public void OnEventAboutToTrigger(RuleAttackWithWeaponResolve evt)
 {
 }