public void OnEnable() { triggerUtility = GetComponent <TriggerUtility>(); triggerUtility.TriggerEntered += Enter; triggerUtility.TriggerExited += Exit; }
public override void Initialize(Actor data) { base.Initialize(data); Modules.Abilitiable.TryGetAbility(out _blackRose); _nurtureAura = TriggerUtility.GetOrCreateTrigger <SphereCollider>(data, "Nurture Aura"); _nurtureAura.Collider.radius = _nurtureRange; _nurtureAura.Trigger.Enter += Nurture_Enter; _nurtureAura.Trigger.Exit += Nurture_Exit; _neglectAura = TriggerUtility.GetOrCreateTrigger <SphereCollider>(data, "Neglect Aura"); _neglectAura.Collider.radius = _neglectRange; _neglectAura.Trigger.Enter += Neglect_Enter; _neglectAura.Trigger.Exit += Neglect_Exit; _neglectAura.Collider.enabled = false; _nurtureAura.Collider.enabled = true; _nurtureTargets = new List <IHealable>(); _neglectTargets = new List <IHealable>(); _rrTeamChecker = TeamableChecker.AllyOnly(Modules.Teamable); _brTeamChecker = TeamableChecker.NonAllyOnly(Modules.Teamable); CheckBuilder = new AbilityPredicateBuilder(data) { AllowSelf = false }; View = new SimpleAbilityView() { Icon = _rrIcon, Cooldown = CheckBuilder.Cooldown, StatCost = CheckBuilder.MagicCost, }; CheckBuilder.RebuildChecks(); }
private void SetTriggerUtility() { if (tu == null) { tu = GetComponent <TriggerUtility>(); } }
public void OnEnable() { triggerUtility = GetComponent <TriggerUtility>(); triggerUtility.TriggerEnter += Enter; triggerUtility.TriggerStay += Stay; triggerUtility.TriggerExit += Exit; }
public Attackerable(Actor actor, ITeamable teamable = default) : base(actor) { _teamable = teamable; var helper = TriggerUtility.CreateTrigger <SphereCollider>(Actor, AttackerableTrigger); _trigger = new AttackTargetTrigger <SphereCollider>(Actor, helper, _teamable); _attackCooldown = new DurationTimer(0f, true); _damage = new ModifiedValueBoilerplate <IAttackDamageModifier>(modifier => modifier.AttackDamage); _range = new ModifiedValueBoilerplate <IAttackRangeModifier>(modifier => modifier.AttackRange); _attacksPerInterval = new ModifiedValueBoilerplate <IAttacksPerIntervalModifier>(modifier => modifier.AttacksPerInterval); _interval = new ModifiedValueBoilerplate <IAttackIntervalModifier>(modifier => modifier.AttackInterval); }
public override void Initialize(Actor data) { base.Initialize(data); _sphereCollider = TriggerUtility.CreateTrigger <SphereCollider>(Self, "MagicalBacklash Trigger"); _sphereCollider.Trigger.Enter += OnActorEnter; _sphereCollider.Trigger.Exit += OnActorExit; _targetBuffer = new List <IAbilitiable>(); Checker = new AbilityPredicateBuilder(data) { AllowSelf = false, Teamable = TeamableChecker.NonAllyOnly(Modules.Teamable) }; View = new SimpleAbilityView() { Icon = _icon }; Register(data); if (data.TryGetModule <IKillable>(out var killable)) { killable.Died += SelfDied; } }
public Aggroable(Actor actor, ITeamable teamable = default) : base(actor) { var helper = TriggerUtility.CreateTrigger <SphereCollider>(actor, TriggerName); _triggerLogic = new AttackTargetTrigger <SphereCollider>(Actor, helper, teamable); }