Beispiel #1
0
 public override void Cast()
 {
     if (Cooldown <= TimeSpan.Zero)
     {
         Execute();
     }
     else if (Being.SkillPoints(SkillType.Rewind) > 0 && !Rewound)
     {
         if (LastLevel != Level.CurrentLevel ||
             Level.TimeIntoLevel.TotalMilliseconds - LastDashMilliseconds <
             Being.SkillValue(SkillType.Rewind, false) * 1000)
         {
             Being.X = LastPosition.X;
             Being.Y = LastPosition.Y;
             Rewound = true;
         }
     }
 }
Beispiel #2
0
        public static void AddBuff(this Being being, BuffTypes type)
        {
            switch (type)
            {
            case BuffTypes.Dash:
                being.Buffs.Add(new DashBuff(being, AbilityConstants.DashBonus * (1 + ((Zerd)being).Player.AbilityUpgrades[AbilityUpgradeType.DashDistance] / 100f)));
                return;

            case BuffTypes.Sprint:
                being.Buffs.Add(new SprintBuff(being, ((Zerd)being).BootItem.SprintBonus));
                return;

            case BuffTypes.BlazingSpeed:
                if (being.SkillPoints(SkillType.BlazingSpeed) > 0)
                {
                    being.Buffs.Add(new BlazingSpeedBuff(being as Zerd, TimeSpan.FromSeconds(PlayerSkills.BlazingSpeedSeconds), being.BaseSpeed * being.SkillValue(SkillType.BlazingSpeed, false) / 100f));
                }
                return;
            }
            throw new Exception("Unhandled buff");
        }