예제 #1
0
 public void Update(ExecutionParamaters executionParamaters, float castingTimeRate, float coolDownRate)
 {
     if (activated)
     {
         timer += castingTimeRate;
         if (timer >= abilities[type].GetExecutingTime(level))
         {
             if (executed)
             {
                 if (coolDown <= 0)
                 {
                     Reset();
                 }
                 else
                 {
                     coolDown -= coolDownRate;
                 }
             }
             else
             {
                 Execute(executionParamaters);
             }
         }
     }
 }
예제 #2
0
 public void Update(ExecutionParamaters executionParamaters, float castingTimeRate, float coolDownRate)
 {
     foreach (var item in executers)
     {
         item.Value.Update(executionParamaters, castingTimeRate, coolDownRate);
     }
 }
예제 #3
0
        public static void Execute(Type type, ExecutionParamaters parameters, float level)
        {
            switch (type)
            {
            case Type.Fireball:
                ((FireBall)abilities[type]).Execute(parameters, level);
                break;

            case Type.IronBall:
                ((IronBall)abilities[type]).Execute(parameters, level);
                break;

            default:
                return;
            }
        }
예제 #4
0
 public void Execute(ExecutionParamaters parameters, float level)
 {
     Game1.gameObjects.Add(new Projectile.BouncingBall(parameters.position, Extensions.GetVector2(parameters.direction, GetSpeed(level)).ToVector3(0), parameters.agentToIgnore));
 }
예제 #5
0
 void Execute(ExecutionParamaters executionParamaters)
 {
     Ability.Execute(type, executionParamaters, level);
     executed = true;
     coolDown = abilities[type].GetCoolDownTime(level);
 }