예제 #1
0
 public PirateColllisionEvent(Game1 game, OverworldShip ship, GameObjectOverworld target)
     : base(game, ship, target)
 {
 }
예제 #2
0
        public static void CheckQuantityCount(Game1 Game)
        {
            float copperTotalRest      = 0;
            float goldTotalRest        = 0;
            float titaniumTotalRest    = 0;
            float fineWhiskeyTotalRest = 0;

            float rest = 0;
            float quantity;
            float maxQuantity;

            bool checkAgain = false;

            for (int i = 0; i < shipItems.Count; i++)
            {
                if (shipItems[i] is QuantityItem)
                {
                    quantity    = ((QuantityItem)shipItems[i]).Quantity;
                    maxQuantity = ((QuantityItem)shipItems[i]).MaxQuantity;

                    if (quantity > maxQuantity)
                    {
                        rest = quantity - maxQuantity;
                        ((QuantityItem)shipItems[i]).Quantity -= rest;

check:

                        if (rest > maxQuantity)
                        {
                            switch (shipItems[i].Kind.ToLower())
                            {
                            case "resource":
                            {
                                switch (shipItems[i].Name.ToLower())
                                {
                                case "copper":
                                    AddItem(new CopperResource(Game, maxQuantity));
                                    break;

                                case "gold":
                                    AddItem(new GoldResource(Game, maxQuantity));
                                    break;

                                case "titanium":
                                    AddItem(new TitaniumResource(Game, maxQuantity));
                                    break;
                                }
                            }
                            break;

                            case "spirit":
                            {
                                switch (shipItems[i].Name.ToLower())
                                {
                                case "fine whiskey":
                                    AddItem(new FineWhiskey(Game, maxQuantity));
                                    break;
                                }
                            }
                            break;
                            }

                            rest -= maxQuantity;

                            goto check;
                        }
                    }

                    if (shipItems[i].Name == "Copper")
                    {
                        copperTotalRest += rest;
                        rest             = 0;
                    }

                    else if (shipItems[i].Name == "Gold")
                    {
                        goldTotalRest += rest;
                        rest           = 0;
                    }

                    else if (shipItems[i].Name == "Titanium")
                    {
                        titaniumTotalRest += rest;
                        rest = 0;
                    }

                    else if (shipItems[i].Name == "Fine Whiskey")
                    {
                        fineWhiskeyTotalRest += rest;
                        rest = 0;
                    }
                }
            }

            if (copperTotalRest > 0)
            {
                for (int i = 0; i < shipItems.Count; i++)
                {
                    if (shipItems[i].Name == "Copper")
                    {
                        if (((QuantityItem)shipItems[i]).Quantity < ((QuantityItem)shipItems[i]).MaxQuantity)
                        {
                            ((QuantityItem)shipItems[i]).Quantity += copperTotalRest;
                            copperTotalRest = 0;
                            checkAgain      = true;
                        }
                    }
                }

                if (copperTotalRest > 0)
                {
                    AddItem(new CopperResource(Game, copperTotalRest));
                    copperTotalRest = 0;
                    checkAgain      = true;
                }
            }

            if (goldTotalRest > 0)
            {
                for (int i = 0; i < shipItems.Count; i++)
                {
                    if (shipItems[i].Name == "Gold")
                    {
                        if (((QuantityItem)shipItems[i]).Quantity < ((QuantityItem)shipItems[i]).MaxQuantity)
                        {
                            ((QuantityItem)shipItems[i]).Quantity += goldTotalRest;
                            goldTotalRest = 0;
                            checkAgain    = true;
                        }
                    }
                }

                if (goldTotalRest > 0)
                {
                    AddItem(new GoldResource(Game, goldTotalRest));
                    goldTotalRest = 0;
                    checkAgain    = true;
                }
            }

            if (titaniumTotalRest > 0)
            {
                for (int i = 0; i < shipItems.Count; i++)
                {
                    if (shipItems[i].Name == "Titanium")
                    {
                        if (((QuantityItem)shipItems[i]).Quantity < ((QuantityItem)shipItems[i]).MaxQuantity)
                        {
                            ((QuantityItem)shipItems[i]).Quantity += titaniumTotalRest;
                            titaniumTotalRest = 0;
                            checkAgain        = true;
                        }
                    }
                }

                if (titaniumTotalRest > 0)
                {
                    AddItem(new TitaniumResource(Game, titaniumTotalRest));
                    titaniumTotalRest = 0;
                    checkAgain        = true;
                }
            }

            if (fineWhiskeyTotalRest > 0)
            {
                for (int i = 0; i < shipItems.Count; i++)
                {
                    if (shipItems[i].Name == "Fine Whiskey")
                    {
                        if (((QuantityItem)shipItems[i]).Quantity < ((QuantityItem)shipItems[i]).MaxQuantity)
                        {
                            ((QuantityItem)shipItems[i]).Quantity += fineWhiskeyTotalRest;
                            fineWhiskeyTotalRest = 0;
                            checkAgain           = true;
                        }
                    }
                }

                if (fineWhiskeyTotalRest > 0)
                {
                    AddItem(new FineWhiskey(Game, fineWhiskeyTotalRest));
                    fineWhiskeyTotalRest = 0;
                    checkAgain           = true;
                }
            }

            if (checkAgain)
            {
                CheckQuantityCount(Game);
            }
        }
예제 #3
0
 public Star(Game1 Game, Sprite spriteSheet) :
     base(Game, spriteSheet)
 {
 }
예제 #4
0
 public Bullet(Game1 Game, Sprite spriteSheet)
     : base(Game, spriteSheet)
 {
     DrawLayer    = 0.4f;
     deathSoundID = SoundEffects.MuffledExplosion;
 }
 public AllianceHangarAttackShip(Game1 Game, Sprite spriteSheet, PlayerVerticalShooter player, Movement movement) :
     base(Game, spriteSheet, player)
 {
     Setup();
     this.movement = movement;
 }
예제 #6
0
 public AggressiveBehaviour(Game1 Game, AI AI, AlliedShip Ship) :
     base(Game, AI, Ship)
 {
 }
예제 #7
0
 public PlayerVerticalShooter(Game1 Game, Sprite spriteSheet) :
     base(Game, spriteSheet)
 {
     ShootObjectTypes.Add("enemy");
 }
예제 #8
0
        //private const float itemSpreadFactor = 0.1f;

        public MiningStation(Game1 Game, Sprite spriteSheet, Vector2 positionOffset) :
            base(Game, spriteSheet, positionOffset)
        {
        }
예제 #9
0
 public ImageMessage(Game1 game, Sprite spriteSheet) :
     base(game, spriteSheet)
 {
     canvas = spriteSheet.GetSubSprite(new Rectangle(0, 0, 400, 400));
 }
예제 #10
0
 public BursterWeapon(Game1 Game, ItemVariety variety = ItemVariety.Regular) :
     base(Game, variety)
 {
     Setup();
     SetShipPartVariety();
 }
예제 #11
0
 public DestroyedShip(Game1 Game, Sprite SpriteSheet) :
     base(Game, SpriteSheet)
 {
 }
 public HelpScreenState(Game1 game, String name) :
     base(game, name)
 {
 }
예제 #13
0
 protected MissionObject(Game1 Game, Sprite SpriteSheet) :
     base(Game, SpriteSheet)
 {
     Class = "MissionObject";
 }
예제 #14
0
 protected WavesLevelEvent(Game1 Game, PlayerVerticalShooter player, Sprite spriteSheet, Level level, float startTime)
     : base(Game, player, spriteSheet, level, startTime)
 {
     hasDuration = true;
     timePassed  = 0;
 }
예제 #15
0
 public ProximityLaserWeapon(Game1 Game, ItemVariety variety = ItemVariety.Regular)
     : base(Game, variety)
 {
     Setup();
     SetShipPartVariety();
 }
예제 #16
0
 public FollowingModule(Game1 game)
     : base(game)
 {
 }
 public SoundEffectsManager(Game1 game)
 {
     this.game = game;
 }
예제 #18
0
 public FortrunStation2(Game1 Game, Sprite spriteSheet) :
     base(Game, spriteSheet)
 {
 }
 public TutorialManager(Game1 game)
 {
     this.game = game;
 }
예제 #20
0
 public HighFenceOrbit(Game1 game, Sprite spriteSheet) :
     base(game, spriteSheet)
 {
 }
 public AdvancedEnergyCell(Game1 Game, ItemVariety variety = ItemVariety.Regular) :
     base(Game, variety)
 {
     Setup();
     SetShipPartVariety();
 }
예제 #22
0
        // ----

        public Ending(Game1 game, Sprite spriteSheet)
        {
            this.game        = game;
            this.spriteSheet = spriteSheet;
        }
 public AllianceHangarAttackShip(Game1 Game, Sprite spriteSheet, PlayerVerticalShooter player) :
     base(Game, spriteSheet, player)
 {
     Setup();
 }
 public Main2_2_ToFortrun(Game1 Game, string section, Sprite spriteSheet, MissionID missionID) :
     base(Game, section, spriteSheet, missionID)
 {
     isMainMission = true;
 }
예제 #25
0
 public DisplayFreighterMessageOE(Game1 game) :
     base()
 {
     this.text.Add(messages[game.random.Next(0, messages.Length)]);
 }
예제 #26
0
 public PlanetState(Game1 Game, string name) :
     base(Game, name)
 {
 }
예제 #27
0
 public ShipInventoryManager(Game1 Game_)
 {
     Game        = Game_;
     spriteSheet = new Sprite(Game.Content.Load <Texture2D>("Vertical-Sprites/ShooterSheet"));
     emptyItem   = new EmptyItem(Game);
 }
예제 #28
0
 public static void LoadLineTexture(Game1 Game)
 {
     lineTexture = Game.Content.Load <Texture2D>("Overworld-Sprites/lineTexture");
 }