Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 public DualCooldown(DurationTimer inactive, DurationTimer active, bool updateBoth = true)
 {
     Timer         = inactive;
     InactiveTimer = inactive;
     ActiveTimer   = active;
     UpdateBoth    = updateBoth;
 }
Esempio n. 3
0
    public void Populate(Transform target, float duration, Action onFinishCallback)
    {
        Populate(target);

        this.duration = duration;
        timer         = new DurationTimer(duration, onUpdate, () => {
            onFinishCallback?.Invoke();
            Destroy(gameObject);
        });
    }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
#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);
        }
Esempio n. 6
0
 public Cooldown(DurationTimer internalTimer)
 {
     Timer = internalTimer;
 }
 public void SetupAbilityCooldownTimer()
 {
     cooldownTimer = new DurationTimer(data.cooldownTime);
 }
Esempio n. 8
0
        private void HealthableOnDied(object sender, DeathEventArgs e)
        {
            var cd = new DurationTimer(_deathCooldown);

            _deadTracker.Add(new Tuple <Actor, DurationTimer>(e.Self, cd));
        }