public ScrapStation()
        {
            Animation = Common.str2Tex("Ships/scrapStation");
            Shadow    = Common.str2Tex("Shadows/scrapStation");

            AABB = new Rectangle(0, 0, Animation.Width, Animation.Height);
            CollisionRects.Add(new Rectangle2(Common.InvalidVector2, new Rectangle(0, 39, 128, 95)));
            CollisionRects.Add(new Rectangle2(Common.InvalidVector2, new Rectangle(54, 134, 74, 34)));
            CollisionRects.Add(new Rectangle2(Common.InvalidVector2, new Rectangle(36, 10, 58, 29)));
        }
 internal StraightEnemy() :
     base()
 {
     Animation  = BaseEnemy.Animations[0];
     Shadow     = BaseEnemy.Shadows[0];
     ScoreValue = 12;
     AABB       = new Rectangle(Location.Xi(), Location.Yi(), Animation.Width, Animation.Height);
     CollisionRects.Add(new Rectangle2(Common.InvalidVector2, new Rectangle(0, 0, Animation.Width, Animation.Height)));
     CollisionDamage   = 20;
     ReappearsOnTopCnt = 1;
 }
        internal SuiciderEnemy() :
            base()
        {
            Animation  = BaseEnemy.Animations[2];
            Shadow     = BaseEnemy.Shadows[2];
            ScoreValue = 30;

            AABB = new Rectangle(Location.Xi(), Location.Yi(), Animation.Width, Animation.Height);
            CollisionRects.Add(new Rectangle2(Common.InvalidVector2, new Rectangle(0, 0, Animation.Width, Animation.Height)));
            Location          = Common.InvalidVector2;
            CollisionDamage   = 15;
            ReappearsOnTopCnt = 0;
        }
Beispiel #4
0
        internal ZigZagEnemy() :
            base()
        {
            Animation  = BaseEnemy.Animations[3];
            Shadow     = BaseEnemy.Shadows[3];
            ScoreValue = 20;

            AABB = new Rectangle(Location.Xi(), Location.Yi(), Animation.Width, Animation.Height);
            CollisionRects.Add(new Rectangle2(Common.InvalidVector2, new Rectangle(0, 0, Animation.Width, Animation.Height)));
            CollisionDamage   = 15;
            MaxChange         = Maths.RandomNr(50, 250);
            ReappearsOnTopCnt = 0;
        }
        internal SideEnemy()
        {
            Animation  = BaseEnemy.Animations[7];
            Shadow     = BaseEnemy.Shadows[7];
            ScoreValue = 45;

            AABB = new Rectangle(Location.Xi(), Location.Yi(), Animation.Width, Animation.Height);
            CollisionRects.Add(new Rectangle2(Common.InvalidVector2, new Rectangle(0, 0, Animation.Width, Animation.Height)));
            Location        = Common.InvalidVector2;
            CollisionDamage = 40;

            HP.MaxHP          = 45;
            HP.CurrentHP      = 45;
            ReappearsOnTopCnt = 0;
        }
Beispiel #6
0
        internal ItemEnemy() :
            base()
        {
            Animation  = BaseEnemy.Animations[4];
            Shadow     = BaseEnemy.Shadows[4];
            ScoreValue = 120;

            AABB = new Rectangle(Location.Xi(), Location.Yi(), Animation.Width, Animation.Height);
            CollisionRects.Add(new Rectangle2(Common.InvalidVector2, new Rectangle(0, 0, Animation.Width, Animation.Height)));
            Location        = Common.InvalidVector2;
            CollisionDamage = 80;

            DropChance        = 100;
            HP.MaxHP          = 120;
            HP.CurrentHP      = 120;
            ReappearsOnTopCnt = 0;
        }
        public void SetPlaneType(ePlaneType planeType, string shipName)
        {
            PlaneType = planeType;
            ShipName  = new StringBuilder(shipName);
            switch (planeType)
            {
            case ePlaneType.Normal:
                Animation = Common.str2Tex("Ships/player");
                Shadow    = Common.str2Tex("Shadows/player");
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(23, 0, 11, 20)));
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(8, 19, 41, 16)));
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(0, 35, 57, 9)));
                Owner.Score += 500;
                break;

            case ePlaneType.Dmg:
                Animation = Common.str2Tex("Ships/playerDmg");
                Shadow    = Common.str2Tex("Shadows/playerDmg");
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(5, 0, 47, 35)));
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(0, 17, 57, 18)));
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(14, 35, 30, 9)));

                Owner.DmgMod += 0.41f;
                MaxVelocity  -= 4f;
                Velocity     -= 0.7f;
                break;

            case ePlaneType.Speed:
                Animation = Common.str2Tex("Ships/playerVelocity");
                Shadow    = Common.str2Tex("Shadows/player");
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(23, 0, 11, 20)));
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(8, 19, 41, 16)));
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(0, 35, 57, 9)));

                Owner.DmgMod -= 0.05f;
                MaxVelocity  += 3.0f;
                Velocity     += 2.0f;

                HP.CurrentHP = HP.MaxHP -= 50;

                MaxShield   += 15;
                Shield.MaxHP = MaxShield;
                Shield.HealFull();
                Owner.Score += 1500;
                break;

            case ePlaneType.Regen:
                Animation = Common.str2Tex("Ships/playerRegen");
                Shadow    = Common.str2Tex("Shadows/player");
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(23, 0, 11, 20)));
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(8, 19, 41, 16)));
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(0, 35, 57, 9)));

                MaxShieldRegen += 0.4f;
                ShieldRegen    += 0.3f;
                MaxShield      += 15;
                Shield.MaxHP    = MaxShield;
                Shield.HealFull();
                HPRegen.MaxValue     += 0.4f;
                HPRegen.CurrentValue += 0.25f;
                break;

            case ePlaneType.Tough:
                Animation = Common.str2Tex("Ships/playerDmg");
                Shadow    = Common.str2Tex("Shadows/playerDmg");
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(5, 0, 47, 35)));
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(0, 17, 57, 18)));
                CollisionRects.Add(new Rectangle2(Location, new Rectangle(14, 35, 30, 9)));

                Owner.DmgMod -= 0.1f;
                HP.MaxHP      = 500;
                HP.HealFull();
                MaxShield    += 35;
                Shield.MaxHP += 10;
                Shield.HealFull();
                MaxVelocity          -= 3.5f;
                Velocity             -= 0.6f;
                HPRegen.MaxValue     += 0.15f;
                HPRegen.CurrentValue += 0.05f;
                GunLoseDamTakenLimit *= 3;
                break;

            default:
                throw new CaseStatementMissingException();
            }
        }