private static void Remove(GameSession session, SkillCast skillCast, int sourceId)
 {
     Task.Run(async() =>
     {
         // TODO: Get the correct Region Skill Duration when calling chain Skills
         await Task.Delay(skillCast.DurationTick() + 5000);
         session.FieldManager.BroadcastPacket(RegionSkillPacket.Remove(sourceId));
     });
 }
Exemple #2
0
 public Status(SkillCast skillCast, int target, int source, int stacks)
 {
     SkillId   = skillCast.SkillId;
     UniqueId  = GuidGenerator.Int();
     Target    = target;
     Source    = source;
     Level     = skillCast.SkillLevel;
     Stacks    = stacks > 0 && stacks <= skillCast.MaxStack() ? stacks : skillCast.MaxStack();
     SkillCast = skillCast;
     Start     = Environment.TickCount;
     Duration  = skillCast.DurationTick();
     End       = Start + Duration;
 }