예제 #1
0
        private void ControlLoaded(object sender, RoutedEventArgs e)
        {
            if (DesignerProperties.GetIsInDesignMode(this))
            {
                return;
            }
            _context = (SkillCooldown)DataContext;
            _context.PropertyChanged += _context_PropertyChanged;

            //LayoutTransform = new ScaleTransform(.9, .9, .5, .5);

            //CurrentCD = (double)_context.Cooldown / 1000;
            NotifyPropertyChanged(nameof(CurrentCD));

            NumberTimer = new DispatcherTimer()
            {
                Interval = TimeSpan.FromMilliseconds(1000)
            };
            CloseTimer = new  DispatcherTimer()
            {
                Interval = TimeSpan.FromMilliseconds(ending)
            };

            CloseTimer.Tick  += CloseTimer_Tick;
            NumberTimer.Tick += (s, o) =>
            {
                _secondsPassed += 1000;
                NotifyPropertyChanged(nameof(CurrentCD));
            };
            AnimateCooldown();
        }
예제 #2
0
 public override bool StartSpecialSkill(SkillCooldown sk)
 {
     if (sk.Skill.IconName == Thunderbolt.Skill.IconName)
     {
         Thunderbolt.Start(sk.Cooldown);
         return(true);
     }
     return(false);
 }
 public override bool StartSpecialSkill(SkillCooldown sk)
 {
     if (sk.Skill.IconName == DeadlyGamble.Cooldown.Skill.IconName)
     {
         DeadlyGamble.Cooldown.Start(sk.Cooldown);
         return(true);
     }
     return(false);
 }
 public override bool StartSpecialSkill(SkillCooldown sk)
 {
     if (sk.Skill.IconName == ShadowReaping.Cooldown.Skill.IconName)
     {
         ShadowReaping.Cooldown.Start(sk.Cooldown);
         return(true);
     }
     return(false);
 }
 public override bool StartSpecialSkill(SkillCooldown sk)
 {
     if (sk.Skill.IconName == Ragnarok.Cooldown.Skill.IconName)
     {
         Ragnarok.Cooldown.Start(sk.Cooldown);
         return(true);
     }
     return(false);
 }
예제 #6
0
        public void AddOrRefresh(SkillCooldown sk)
        {
            switch (Settings.CooldownBarMode)
            {
            case CooldownBarMode.Fixed:
                FixedMode_Update(sk);
                break;

            default:
                NormalMode_Update(sk);
                break;
            }
        }
예제 #7
0
        private void NormalMode_Change(Skill skill, uint cd)
        {
            if (!Settings.CooldownWindowSettings.Enabled)
            {
                return;
            }
            if (ClassManager.ChangeSpecialSkill(skill, cd))
            {
                return;
            }

            SkillCooldown sk;

            try
            {
                if (cd < SkillManager.LongSkillTreshold)
                {
                    var existing = ShortSkills.ToSyncArray().FirstOrDefault(x => x.Skill.Name == skill.Name);
                    if (existing == null)
                    {
                        sk = new SkillCooldown(skill, cd, CooldownType.Skill, Dispatcher);
                        ShortSkills.Add(sk);
                        return;
                    }
                    existing.Refresh(cd);
                }
                else
                {
                    var existing = LongSkills.ToSyncArray().FirstOrDefault(x => x.Skill.Name == skill.Name);
                    if (existing == null)
                    {
                        existing = ShortSkills.ToSyncArray().FirstOrDefault(x => x.Skill.Name == skill.Name);
                        if (existing == null)
                        {
                            sk = new SkillCooldown(skill, cd, CooldownType.Skill, Dispatcher);
                            LongSkills.Add(sk);
                        }
                        else
                        {
                            existing.Refresh(cd);
                        }
                        return;
                    }
                    existing.Refresh(cd);
                }
            }
            catch
            {
                // ignored
            }
        }
 public override bool StartSpecialSkill(SkillCooldown sk)
 {
     if (sk.Skill.IconName == FireAvalanche.Skill.IconName)
     {
         FireAvalanche.Start(sk.Cooldown);
         return(true);
     }
     if (sk.Skill.IconName == BurningHeart.Skill.IconName)
     {
         BurningHeart.Start(sk.Cooldown);
         return(true);
     }
     return(false);
 }
예제 #9
0
 public override bool StartSpecialSkill(SkillCooldown sk)
 {
     if (sk.Skill.IconName == EnergyStars.Cooldown.Skill.IconName)
     {
         EnergyStars.Cooldown.Start(sk.Cooldown);
         return(true);
     }
     if (sk.Skill.IconName == Grace.Cooldown.Skill.IconName)
     {
         Grace.Cooldown.Start(sk.Cooldown);
         return(true);
     }
     return(false);
 }
 public override bool StartSpecialSkill(SkillCooldown sk)
 {
     if (sk.Skill.IconName == FieryRage.Cooldown.Skill.IconName)
     {
         FieryRage.Cooldown.Start(sk.Cooldown);
         return(true);
     }
     if (sk.Skill.IconName == Bloodlust.Cooldown.Skill.IconName)
     {
         Bloodlust.Cooldown.Start(sk.Cooldown);
         return(true);
     }
     return(false);
 }
예제 #11
0
 public override bool StartSpecialSkill(SkillCooldown sk)
 {
     if (sk.Skill.IconName == Balder.Cooldown.Skill.IconName)
     {
         Balder.Cooldown.Start(sk.Cooldown);
         return(true);
     }
     if (sk.Skill.IconName == Bombardment.Cooldown.Skill.IconName)
     {
         Bombardment.Cooldown.Start(sk.Cooldown);
         return(true);
     }
     return(false);
 }
 public override bool StartSpecialSkill(SkillCooldown sk)
 {
     if (sk.Skill.IconName == InColdBlood.Cooldown.Skill.IconName)
     {
         InColdBlood.Cooldown.Start(sk.Cooldown);
         return(true);
     }
     if (sk.Skill.IconName == OverhandStrike.Skill.IconName)
     {
         OverhandStrike.Start(sk.Cooldown);
         return(true);
     }
     return(false);
 }
예제 #13
0
        private void FixedMode_Update(SkillCooldown sk)
        {
            if (Settings.ClassWindowSettings.Enabled && ClassManager.StartSpecialSkill(sk))
            {
                return;
            }
            if (!Settings.CooldownWindowSettings.Enabled)
            {
                return;
            }

            var hSkill = HiddenSkills.ToSyncArray().FirstOrDefault(x => x.IconName == sk.Skill.IconName);

            if (hSkill != null)
            {
                return;
            }

            var skill = MainSkills.FirstOrDefault(x => x.Skill.IconName == sk.Skill.IconName);

            if (skill != null)
            {
                if (sk.Pre)
                {
                    skill.Start(sk.Cooldown, CooldownMode.Pre);
                }
                else
                {
                    skill.Start(sk.Cooldown);
                }
                return;
            }
            skill = SecondarySkills.ToSyncArray().FirstOrDefault(x => x.Skill.IconName == sk.Skill.IconName);
            if (skill != null)
            {
                if (sk.Pre)
                {
                    skill.Start(sk.Cooldown, CooldownMode.Pre);
                }
                else
                {
                    skill.Start(sk.Cooldown);
                }
                return;
            }


            UpdateOther(sk);
        }
예제 #14
0
        public override bool StartSpecialSkill(SkillCooldown sk)
        {
            if (sk.Skill.IconName == Contagion.Skill.IconName)
            {
                Contagion.Start(sk.Cooldown);
                return(true);
            }

            if (sk.Skill.IconName == Vow.Cooldown.Skill.IconName)
            {
                Vow.Cooldown.Start(sk.Cooldown);
                return(true);
            }
            return(false);
        }
예제 #15
0
 public override bool StartSpecialSkill(SkillCooldown sk)
 {
     if (sk.Skill.IconName == GuardianShout.Cooldown.Skill.IconName)
     {
         GuardianShout.Cooldown.Start(sk.Cooldown);
         return(true);
     }
     if (sk.Skill.IconName == AdrenalineRush.Cooldown.Skill.IconName)
     {
         AdrenalineRush.Cooldown.Start(sk.Cooldown);
         return(true);
     }
     if (sk.Skill.IconName == Infuriate.Skill.IconName)
     {
         Infuriate.Start(sk.Cooldown);
         return(true);
     }
     return(false);
 }
예제 #16
0
 private void NormalMode_Update(SkillCooldown sk)
 {
     if (Settings.ClassWindowSettings.Enabled && ClassManager.StartSpecialSkill(sk))
     {
         return;
     }
     if (!Settings.CooldownWindowSettings.Enabled)
     {
         return;
     }
     if (sk.Type == CooldownType.Item)
     {
         FindAndUpdate(ItemSkills, sk);
         return;
     }
     try
     {
         if (sk.Cooldown < SkillManager.LongSkillTreshold)
         {
             FindAndUpdate(ShortSkills, sk);
         }
         else
         {
             var existing = LongSkills.ToSyncArray().FirstOrDefault(x => x.Skill.Name == sk.Skill.Name);
             if (existing == null)
             {
                 existing = ShortSkills.ToSyncArray().FirstOrDefault(x => x.Skill.Name == sk.Skill.Name);
                 if (existing == null)
                 {
                     LongSkills.Add(sk);
                 }
                 else
                 {
                     existing.Refresh(sk.Cooldown);
                 }
                 return;
             }
             existing.Refresh(sk.Cooldown);
         }
     }
     catch { /* ignored*/ }
 }
예제 #17
0
    void Awake()
    {
        instance = this;

        skill1Script = skill1Slot.GetComponent <SkillCooldown>();
        skill2Script = skill2Slot.GetComponent <SkillCooldown>();
        skill3Script = skill3Slot.GetComponent <SkillCooldown>();

        cooldownScriptList.Add(skill1Script);
        cooldownScriptList.Add(skill2Script);
        cooldownScriptList.Add(skill3Script);

        pauseSkill1Script = pauseSkill1Slot.GetComponent <PauseSkillSlot>();
        pauseSkill2Script = pauseSkill2Slot.GetComponent <PauseSkillSlot>();
        pauseSkill3Script = pauseSkill3Slot.GetComponent <PauseSkillSlot>();

        pauseSkillScriptList.Add(pauseSkill1Script);
        pauseSkillScriptList.Add(pauseSkill2Script);
        pauseSkillScriptList.Add(pauseSkill3Script);
    }
예제 #18
0
        private void UpdateOther(SkillCooldown sk)
        {
            if (!Settings.CooldownWindowSettings.Enabled)
            {
                return;
            }

            sk.SetDispatcher(Dispatcher);

            try
            {
                if (sk.Type == CooldownType.Item)
                {
                    FindAndUpdate(ItemSkills, sk);
                    return;
                }
                FindAndUpdate(OtherSkills, sk);
            }
            catch
            {
                Debug.WriteLine("Error while refreshing skill");
            }
        }
예제 #19
0
        private void FindAndUpdate(SynchronizedObservableCollection <SkillCooldown> list, SkillCooldown sk)
        {
            var existing = list.ToSyncArray().FirstOrDefault(x => x.Skill.IconName == sk.Skill.IconName);

            if (existing == null)
            {
                list.Add(sk);
                return;
            }
            existing.Refresh(sk.Cooldown);
        }
예제 #20
0
 private void Start()
 {
     playerData    = GetComponent <PlayerUIUpdates>();
     skillCooldown = GetComponent <SkillCooldown>();
 }
예제 #21
0
 // Start is called before the first frame update
 void Awake()
 {
     instance = this;
 }
예제 #22
0
 internal void AddHiddenSkill(SkillCooldown context)
 {
     HiddenSkills.Add(context.Skill);
 }
예제 #23
0
        //public static ClassManager CurrentClassManager;

        public virtual bool StartSpecialSkill(SkillCooldown sk)
        {
            return(false);
        }