public BasicAttackAction(LivingObject caster, Attack id, int dir, AttackManager am)
 {
     Caster = caster;
     ID = id;
     Dir = dir;
     AM = am;
     switch (Dir)
     {
         case 0:
             X = Caster.X - 1;
             Y = Caster.Y;
             break;
         case 1:
             X = Caster.X;
             Y = Caster.Y - 1;
             break;
         case 2:
             X = Caster.X + 1;
             Y = Caster.Y;
             break;
         case 3:
             X = Caster.X;
             Y = Caster.Y + 1;
             break;
     }
     Animation = new SpawnAttackAnimation(ID.Animation, X, Y, Dir, false, this);
     Attacked = false;
 }
        public ShieldAction(LivingObject caster, Attack id, int dir, AttackManager am)
        {
            Caster = caster;
            ID = id;
            Dir = dir;
            AM = am;

            X = Caster.X;
            Y = Caster.Y;

            Animation = new SpawnAttackAnimation(ID.Animation, X, Y, Dir, false, this);
            Attacked = false;
            Caster.CurrentDefenseAction = this;
        }