Ejemplo n.º 1
0
        public void SkillParizer(Entity caster, Entity[] targets, ClassSkill skill)
        {
            double hp = 200;

            caster.Heal(hp);
            DiscordManager.Instance.SendMessage($"{caster.Name} casted {skill.Name} and was healed by {hp} HP (HP: {caster.HP}) ");
        }
Ejemplo n.º 2
0
        public void CastSkill(long id, Entity caster, Entity[] targets)
        {
            ClassSkill skill = GetSkillByID(id);

            if (skill != null)
            {
                MethodInfo method = typeof(Skills).GetMethod(skill.Method);
                if (method != null)
                {
                    Tuple <long, Action, double> cast = new Tuple <long, Action, double>(caster.ID, () =>
                    {
                        caster.GetSkillByID(id).Expiration = Utils.GetTime(skill.BaseCooldown);
                        method.Invoke(skillsMethds, new object[] { caster, targets, skill });
                        if (caster is Player)
                        {
                            if (MobManager.Instance.GetCurrentBoss().HP < 0)
                            {
                                MobManager.Instance.LastBossKiller = caster.ID;
                            }
                        }
                    }, DateTime.Now.TimeOfDay.TotalMilliseconds + skill.CastDuration * 1000);

                    casting.Add(cast);
                }
            }
        }
Ejemplo n.º 3
0
 public string CastSkill(string name, Entity[] targets)
 {
     string result = "";
     ClassSkill skill = SkillManager.Instance.GetSkillByName(name);
     if (skill == null)
         return "Skill not found";
     else
     {
         if (CanCast(skill.ID))
         {
             if (isAlive())
             {
                 Skill s = GetSkillByID(skill.ID);
                 if (s.CanBeCasted())
                 {
                     SkillManager.Instance.CastSkill(s.ID, this, targets);
                 }
                 else
                 {
                     return $"{Name}'s {skill.Name} skill is cooling down: {Utils.FormatSeconds(Utils.GetTimeDifference(s.Expiration) / 1000)}";
                 }
             }
             else
             {
                 return $"{Name} you are dead. You will be revived in: {Utils.FormatSeconds(Utils.GetTimeDifference(ReviveTime) / 1000)}";
             }
         }
         else
         {
             return $"{Name} you can not cast {skill.Name}";
         }
     }
     return result;
 }
Ejemplo n.º 4
0
        public static void InitializeSkills()
        {
            if (!File.Exists("skills.json"))
            {
                ClassSkill s = new ClassSkill();

                SkillManager.Instance.skills.Add(s);
                SkillManager.Instance.SaveSkills();
            }
        }
Ejemplo n.º 5
0
        public string ShortDisplayString()
        {
            ClassSkill s = SkillManager.Instance.GetSkillByID(ID);

            return($"Name: {s.Name}\nCast duration:{Utils.FormatSeconds(s.CastDuration)}\nCooldown:{Utils.FormatSeconds(s.BaseCooldown)}\nTime until next cast: {Utils.FormatSeconds(Utils.GetTimeDifference(Expiration) / 1000)}\n____________________________");
        }