public override void Initialize(Actor data) { base.Initialize(data); _channelTimer = new DurationTimer(_channelTime); Modules.Abilitiable.TryGetAbility(out _overheatAbility); CheckBuilder = new AbilityPredicateBuilder(data) { Teamable = TeamableChecker.NonAllyOnly(Modules.Teamable), MagicCost = new MagicCost(Modules.Magicable, _manaCost), Cooldown = new Cooldown(_cooldown), AllowSelf = false, }; View = new SimpleAbilityView() { Icon = _icon, Cooldown = CheckBuilder.Cooldown, StatCost = CheckBuilder.MagicCost, Toggleable = new ToggleableAbilityView() { ShowActive = true } }; CheckBuilder.RebuildChecks(); Register(data); }
public DualCooldown(DurationTimer inactive, DurationTimer active, bool updateBoth = true) { Timer = inactive; InactiveTimer = inactive; ActiveTimer = active; UpdateBoth = updateBoth; }
public void Populate(Transform target, float duration, Action onFinishCallback) { Populate(target); this.duration = duration; timer = new DurationTimer(duration, onUpdate, () => { onFinishCallback?.Invoke(); Destroy(gameObject); }); }
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); }
#pragma warning restore 0649 public override void Initialize(Actor data) { base.Initialize(data); _activeTimer = new DurationTimer(_duration); _armorable = Self.GetModule <IArmorable>(); Checker = new AbilityPredicateBuilder(data) { Cooldown = new Cooldown(_cooldown), MagicCost = new MagicCost(Modules.Magicable, _manaCost) }; View = new SimpleAbilityView() { Icon = _icon, Cooldown = Checker.Cooldown, StatCost = Checker.MagicCost, Toggleable = new ToggleableAbilityView() { ShowActive = true } }; Register(data); }
public Cooldown(DurationTimer internalTimer) { Timer = internalTimer; }
public void SetupAbilityCooldownTimer() { cooldownTimer = new DurationTimer(data.cooldownTime); }
private void HealthableOnDied(object sender, DeathEventArgs e) { var cd = new DurationTimer(_deathCooldown); _deadTracker.Add(new Tuple <Actor, DurationTimer>(e.Self, cd)); }