Exemple #1
0
        /// <summary>
        /// Triggered when a vehicle dies
        /// </summary>
        public bool vehicleDeath(Vehicle dead, Player killer)
        {
            if (!dead._bBotVehicle)
            {
                Structure structure = _structures.Values.FirstOrDefault(st => st._vehicle == dead);

                if (structure == null)
                {
                    return(true);
                }

                //Destroy it
                structure.destroyed(dead, killer);
            }
            return(true);
        }
Exemple #2
0
        public bool tryCommandCenterMenu(Player player, Computer computer, VehInfo.Computer.ComputerProduct product)
        {
            int idx = Convert.ToInt32(product.Title.Substring(0, 2));

            Structure structure = getStructureByVehicleID(computer._id);

            //Sanity
            if (structure == null)
            {
                return(false);
            }

            int level            = structure._productionLevel;
            int upgradeNextLevel = calculateUpgradeCost(structure._upgradeCost, ProductionBuilding.CommandCenter);

            switch (idx)
            {
            //1 - Factory - Production (125 Iron)
            case 1:
            {
                if (player.getInventoryAmount(2027) < 125)
                {
                    player.sendMessage(-1, "I'm sorry, you don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -125);
                player.inventoryModify(193, 1);
                player.sendMessage(0, "1 [RTS] Factory - Production Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //2 - Factory - Defense (100 Iron)
            case 2:
            {
                if (player.getInventoryAmount(2027) < 100)
                {
                    player.sendMessage(-1, "I'm sorry, you don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -100);
                player.inventoryModify(194, 1);
                player.sendMessage(0, "1 [RTS] Factory - Defense Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //3 - Factory - Housing (200 Iron)
            case 3:
            {
                if (player.getInventoryAmount(2027) < 200)
                {
                    player.sendMessage(-1, "I'm sorry, you don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -200);
                player.inventoryModify(204, 1);
                player.sendMessage(0, "1 [RTS] Factory - Housing Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //4 - Power Station (25 Iron)
            case 4:
            {
                if (player.getInventoryAmount(2027) < 25)
                {
                    player.sendMessage(-1, "I'm sorry, you don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -25);
                player.inventoryModify(200, 1);
                player.sendMessage(0, "1 [RTS] Power Station Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //8 - Repair
            case 8:
            {
                int repairCost = calculateRepairCost(structure._vehicle);

                if (player.getInventoryAmount(2026) < repairCost)
                {
                    player.sendMessage(-1, "I'm sorry, you don't have enough scrap metal to repair this building");
                    return(false);
                }

                structure._vehicle._state.health = (short)structure._vehicle._type.Hitpoints;

                player.inventoryModify(2026, -repairCost);
                player.sendMessage(0, "Structure repaired");
                player.syncState();
            }
            break;

            //16 - Click For Info
            case 5:
            {
                player.sendMessage(0, "$Command Center Info:");
                int repairCost = calculateRepairCost(structure._vehicle);
                player.sendMessage(0, String.Format("&-Repair Cost: {0}", repairCost));

                player.sendMessage(0, String.Format("&-Current Level: {0}", structure._productionLevel));
                player.sendMessage(0, String.Format("&-Upgrade Cost for next level: {0} Iron", structure._upgradeCost));

                player.sendMessage(0, "The Command Center is the center of operation for any city/base. It also is your warppoint from which you'll spawn when exiting the DS. In it you will find the following options:");

                player.sendMessage(0, "$ - Factory - Production");
                player.sendMessage(0, "& --- Refinery - Iron (Refines scrap metal into Refined Iron)");
                player.sendMessage(0, "& --- Iron Mine (Produces Refined Iron at hourly intervals)");
                player.sendMessage(0, "& --- Scrapyard (Produces Scrap Metal at hourly intervals)");
                player.sendMessage(0, "$ - Factory - Defense");
                player.sendMessage(0, "& --- Marine Barracks (Allows you to train Marine bots)");
                player.sendMessage(0, "& --- Ripper Barracks (Allows you to train Ripper bots)");
                player.sendMessage(0, "& --- All other options should be self explanatory");
                player.sendMessage(0, "$ - Factory - Housing");
                player.sendMessage(0, "& --- Shack (Produces $850/4hrs at Level 1)");
                player.sendMessage(0, "& --- House (Produces $1650/8hrs at Level 1)");
                player.sendMessage(0, "& --- Villa (Produces $3250/24hrs at Level 1)");
                player.sendMessage(0, "$ - Power Station (Power stations are used to power nearby buildings, " +
                                   "these must be placed before any other building is constructed with exception of the Command Center");
                break;
            }

            //Return to DS
            case 6:
            {
                player.warp(1924 * 16, 347 * 16);
            }
            break;

            //7 - Upgrade
            case 7:
            {
                if (player.getInventoryAmount(2027) < structure._upgradeCost)
                {
                    player.sendMessage(-1, "&You do not have sufficient iron to upgrade this building");
                    return(false);
                }

                player.inventoryModify(2027, -structure._upgradeCost);
                player.syncState();

                //Up the cost for the next level
                structure._upgradeCost = upgradeNextLevel;
                structure._productionLevel++;

                player.sendMessage(0, String.Format("&Structure upgraded"));
            }
            break;

            //14 - Upgrade
            case 14:
            {
                player.inventoryModify(2026, structure._vehicle._type.DropItemQuantity);
                player.syncState();

                player.sendMessage(0, String.Format("&Structure sold ({0} Scrap added to your inventory)", structure._type.DropItemQuantity));

                structure.destroyed(structure._vehicle, player);
                structure._vehicle.destroy(false);
            }
            break;
            }
            return(false);
        }
Exemple #3
0
        public bool tryHousingProductionMenu(Player player, Computer computer, VehInfo.Computer.ComputerProduct product)
        {
            int       idx       = Convert.ToInt32(product.Title.Substring(0, 2));
            Structure structure = getStructureByVehicleID(computer._id);

            switch (idx)
            {
            //1 - Shack (75 Iron)
            case 1:
            {
                if (player.getInventoryAmount(2027) < 75)
                {
                    player.sendMessage(-1, "&You don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -75);
                player.inventoryModify(192, 1);
                player.sendMessage(0, "1 [RTS] Shack Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //2 - House (125 Iron)
            case 2:
            {
                if (player.getInventoryAmount(2027) < 125)
                {
                    player.sendMessage(-1, "&You don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -125);
                player.inventoryModify(201, 1);
                player.sendMessage(0, "1 [RTS] House Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //3 - Villa (175 Iron)
            case 3:
            {
                if (player.getInventoryAmount(2027) < 175)
                {
                    player.sendMessage(-1, "&You don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -175);
                player.inventoryModify(202, 1);
                player.sendMessage(0, "1 [RTS] Villa Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //14 - Sell
            case 14:
            {
                player.inventoryModify(2026, structure._vehicle._type.DropItemQuantity);
                player.syncState();

                player.sendMessage(0, String.Format("&Structure sold ({0} Scrap added to your inventory)", structure._type.DropItemQuantity));

                structure.destroyed(structure._vehicle, player);
                structure._vehicle.destroy(false);
            }
            break;

            //15 - Repair
            case 15:
            {
                int repairCost = calculateRepairCost(structure._vehicle);

                if (player.getInventoryAmount(2026) < repairCost)
                {
                    player.sendMessage(-1, "I'm sorry, you don't have enough scrap metal to repair this building");
                    return(false);
                }

                structure._vehicle._state.health = (short)structure._vehicle._type.Hitpoints;

                player.inventoryModify(2026, -repairCost);
                player.sendMessage(0, "Structure repaired");
                player.syncState();
            }
            break;

            //Info
            case 16:
            {
                player.sendMessage(0, "$ - Factory - Housing");
                int repairCost = calculateRepairCost(structure._vehicle);
                player.sendMessage(0, String.Format("& --- Repair Cost: {0}", repairCost));
                player.sendMessage(0, "& --- Shack (Produces $850/4hrs at Level 1)");
                player.sendMessage(0, "& --- House (Produces $1650/8hrs at Level 1)");
                player.sendMessage(0, "& --- Villa (Produces $3250/24hrs at Level 1)");
                break;
            }
            }
            return(false);
        }
Exemple #4
0
        public bool tryDefenseMenu(Player player, Computer computer, VehInfo.Computer.ComputerProduct product)
        {
            int       idx       = Convert.ToInt32(product.Title.Substring(0, 2));
            Structure structure = getStructureByVehicleID(computer._id);

            switch (idx)
            {
            //1 - Marine Barracks (100 Iron)
            case 1:
            {
                if (player.getInventoryAmount(2027) < 100)
                {
                    player.sendMessage(-1, "&You don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -100);
                player.inventoryModify(195, 1);
                player.sendMessage(0, "1 [RTS] Marine Barracks Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //2 - Ripper Barracks (100 Iron)
            case 2:
            {
                if (player.getInventoryAmount(2027) < 100)
                {
                    player.sendMessage(-1, "&You don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -100);
                player.inventoryModify(196, 1);
                player.sendMessage(0, "1 [RTS] Ripper Barracks Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //3 - Turret - HMG (25 Iron)
            case 3:
            {
                if (player.getInventoryAmount(2027) < 25)
                {
                    player.sendMessage(-1, "&You don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -25);
                player.inventoryModify(198, 1);
                player.sendMessage(0, "1 [RTS] AT HMG Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //4 - Turret - Rocket(25 Iron)
            case 4:
            {
                if (player.getInventoryAmount(2027) < 25)
                {
                    player.sendMessage(-1, "&You don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -25);
                player.inventoryModify(199, 1);
                player.sendMessage(0, "1 [RTS] AT Rocket Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //14 - Sell
            case 14:
            {
                player.inventoryModify(2026, structure._vehicle._type.DropItemQuantity);
                player.syncState();

                player.sendMessage(0, String.Format("&Structure sold ({0} Scrap added to your inventory)", structure._type.DropItemQuantity));

                structure.destroyed(structure._vehicle, player);
                structure._vehicle.destroy(false);
            }
            break;

            //15 - Repair
            case 15:
            {
                int repairCost = calculateRepairCost(structure._vehicle);

                if (player.getInventoryAmount(2026) < repairCost)
                {
                    player.sendMessage(-1, "I'm sorry, you don't have enough scrap metal to repair this building");
                    return(false);
                }

                structure._vehicle._state.health = (short)structure._vehicle._type.Hitpoints;

                player.inventoryModify(2026, -repairCost);
                player.sendMessage(0, "Structure repaired");
                player.syncState();
            }
            break;

            //16 - Click For Info
            case 16:
            {
                player.sendMessage(0, "$ - Factory - Defense");
                int repairCost = calculateRepairCost(structure._vehicle);
                player.sendMessage(0, String.Format("& --- Repair Cost: {0}", repairCost));
                player.sendMessage(0, "& --- Marine Barracks (Allows you to train Marine bots)");
                player.sendMessage(0, "& --- Ripper Barracks (Allows you to train Ripper bots)");
                player.sendMessage(0, "& --- All other options should be self explanatory");
            }
            break;
            }
            return(false);
        }
        public bool tryProductionMenu(Player player, Computer computer, VehInfo.Computer.ComputerProduct product)
        {
            int       idx       = Convert.ToInt32(product.Title.Substring(0, 2));
            Structure structure = getStructureByVehicleID(computer._id);

            switch (idx)
            {
            //1 - Refinery - Iron (200 Iron)
            case 1:
            {
                if (player.getInventoryAmount(2027) < 200)
                {
                    player.sendMessage(-1, "&You don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -200);
                player.inventoryModify(197, 1);
                player.sendMessage(0, "1 [RTS] Refinery - Iron has been added to your inventory");
                player.syncState();
            }
            break;

            //2 - Iron Mine (100 Iron)
            case 2:
            {
                if (player.getInventoryAmount(2027) < 100)
                {
                    player.sendMessage(-1, "&You don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -100);
                player.inventoryModify(205, 1);
                player.sendMessage(0, "1 [RTS] Iron Mine Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //3 - Scrapyard (100 Iron)
            case 3:
            {
                if (player.getInventoryAmount(2027) < 100)
                {
                    player.sendMessage(-1, "&You don't have enough iron for this option");
                    return(false);
                }

                player.inventoryModify(2027, -100);
                player.inventoryModify(206, 1);
                player.sendMessage(0, "1 [RTS] Scrapyard Kit has been added to your inventory");
                player.syncState();
            }
            break;

            //16 - Click For Info
            case 16:
            {
                player.sendMessage(0, "$ - Factory - Production");
                int repairCost = calculateRepairCost(structure._vehicle);
                player.sendMessage(0, String.Format("& --- Repair Cost: {0}", repairCost));
                player.sendMessage(0, "& --- Refinery - Iron (Refines scrap metal into Refined Iron)");
                player.sendMessage(0, "& --- Iron Mine (Produces Refined Iron at hourly intervals)");
                player.sendMessage(0, "& --- Scrapyard (Produces Scrap Metal at hourly intervals)");
            }
            break;

            //15 - Repair
            case 15:
            {
                int repairCost = calculateRepairCost(structure._vehicle);

                if (player.getInventoryAmount(2026) < repairCost)
                {
                    player.sendMessage(-1, "I'm sorry, you don't have enough scrap metal to repair this building");
                    return(false);
                }

                structure._vehicle._state.health = (short)structure._vehicle._type.Hitpoints;

                player.inventoryModify(2026, -repairCost);
                player.sendMessage(0, "Structure repaired");
                player.syncState();
            }
            break;

            //14 - Sell
            case 14:
            {
                player.inventoryModify(2026, structure._vehicle._type.DropItemQuantity);
                player.syncState();

                player.sendMessage(0, String.Format("&Structure sold ({0} Scrap added to your inventory)", structure._type.DropItemQuantity));

                structure.destroyed(structure._vehicle, player);
                structure._vehicle.destroy(false);
            }
            break;
            }
            return(false);
        }
Exemple #6
0
        public bool tryIronRefinery(Player player, Computer computer, VehInfo.Computer.ComputerProduct product)
        {
            int       idx       = Convert.ToInt32(product.Title.Substring(0, 2));
            Structure structure = getStructureByVehicleID(computer._id);

            switch (idx)
            {
            //1 - 1 Iron (2 Scrap Metal)
            case 1:
            {
                if (player.getInventoryAmount(2026) < 2)
                {
                    player.sendMessage(-1, "Refinery Worker> I'm sorry, you don't have enough scrap metal for this option");
                    return(false);
                }

                player.inventoryModify(2027, 1);
                player.inventoryModify(2026, -2);
                player.sendMessage(0, "1 Iron has been added to your inventory");
                player.syncState();
            }
            break;

            //2 - 5 Iron (10 Scrap Metal)
            case 2:
            {
                if (player.getInventoryAmount(2026) < 10)
                {
                    player.sendMessage(-1, "Refinery Worker> I'm sorry, you don't have enough scrap metal for this option");
                    return(false);
                }

                player.inventoryModify(2027, 5);
                player.inventoryModify(2026, -10);
                player.sendMessage(0, "5 Iron has been added to your inventory");
                player.syncState();
            }
            break;

            //3 - 10 Iron (18 Scrap Metal)
            case 3:
            {
                if (player.getInventoryAmount(2026) < 18)
                {
                    player.sendMessage(-1, "Refinery Worker> I'm sorry, you don't have enough scrap metal for this option");
                    return(false);
                }
                player.inventoryModify(2027, 10);
                player.inventoryModify(2026, -18);
                player.sendMessage(0, "10 Iron has been added to your inventory");
                player.syncState();
            }
            break;

            //4 - 35 Iron (25 Scrap Metal)
            case 4:
            {
                if (player.getInventoryAmount(2026) < 25)
                {
                    player.sendMessage(-1, "Refinery Worker> I'm sorry, you don't have enough scrap metal for this option");
                    return(false);
                }

                player.inventoryModify(2027, 35);
                player.inventoryModify(2026, -25);
                player.sendMessage(0, "35 Iron has been added to your inventory");
                player.syncState();
            }
            break;

            //5 - 50 Iron (30 Scrap Metal)
            case 5:
            {
                if (player.getInventoryAmount(2026) < 30)
                {
                    player.sendMessage(-1, "Refinery Worker> I'm sorry, you don't have enough scrap metal for this option");
                    return(false);
                }

                player.inventoryModify(2027, 50);
                player.inventoryModify(2026, -30);
                player.sendMessage(0, "50 Iron has been added to your inventory");
                player.syncState();
            }
            break;

            //15 - Repair
            case 15:
            {
                int repairCost = calculateRepairCost(structure._vehicle);

                if (player.getInventoryAmount(2026) < repairCost)
                {
                    player.sendMessage(-1, "I'm sorry, you don't have enough scrap metal to repair this building");
                    return(false);
                }

                structure._vehicle._state.health = (short)structure._vehicle._type.Hitpoints;

                player.inventoryModify(2026, -repairCost);
                player.sendMessage(0, "Structure repaired");
                player.syncState();
            }
            break;

            //16 - Info
            case 16:
            {
                int repairCost = calculateRepairCost(structure._vehicle);
                player.sendMessage(0, String.Format("&-Repair Cost: {0}", repairCost));
            }
            break;

            //14 - Sell
            case 14:
            {
                player.inventoryModify(2026, structure._vehicle._type.DropItemQuantity);
                player.syncState();

                player.sendMessage(0, String.Format("&Structure sold ({0} Scrap added to your inventory)", structure._type.DropItemQuantity));

                structure.destroyed(structure._vehicle, player);
                structure._vehicle.destroy(false);
            }
            break;
            }

            return(false);
        }
        public bool tryBarracksMenu(Player player, Computer computer, VehInfo.Computer.ComputerProduct product, DefenseProduction type)
        {
            int       idx       = Convert.ToInt32(product.Title.Substring(0, 2));
            Structure structure = getStructureByVehicleID(computer._id);

            if (_units.Count >= _botMax)
            {
                player.sendMessage(-1, "You have reach the maximum amount of units you can train/Have active at one time.");
                return(false);
            }

            switch (idx)
            {
            //1 - Train 1 Normal ($500)
            case 1:
            {
                if (player.Cash < 500)
                {
                    player.sendMessage(-1, "Insufficient funds for this option");
                    return(false);
                }
                player.Cash -= 500;
                player.sendMessage(0, "Unit Ready");
                player.syncState();
                switch (type)
                {
                case DefenseProduction.Marine:
                    newUnit(BotType.Marine, null, null, BotLevel.Normal, player._state);
                    break;

                case DefenseProduction.Ripper:
                    newUnit(BotType.Ripper, null, null, BotLevel.Normal, player._state);
                    break;
                }
            }
            break;

            //2 - Train 1 Adept ($1000)
            case 2:
            {
                if (player.Cash < 1000)
                {
                    player.sendMessage(-1, "Insufficient funds for this option");
                    return(false);
                }
                player.Cash -= 1000;
                player.sendMessage(0, "Unit Ready");
                player.syncState();
                switch (type)
                {
                case DefenseProduction.Marine:
                    newUnit(BotType.Marine, null, null, BotLevel.Adept, player._state);
                    break;

                case DefenseProduction.Ripper:
                    newUnit(BotType.Ripper, null, null, BotLevel.Adept, player._state);
                    break;
                }
            }
            break;

            //3 - Train 1 Elite ($1500)
            case 3:
            {
                if (player.Cash < 1500)
                {
                    player.sendMessage(-1, "Insufficient funds for this option");
                    return(false);
                }
                player.Cash -= 1500;
                player.sendMessage(0, "Unit Ready");
                player.syncState();
                switch (type)
                {
                case DefenseProduction.Marine:
                    newUnit(BotType.EliteMarine, null, null, BotLevel.Elite, player._state);
                    break;

                case DefenseProduction.Ripper:
                    newUnit(BotType.EliteHeavy, null, null, BotLevel.Elite, player._state);
                    break;
                }
            }
            break;

            //14 - Sell
            case 14:
            {
                player.inventoryModify(2026, structure._vehicle._type.DropItemQuantity);
                player.syncState();

                player.sendMessage(0, String.Format("&Structure sold ({0} Scrap added to your inventory)", structure._type.DropItemQuantity));

                structure.destroyed(structure._vehicle, player);
                structure._vehicle.destroy(false);
            }
            break;

            //15 - Repair
            case 15:
            {
                int repairCost = calculateRepairCost(structure._vehicle);

                if (player.getInventoryAmount(2026) < repairCost)
                {
                    player.sendMessage(-1, "I'm sorry, you don't have enough scrap metal to repair this building");
                    return(false);
                }

                structure._vehicle._state.health = (short)structure._vehicle._type.Hitpoints;

                player.inventoryModify(2026, -repairCost);
                player.sendMessage(0, "Structure repaired");
                player.syncState();
            }
            break;

            //16 - Click For Info
            case 16:
            {
                player.sendMessage(0, "$Barracks Info:");
                player.sendMessage(0, "& --- The barracks allows you to train new units (bots) that will guard your city.");
                int repairCost = calculateRepairCost(structure._vehicle);
                player.sendMessage(0, String.Format("& --- Repair Cost: {0}", repairCost));
            }
            break;
            }
            return(false);
        }
Exemple #8
0
        public bool tryCollectionMenu(Player player, Computer computer, VehInfo.Computer.ComputerProduct product, ProductionBuilding buildingType)
        {
            int       idx       = Convert.ToInt32(product.Title.Substring(0, 1));
            Structure structure = getStructureByVehicleID(computer._id);

            //Sanity
            if (structure == null)
            {
                return(false);
            }

            int level            = structure._productionLevel;
            int cash             = calculateProduction(level, buildingType);
            int cashNextLevel    = calculateProduction(level + 1, buildingType);
            int upgradeNextLevel = calculateUpgradeCost(structure._upgradeCost, buildingType);


            switch (idx)
            {
            //1 - Collect
            case 1:
            {
                //Are we ready?
                if (!IsProductionReady(structure))
                {
                    player.sendMessage(0, "&This building is not ready for collection yet.");
                    return(false);
                }

                //Produce!
                structure.produce(player);
            }
            break;

            //2 - Upgrade (100 Iron)
            case 2:
            {
                if (player.getInventoryAmount(2027) < structure._upgradeCost)
                {
                    player.sendMessage(-1, "&You do not have sufficient iron to upgrade this building");
                    return(false);
                }

                player.inventoryModify(2027, -structure._upgradeCost);
                player.syncState();

                //Up the cost for the next level
                structure._upgradeCost = upgradeNextLevel;
                structure._productionLevel++;
                structure._productionQuantity = cashNextLevel;

                player.sendMessage(0, String.Format("&Structure upgraded, Next collection: {0}", structure._productionQuantity));
            }
            break;

            //3 More Info
            case 3:
            {
                player.sendMessage(0, String.Format("$Building Info:"));
                int repairCost = calculateRepairCost(structure._vehicle);
                player.sendMessage(0, String.Format("& --- Repair Cost: {0}", repairCost));
                player.sendMessage(0, String.Format("& --- Current Level: {0}", structure._productionLevel));
                player.sendMessage(0, String.Format("& --- Upgrade Cost for next level: {0} Iron", structure._upgradeCost));
                player.sendMessage(0, String.Format("& --- Next Collection amount: {0}", structure._productionQuantity));
                player.sendMessage(0, String.Format("& --- Next Level Collection amount: {0}", cashNextLevel));

                TimeSpan remaining = _baseScript.timeTo(structure._nextProduction.TimeOfDay);
                player.sendMessage(0, String.Format("Next collection ready in {0} Hour(s) & {1} minute(s)", remaining.Hours, remaining.Minutes));
            }
            break;

            //14 - Sell
            case 14:
            {
                player.inventoryModify(2026, structure._vehicle._type.DropItemQuantity);
                player.syncState();

                player.sendMessage(0, String.Format("&Structure sold ({0} Scrap added to your inventory)", structure._type.DropItemQuantity));

                structure.destroyed(structure._vehicle, player);
                structure._vehicle.destroy(false);
            }
            break;

            //15 - Repair
            case 15:
            {
                int repairCost = calculateRepairCost(structure._vehicle);

                if (player.getInventoryAmount(2026) < repairCost)
                {
                    player.sendMessage(-1, "I'm sorry, you don't have enough scrap metal to repair this building");
                    return(false);
                }

                structure._vehicle._state.health = (short)structure._vehicle._type.Hitpoints;

                player.inventoryModify(2026, -repairCost);
                player.sendMessage(0, "Structure repaired");
                player.syncState();
            }
            break;
            }
            return(false);
        }