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); }
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); } } } }
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); }
public void OnEventAboutToTrigger(RuleAttackWithWeaponResolve evt) { }