Esempio n. 1
0
        public WarehouseElementType()
        {
            _elementType     = ElementType.Type.BUILDING_WAREHOUSE;
            _name            = ElementType.GetTypeName(_elementType);
            _isRessources    = false;
            _hasLevelEnable  = true;
            _imagePath       = "pack://application:,,,/Resources/Images/building_storage.png";
            _detailImagePath = "pack://application:,,,/Resources/Images/menu_storage.png";
            _elementInfo     = "It increases the storage capacity for all resources. Enhanced by any bordering Sawmill, Stonemason, Mill or Foundry.";

            // Element cost for each level
            _elementCostsList.Add(1, new ElementCost(60, 0, 0));
            _elementCostsList.Add(2, new ElementCost(150, 0, 0));
            _elementCostsList.Add(3, new ElementCost(250, 50, 0));
            _elementCostsList.Add(4, new ElementCost(500, 150, 0));
            _elementCostsList.Add(5, new ElementCost(1600, 400, 0));
            _elementCostsList.Add(6, new ElementCost(3000, 1000, 0));
            _elementCostsList.Add(7, new ElementCost(6000, 2000, 0));
            _elementCostsList.Add(8, new ElementCost(9600, 4800, 0));
            _elementCostsList.Add(9, new ElementCost(15000, 9000, 0));
            _elementCostsList.Add(10, new ElementCost(20000, 13000, 0));


            // Element Score for each level
            _elementScoreList.Add(1, 1);
            _elementScoreList.Add(2, 2);
            _elementScoreList.Add(3, 5);
            _elementScoreList.Add(4, 10);
            _elementScoreList.Add(5, 16);
            _elementScoreList.Add(6, 24);
            _elementScoreList.Add(7, 34);
            _elementScoreList.Add(8, 46);
            _elementScoreList.Add(9, 60);
            _elementScoreList.Add(10, 80);

            // Element Storage for each level
            _elementStorageList.Add(1, new ElementStorage(2500));
            _elementStorageList.Add(2, new ElementStorage(5000));
            _elementStorageList.Add(3, new ElementStorage(9000));
            _elementStorageList.Add(4, new ElementStorage(16000));
            _elementStorageList.Add(5, new ElementStorage(26000));
            _elementStorageList.Add(6, new ElementStorage(42000));
            _elementStorageList.Add(7, new ElementStorage(65000));
            _elementStorageList.Add(8, new ElementStorage(100000));
            _elementStorageList.Add(9, new ElementStorage(145000));
            _elementStorageList.Add(10, new ElementStorage(200000));
        }
Esempio n. 2
0
        public TownhouseElementType()
        {
            _elementType     = ElementType.Type.BUILDING_TOWNHOUSE;
            _name            = ElementType.GetTypeName(_elementType);
            _isRessources    = false;
            _hasLevelEnable  = true;
            _imagePath       = "pack://application:,,,/Resources/Images/building_townhouse.png";
            _detailImagePath = "pack://application:,,,/Resources/Images/menu_townhouse.png";
            _elementInfo     = "It enables taxation (gold). Income from tax can be increased by connecting Marketplaces and Harbors.";

            // Element cost for each level
            _elementCostsList.Add(1, new ElementCost(0, 100, 0));
            _elementCostsList.Add(2, new ElementCost(0, 300, 0));
            _elementCostsList.Add(3, new ElementCost(0, 600, 0));
            _elementCostsList.Add(4, new ElementCost(0, 2000, 0));
            _elementCostsList.Add(5, new ElementCost(1000, 4000, 0));
            _elementCostsList.Add(6, new ElementCost(2000, 7000, 0));
            _elementCostsList.Add(7, new ElementCost(3500, 11500, 0));
            _elementCostsList.Add(8, new ElementCost(7000, 17000, 0));
            _elementCostsList.Add(9, new ElementCost(14000, 20000, 0));
            _elementCostsList.Add(10, new ElementCost(29000, 29000, 0));

            // Element production for each level
            _elementProductionList.Add(1, new ElementProduction(0, 0, 0, 0, 25));
            _elementProductionList.Add(2, new ElementProduction(0, 0, 0, 0, 50));
            _elementProductionList.Add(3, new ElementProduction(0, 0, 0, 0, 75));
            _elementProductionList.Add(4, new ElementProduction(0, 0, 0, 0, 100));
            _elementProductionList.Add(5, new ElementProduction(0, 0, 0, 0, 130));
            _elementProductionList.Add(6, new ElementProduction(0, 0, 0, 0, 170));
            _elementProductionList.Add(7, new ElementProduction(0, 0, 0, 0, 210));
            _elementProductionList.Add(8, new ElementProduction(0, 0, 0, 0, 260));
            _elementProductionList.Add(9, new ElementProduction(0, 0, 0, 0, 320));
            _elementProductionList.Add(10, new ElementProduction(0, 0, 0, 0, 400));

            // Element Score for each level
            _elementScoreList.Add(1, 1);
            _elementScoreList.Add(2, 3);
            _elementScoreList.Add(3, 6);
            _elementScoreList.Add(4, 12);
            _elementScoreList.Add(5, 20);
            _elementScoreList.Add(6, 30);
            _elementScoreList.Add(7, 42);
            _elementScoreList.Add(8, 57);
            _elementScoreList.Add(9, 75);
            _elementScoreList.Add(10, 100);
        }
        public FarmElementType()
        {
            _elementType     = ElementType.Type.BUILDING_FARM;
            _name            = ElementType.GetTypeName(_elementType);
            _isRessources    = false;
            _hasLevelEnable  = true;
            _imagePath       = "pack://application:,,,/Resources/Images/building_farm_2.png";
            _detailImagePath = "pack://application:,,,/Resources/Images/menu_farm.png";
            _elementInfo     = "It produces food. Any bordering grassland, lakes, Cottages and Mills will increase productivity.";

            // Element cost for each level
            _elementCostsList.Add(1, new ElementCost(50, 0, 0));
            _elementCostsList.Add(2, new ElementCost(200, 0, 0));
            _elementCostsList.Add(3, new ElementCost(400, 200, 0));
            _elementCostsList.Add(4, new ElementCost(1400, 600, 0));
            _elementCostsList.Add(5, new ElementCost(3500, 1500, 0));
            _elementCostsList.Add(6, new ElementCost(6000, 3000, 0));
            _elementCostsList.Add(7, new ElementCost(10000, 5000, 0));
            _elementCostsList.Add(8, new ElementCost(16000, 8000, 0));
            _elementCostsList.Add(9, new ElementCost(25000, 13000, 0));
            _elementCostsList.Add(10, new ElementCost(38000, 20000, 0));

            // Element production for each level
            _elementProductionList.Add(1, new ElementProduction(0, 0, 0, 5));
            _elementProductionList.Add(2, new ElementProduction(0, 0, 0, 8));
            _elementProductionList.Add(3, new ElementProduction(0, 0, 0, 15));
            _elementProductionList.Add(4, new ElementProduction(0, 0, 0, 20));
            _elementProductionList.Add(5, new ElementProduction(0, 0, 0, 30));
            _elementProductionList.Add(6, new ElementProduction(0, 0, 0, 45));
            _elementProductionList.Add(7, new ElementProduction(0, 0, 0, 75));
            _elementProductionList.Add(8, new ElementProduction(0, 0, 0, 120));
            _elementProductionList.Add(9, new ElementProduction(0, 0, 0, 200));
            _elementProductionList.Add(10, new ElementProduction(0, 0, 0, 300));

            // Element Score for each level
            _elementScoreList.Add(1, 1);
            _elementScoreList.Add(2, 3);
            _elementScoreList.Add(3, 6);
            _elementScoreList.Add(4, 12);
            _elementScoreList.Add(5, 20);
            _elementScoreList.Add(6, 30);
            _elementScoreList.Add(7, 42);
            _elementScoreList.Add(8, 57);
            _elementScoreList.Add(9, 75);
            _elementScoreList.Add(10, 100);
        }
        public QuarryElementType()
        {
            _elementType     = ElementType.Type.BUILDING_QUARRY;
            _name            = ElementType.GetTypeName(_elementType);
            _isRessources    = false;
            _hasLevelEnable  = true;
            _imagePath       = "pack://application:,,,/Resources/Images/building_stone_quary.png";
            _detailImagePath = "pack://application:,,,/Resources/Images/menu_quarry.png";
            _elementInfo     = "It produces Stone. Productivity can be increased by bordering Rocks, Cottages and a maximum of one Stonemason.";

            // Element cost for each level
            _elementCostsList.Add(1, new ElementCost(50, 0, 0));
            _elementCostsList.Add(2, new ElementCost(200, 0, 0));
            _elementCostsList.Add(3, new ElementCost(400, 200, 0));
            _elementCostsList.Add(4, new ElementCost(1400, 600, 0));
            _elementCostsList.Add(5, new ElementCost(3500, 1500, 0));
            _elementCostsList.Add(6, new ElementCost(6000, 3000, 0));
            _elementCostsList.Add(7, new ElementCost(10000, 5000, 0));
            _elementCostsList.Add(8, new ElementCost(16000, 8000, 0));
            _elementCostsList.Add(9, new ElementCost(25000, 13000, 0));
            _elementCostsList.Add(10, new ElementCost(38000, 20000, 0));

            // Element production for each level
            _elementProductionList.Add(1, new ElementProduction(0, 20, 0, 0));
            _elementProductionList.Add(2, new ElementProduction(0, 40, 0, 0));
            _elementProductionList.Add(3, new ElementProduction(0, 60, 0, 0));
            _elementProductionList.Add(4, new ElementProduction(0, 85, 0, 0));
            _elementProductionList.Add(5, new ElementProduction(0, 110, 0, 0));
            _elementProductionList.Add(6, new ElementProduction(0, 140, 0, 0));
            _elementProductionList.Add(7, new ElementProduction(0, 175, 0, 0));
            _elementProductionList.Add(8, new ElementProduction(0, 210, 0, 0));
            _elementProductionList.Add(9, new ElementProduction(0, 250, 0, 0));
            _elementProductionList.Add(10, new ElementProduction(0, 300, 0, 0));

            // Element Score for each level
            _elementScoreList.Add(1, 1);
            _elementScoreList.Add(2, 3);
            _elementScoreList.Add(3, 6);
            _elementScoreList.Add(4, 12);
            _elementScoreList.Add(5, 20);
            _elementScoreList.Add(6, 30);
            _elementScoreList.Add(7, 42);
            _elementScoreList.Add(8, 57);
            _elementScoreList.Add(9, 75);
            _elementScoreList.Add(10, 100);
        }
Esempio n. 5
0
        public WoodcutterElementType()
        {
            _elementType     = ElementType.Type.BUILDING_WOODCUTTER;
            _name            = ElementType.GetTypeName(_elementType);
            _isRessources    = false;
            _hasLevelEnable  = true;
            _imagePath       = "pack://application:,,,/Resources/Images/building_woodcutter.png";
            _detailImagePath = "pack://application:,,,/Resources/Images/menu_woodcutter.png";
            _elementInfo     = "It produces wood. Any bordering woods, Cottages and a maximum of one Sawmill will increase productivity.";

            // Element cost for each level
            _elementCostsList.Add(1, new ElementCost(50, 0, 0));
            _elementCostsList.Add(2, new ElementCost(200, 0, 0));
            _elementCostsList.Add(3, new ElementCost(400, 200, 0));
            _elementCostsList.Add(4, new ElementCost(1400, 600, 0));
            _elementCostsList.Add(5, new ElementCost(3500, 1500, 0));
            _elementCostsList.Add(6, new ElementCost(6000, 3000, 0));
            _elementCostsList.Add(7, new ElementCost(10000, 5000, 0));
            _elementCostsList.Add(8, new ElementCost(16000, 8000, 0));
            _elementCostsList.Add(9, new ElementCost(25000, 13000, 0));
            _elementCostsList.Add(10, new ElementCost(38000, 20000, 0));

            // Element production for each level
            _elementProductionList.Add(1, new ElementProduction(20, 0, 0, 0));
            _elementProductionList.Add(2, new ElementProduction(40, 0, 0, 0));
            _elementProductionList.Add(3, new ElementProduction(60, 0, 0, 0));
            _elementProductionList.Add(4, new ElementProduction(85, 0, 0, 0));
            _elementProductionList.Add(5, new ElementProduction(110, 0, 0, 0));
            _elementProductionList.Add(6, new ElementProduction(140, 0, 0, 0));
            _elementProductionList.Add(7, new ElementProduction(175, 0, 0, 0));
            _elementProductionList.Add(8, new ElementProduction(210, 0, 0, 0));
            _elementProductionList.Add(9, new ElementProduction(250, 0, 0, 0));
            _elementProductionList.Add(10, new ElementProduction(300, 0, 0, 0));

            // Element Score for each level
            _elementScoreList.Add(1, 1);
            _elementScoreList.Add(2, 3);
            _elementScoreList.Add(3, 6);
            _elementScoreList.Add(4, 12);
            _elementScoreList.Add(5, 20);
            _elementScoreList.Add(6, 30);
            _elementScoreList.Add(7, 42);
            _elementScoreList.Add(8, 57);
            _elementScoreList.Add(9, 75);
            _elementScoreList.Add(10, 100);
        }
        public IronMineElementType()
        {
            _elementType     = ElementType.Type.BUILDING_IRONMINE;
            _name            = ElementType.GetTypeName(_elementType);
            _isRessources    = false;
            _hasLevelEnable  = true;
            _imagePath       = "pack://application:,,,/Resources/Images/building_iron_quary.png";
            _detailImagePath = "pack://application:,,,/Resources/Images/menu_ironmine.png";
            _elementInfo     = "It produces iron. Any bordering ore deposits, Cottages and a maximum of one Foundry will increase productivity.";

            // Element cost for each level
            _elementCostsList.Add(1, new ElementCost(50, 0, 0));
            _elementCostsList.Add(2, new ElementCost(200, 0, 0));
            _elementCostsList.Add(3, new ElementCost(400, 200, 0));
            _elementCostsList.Add(4, new ElementCost(1400, 600, 0));
            _elementCostsList.Add(5, new ElementCost(3500, 1500, 0));
            _elementCostsList.Add(6, new ElementCost(6000, 3000, 0));
            _elementCostsList.Add(7, new ElementCost(10000, 5000, 0));
            _elementCostsList.Add(8, new ElementCost(16000, 8000, 0));
            _elementCostsList.Add(9, new ElementCost(25000, 13000, 0));
            _elementCostsList.Add(10, new ElementCost(38000, 20000, 0));

            // Element production for each level
            _elementProductionList.Add(1, new ElementProduction(0, 0, 20, 0));
            _elementProductionList.Add(2, new ElementProduction(0, 0, 40, 0));
            _elementProductionList.Add(3, new ElementProduction(0, 0, 60, 0));
            _elementProductionList.Add(4, new ElementProduction(0, 0, 85, 0));
            _elementProductionList.Add(5, new ElementProduction(0, 0, 110, 0));
            _elementProductionList.Add(6, new ElementProduction(0, 0, 140, 0));
            _elementProductionList.Add(7, new ElementProduction(0, 0, 175, 0));
            _elementProductionList.Add(8, new ElementProduction(0, 0, 210, 0));
            _elementProductionList.Add(9, new ElementProduction(0, 0, 250, 0));
            _elementProductionList.Add(10, new ElementProduction(0, 0, 300, 0));

            // Element Score for each level
            _elementScoreList.Add(1, 1);
            _elementScoreList.Add(2, 3);
            _elementScoreList.Add(3, 6);
            _elementScoreList.Add(4, 12);
            _elementScoreList.Add(5, 20);
            _elementScoreList.Add(6, 30);
            _elementScoreList.Add(7, 42);
            _elementScoreList.Add(8, 57);
            _elementScoreList.Add(9, 75);
            _elementScoreList.Add(10, 100);
        }
Esempio n. 7
0
        public TownHallElementType()
        {
            _elementType     = ElementType.Type.BUILDING_TOWNHALL;
            _name            = ElementType.GetTypeName(_elementType);
            _isRessources    = false;
            _hasLevelEnable  = true;
            _imagePath       = "pack://application:,,,/Resources/Images/building_townhall.png";
            _detailImagePath = "pack://application:,,,/Resources/Images/menu_townhall.png";
            _elementInfo     = "It provides basic storage and wood production. Also determines the maximum number of buildings in a city. Only one can be built in each city. Cannot be totally demolished or destroyed.";

            // Element cost for each level
            _elementCostsList.Add(1, new ElementCost(0, 0, 0));
            _elementCostsList.Add(2, new ElementCost(200, 0, 0));
            _elementCostsList.Add(3, new ElementCost(500, 100, 0));
            _elementCostsList.Add(4, new ElementCost(1000, 300, 0));
            _elementCostsList.Add(5, new ElementCost(3000, 1500, 0));
            _elementCostsList.Add(6, new ElementCost(8000, 4000, 0));
            _elementCostsList.Add(7, new ElementCost(15000, 10000, 0));
            _elementCostsList.Add(8, new ElementCost(30000, 25000, 0));
            _elementCostsList.Add(9, new ElementCost(60000, 60000, 0));
            _elementCostsList.Add(10, new ElementCost(120000, 120000, 0));

            // Element Score for each level
            _elementScoreList.Add(1, 3);
            _elementScoreList.Add(2, 9);
            _elementScoreList.Add(3, 18);
            _elementScoreList.Add(4, 36);
            _elementScoreList.Add(5, 60);
            _elementScoreList.Add(6, 90);
            _elementScoreList.Add(7, 126);
            _elementScoreList.Add(8, 171);
            _elementScoreList.Add(9, 225);
            _elementScoreList.Add(10, 300);

            // Element Storage for each level
            _elementStorageList.Add(1, new ElementStorage(5000));
            _elementStorageList.Add(2, new ElementStorage(7000));
            _elementStorageList.Add(3, new ElementStorage(10000));
            _elementStorageList.Add(4, new ElementStorage(15000));
            _elementStorageList.Add(5, new ElementStorage(24000));
            _elementStorageList.Add(6, new ElementStorage(35000));
            _elementStorageList.Add(7, new ElementStorage(50000));
            _elementStorageList.Add(8, new ElementStorage(80000));
            _elementStorageList.Add(9, new ElementStorage(125000));
            _elementStorageList.Add(10, new ElementStorage(175000));
        }
Esempio n. 8
0
        public ResearchCenterElementType()
        {
            _elementType     = ElementType.Type.BUILDING_RESEARCH_CENTER;
            _name            = ElementType.GetTypeName(_elementType);
            _isRessources    = false;
            _hasLevelEnable  = true;
            _imagePath       = "pack://application:,,,/Resources/Images/building_research_center.png";
            _detailImagePath = "pack://application:,,,/Resources/Images/menu_research_center.png";
            _elementInfo     = "It produces research.";

            // Element cost for each level
            _elementCostsList.Add(1, new ElementCost(100, 0, 0));
            _elementCostsList.Add(2, new ElementCost(300, 0, 0));
            _elementCostsList.Add(3, new ElementCost(600, 0, 0));
            _elementCostsList.Add(4, new ElementCost(2000, 0, 0));
            _elementCostsList.Add(5, new ElementCost(4000, 1000, 0));
            _elementCostsList.Add(6, new ElementCost(7000, 2000, 0));
            _elementCostsList.Add(7, new ElementCost(11500, 3500, 0));
            _elementCostsList.Add(8, new ElementCost(17000, 7000, 0));
            _elementCostsList.Add(9, new ElementCost(10000, 14000, 0));
            _elementCostsList.Add(10, new ElementCost(29000, 29000, 0));

            // Element production for each level
            _elementProductionList.Add(1, new ElementProduction(0, 0, 0, 0, 0, 25));
            _elementProductionList.Add(2, new ElementProduction(0, 0, 0, 0, 0, 50));
            _elementProductionList.Add(3, new ElementProduction(0, 0, 0, 0, 0, 75));
            _elementProductionList.Add(4, new ElementProduction(0, 0, 0, 0, 0, 100));
            _elementProductionList.Add(5, new ElementProduction(0, 0, 0, 0, 0, 130));
            _elementProductionList.Add(6, new ElementProduction(0, 0, 0, 0, 0, 170));
            _elementProductionList.Add(7, new ElementProduction(0, 0, 0, 0, 0, 210));
            _elementProductionList.Add(8, new ElementProduction(0, 0, 0, 0, 0, 260));
            _elementProductionList.Add(9, new ElementProduction(0, 0, 0, 0, 0, 320));
            _elementProductionList.Add(10, new ElementProduction(0, 0, 0, 0, 0, 400));

            // Element Score for each level
            _elementScoreList.Add(1, 1);
            _elementScoreList.Add(2, 3);
            _elementScoreList.Add(3, 6);
            _elementScoreList.Add(4, 12);
            _elementScoreList.Add(5, 20);
            _elementScoreList.Add(6, 30);
            _elementScoreList.Add(7, 42);
            _elementScoreList.Add(8, 57);
            _elementScoreList.Add(9, 75);
            _elementScoreList.Add(10, 100);
        }
        public IronElementType()
        {
            _elementType    = ElementType.Type.RESSOURCE_IRON;
            _name           = ElementType.GetTypeName(_elementType);
            _isRessources   = true;
            _hasLevelEnable = false;
            var select = Random.Next(1, 5);

            _imagePath       = "pack://application:,,,/Resources/Images/resource_iron_" + select.ToString() + ".png";
            _detailImagePath = "pack://application:,,,/Resources/Images/menu_iron.png";
            _elementInfo     = "Each Iron Mine gains 50% for the first adjacent iron node, then 40% for each after that. The Iron Mine's production efficiency can then be increased up to 75% by an adjacent Foundry, and up to 30% by each adjacent Cottage.";

            // Bonus linked to iron
            _elementProductionBonus = new ElementProductionBonus(0, 0, 0, 0);
            _elementProductionBonus.IsRessourcesBonus = true;
            _elementProductionBonus.FirstBonus        = 50;
            _elementProductionBonus.SecondBonus       = 40;
        }
Esempio n. 10
0
        public ForestElementType()
        {
            _elementType    = ElementType.Type.RESSOURCE_FOREST;
            _name           = ElementType.GetTypeName(_elementType);
            _isRessources   = true;
            _hasLevelEnable = false;
            var select = Random.Next(1, 5);

            _imagePath       = "pack://application:,,,/Resources/Images/resource_wood_" + select + ".png";
            _detailImagePath = "pack://application:,,,/Resources/Images/menu_forest.png";
            _elementInfo     = "Each Woodcutter's Hut gains 50% production efficiency from the first adjacent wood node, then 40% for each after that. The Woodcutter's Hut production efficiency can then be further increased up to 75% by an adjacent Sawmill, and up to 30% by each adjacent Cottage.";

            // Bonus linked to Forest
            _elementProductionBonus = new ElementProductionBonus(0, 0, 0, 0);
            _elementProductionBonus.IsRessourcesBonus = true;
            _elementProductionBonus.FirstBonus        = 50;
            _elementProductionBonus.SecondBonus       = 40;
        }
Esempio n. 11
0
        public FoundryElementType()
        {
            _elementType     = ElementType.Type.BUILDING_FOUNDRY;
            _name            = ElementType.GetTypeName(_elementType);
            _isRessources    = false;
            _hasLevelEnable  = true;
            _imagePath       = "pack://application:,,,/Resources/Images/building_foundry.png";
            _detailImagePath = "pack://application:,,,/Resources/Images/menu_foundry.png";
            _elementInfo     = "It increases the efficiency of bordering Ore Mines and iron storage capacity of bordering Storage.";

            // Element cost for each level
            _elementCostsList.Add(1, new ElementCost(60, 60, 0));
            _elementCostsList.Add(2, new ElementCost(150, 150, 0));
            _elementCostsList.Add(3, new ElementCost(350, 350, 0));
            _elementCostsList.Add(4, new ElementCost(1100, 1100, 0));
            _elementCostsList.Add(5, new ElementCost(2700, 2700, 0));
            _elementCostsList.Add(6, new ElementCost(5000, 5000, 0));
            _elementCostsList.Add(7, new ElementCost(8500, 8500, 0));
            _elementCostsList.Add(8, new ElementCost(13500, 13500, 0));
            _elementCostsList.Add(9, new ElementCost(21500, 21500, 0));
            _elementCostsList.Add(10, new ElementCost(33000, 33000, 0));

            for (int i = 1; i <= 10; i++)
            {
                _elementProductionBonusList.Add(i, new ElementProductionBonus(0, 0, 30 + (i - 1) * 5, 0));
            }

            // Element Score for each level
            _elementScoreList.Add(1, 1);
            _elementScoreList.Add(2, 4);
            _elementScoreList.Add(3, 7);
            _elementScoreList.Add(4, 14);
            _elementScoreList.Add(5, 24);
            _elementScoreList.Add(6, 36);
            _elementScoreList.Add(7, 50);
            _elementScoreList.Add(8, 68);
            _elementScoreList.Add(9, 90);
            _elementScoreList.Add(10, 120);
        }
        public MarketplaceElementType()
        {
            _elementType     = ElementType.Type.BUILDING_MARKETPLACE;
            _name            = ElementType.GetTypeName(_elementType);
            _isRessources    = false;
            _hasLevelEnable  = true;
            _imagePath       = "pack://application:,,,/Resources/Images/building_marketplace.png";
            _detailImagePath = "pack://application:,,,/Resources/Images/menu_marketplace.png";
            _elementInfo     = "It allows transport of resources between cities and enables trade with other players by land. Also increases the tax income of connected buildings.";

            // Element cost for each level
            _elementCostsList.Add(1, new ElementCost(40, 20, 0));
            _elementCostsList.Add(2, new ElementCost(80, 40, 0));
            _elementCostsList.Add(3, new ElementCost(160, 80, 0));
            _elementCostsList.Add(4, new ElementCost(400, 200, 0));
            _elementCostsList.Add(5, new ElementCost(1200, 600, 0));
            _elementCostsList.Add(6, new ElementCost(2800, 1400, 0));
            _elementCostsList.Add(7, new ElementCost(5600, 2800, 0));
            _elementCostsList.Add(8, new ElementCost(9600, 4800, 0));
            _elementCostsList.Add(9, new ElementCost(15200, 7600, 0));
            _elementCostsList.Add(10, new ElementCost(23200, 11600, 0));

            for (int i = 1; i <= 10; i++)
            {
                _elementProductionBonusList.Add(i, new ElementProductionBonus(0, 0, i * 2, 0));
            }

            // Element Score for each level
            _elementScoreList.Add(1, 1);
            _elementScoreList.Add(2, 2);
            _elementScoreList.Add(3, 5);
            _elementScoreList.Add(4, 10);
            _elementScoreList.Add(5, 16);
            _elementScoreList.Add(6, 24);
            _elementScoreList.Add(7, 34);
            _elementScoreList.Add(8, 46);
            _elementScoreList.Add(9, 60);
            _elementScoreList.Add(10, 80);
        }