public override void Core() { if (this._blackHoleTimer.isActive) { this._blackHoleTimer.Core(1f); if (this._blackHoleTimer.isTimeUp) { this.KillBlackHole(true); } else { for (int i = 0; i < this._insideActors.Count; i++) { BaseAbilityActor targetActor = this._insideActors[i]; if ((targetActor != null) && targetActor.IsActive()) { if ((this._pullVelocity > 0f) && (Miscs.DistancForVec3IgnoreY(targetActor.entity.XZPosition, this._fieldActor.triggerField.transform.position) < 0.3f)) { this.RemoveAdditiveVelocity(targetActor); } else { Vector3 additiveVelocity = this._fieldActor.triggerField.transform.position - targetActor.entity.XZPosition; additiveVelocity.y = 0f; additiveVelocity.Normalize(); this.SetAdditiveVelocity(targetActor, additiveVelocity); } } } } } }
private void ApplyModifierOn(BaseAbilityActor actor, string[] modifiers) { if ((actor != null) && actor.IsActive()) { for (int i = 0; i < modifiers.Length; i++) { actor.abilityPlugin.ApplyModifier(base.instancedAbility, modifiers[i]); } } }
private void ApplyModifierOn(BaseAbilityActor actor) { if ((actor != null) && actor.IsActive()) { for (int i = 0; i < this.config.TargetModifiers.Length; i++) { actor.abilityPlugin.ApplyModifier(base.instancedAbility, this.config.TargetModifiers[i]); } } }
private bool OnHittingOther(EvtHittingOther evt) { bool flag = false; if (!evt.attackData.isAnimEventAttack) { return(false); } if (this._animEventIDs != null) { if (Miscs.ArrayContains <string>(this._animEventIDs, evt.animEventID)) { flag = true; } } else { flag = true; } if (flag) { BaseAbilityActor actor = Singleton <EventManager> .Instance.GetActor <BaseAbilityActor>(evt.toID); if ((actor == null) || !actor.IsActive()) { return(false); } Vector3 from = base.actor.entity.transform.position - actor.entity.transform.position; float num = Vector3.Angle(base.actor.entity.transform.forward, actor.entity.transform.forward); float num2 = Vector3.Angle(from, actor.entity.transform.forward); bool flag2 = (num < this._forwardAngleRangeMax) && (num > this._forwardAngleRangeMin); bool flag3 = (num2 < this._posAngleRangeMax) && (num2 > this._posAngleRangeMin); bool flag4 = from.magnitude < this._backHitRange; if ((flag2 && flag3) && flag4) { evt.attackData.addedDamageRatio += base.instancedAbility.Evaluate(this.config.BackDamageRatio); base.actor.abilityPlugin.HandleActionTargetDispatch(this.config.Actions, base.instancedAbility, base.instancedModifier, base.actor, evt); } } return(true); }