Ejemplo n.º 1
0
        private TechnologyBase GetTechnology(TechnologyType type, IEnumerable <HtmlNode> technologiesNode, PlayerPlanet planet)
        {
            var technologyNode   = GetTechnologyNode(technologiesNode, type);
            var technologyLevel  = GetTechnologyLevel(technologyNode);
            var canUpgradeStatus = CanUpgradeStatus(technologyNode);
            var techReached      = canUpgradeStatus != "off";
            var canUpgrade       = techReached && canUpgradeStatus != "disabled";

            switch (type)
            {
            case TechnologyType.EnergyTechnology:
                return(new EnergyTechnology(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.LaserTechnology:
                return(new LaserTechnology(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.IonTechnology:
                return(new IonTechnology(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.HyperspaceTechnology:
                return(new HyperspaceTechnology(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.PlasmaTechnology:
                return(new PlasmaTechnology(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.EspionageTechnology:
                return(new EspionageTechnology(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.ComputerTechnology:
                return(new ComputerTechnology(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.Astrophysics:
                return(new Astrophysics(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.IntergalacticResearchNetwork:
                return(new IntergalacticResearchNetwork(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.GravitonTechnology:
                return(new GravitonTechnology(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.WeaponTechnology:
                return(new WeaponTechnology(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.ShieldingTechnology:
                return(new ShieldingTechnology(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.ArmourTechnology:
                return(new ArmourTechnology(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.CombusionDrive:
                return(new CombustionDrive(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.ImpulseDrive:
                return(new ImpulseDrive(planet, technologyLevel, techReached, canUpgrade));

            case TechnologyType.HyperspaceDrive:
                return(new HyperspaceDrive(planet, technologyLevel, techReached, canUpgrade));

            default:
                return(null);
            }
        }
Ejemplo n.º 2
0
 public ShieldingTechnology(PlayerPlanet belongsTo, int currentLevel, bool techReached, bool canBuild) : base(
         belongsTo, currentLevel, techReached, canBuild)
 {
 }
Ejemplo n.º 3
0
 public HyperspaceTechnology(PlayerPlanet belongsTo, int currentLevel, bool techReached, bool canBuild) : base(
         belongsTo, currentLevel, techReached, canBuild)
 {
 }
Ejemplo n.º 4
0
        public async Task <List <TechnologyBase> > GetTechnologies(HtmlDocument document, PlayerPlanet planet)
        {
            return(await Task.Run(() =>
            {
                var planetTechnologies = new List <TechnologyBase>();

                var basicTechnologiesNode = document.GetElementbyId("base1").Descendants("div");
                foreach (var technologyType in BasicTechnologies.List)
                {
                    planetTechnologies.Add(GetTechnology(technologyType, basicTechnologiesNode, planet));
                }

                var driveTechnologiesNode = document.GetElementbyId("base2").Descendants("div");
                foreach (var technologyType in DriveTechnologies.List)
                {
                    planetTechnologies.Add(GetTechnology(technologyType, driveTechnologiesNode, planet));
                }

                var advancedTechnologiesNode = document.GetElementbyId("base3").Descendants("div");
                foreach (var technologyType in AdvancedTechnologies.List)
                {
                    planetTechnologies.Add(GetTechnology(technologyType, advancedTechnologiesNode, planet));
                }

                var combatTechnologiesNode = document.GetElementbyId("base4").Descendants("div");
                foreach (var technologyType in CombatTechnologies.List)
                {
                    planetTechnologies.Add(GetTechnology(technologyType, combatTechnologiesNode, planet));
                }

                return planetTechnologies;
            }));
        }
Ejemplo n.º 5
0
 public Astrophysics(PlayerPlanet belongsTo, int currentLevel, bool techReached, bool canBuild) : base(belongsTo,
                                                                                                       currentLevel, techReached, canBuild)
 {
 }
Ejemplo n.º 6
0
        public async Task <MessageContainer> UpgradeResourceBuilding(BuildingType type, PlayerPlanet planet)
        {
            if (!ObjectContainer.Instance.GetBuilding(planet, type).CanBuild)
            {
                return(MessageContainer.Fail());
            }

            var planetResources = await SendHttpRequest(Builder.BuildResourceRequest(planet.Id));

            var upgradeUrl =
                await DataProvider.BuildingsProvider.BuildingsParser.GetUpgradeBuildingUrl(planetResources.ResponseHtmlDocument, type);

            var response = await SendHttpRequest(Builder.BuildUpgradeBuildingRequest(upgradeUrl));

            if (response.StatusCode == HttpStatusCode.OK)
            {
                await RefreshObjectContainer();
            }

            return(response);
        }
Ejemplo n.º 7
0
        private ShipBase GetCivilShip(ShipType type, IEnumerable <HtmlNode> shipsNode, PlayerPlanet planet)
        {
            var shipNode        = GetCivilShipNode(shipsNode, type);
            var shipsCount      = GetShipsCount(shipNode);
            var canCreateStatus = CanCreateStatus(shipNode);
            var techReached     = canCreateStatus != "off";
            var canCreate       = techReached && canCreateStatus != "disabled";

            switch (type)
            {
            case ShipType.SmallCargo:
                return(new SmallCargo(planet, shipsCount, techReached, canCreate));

            case ShipType.LargeCargo:
                return(new LargeCargo(planet, shipsCount, techReached, canCreate));

            case ShipType.Recycler:
                return(new Recycler(planet, shipsCount, techReached, canCreate));

            case ShipType.EspionageProbe:
                return(new EspionageProbe(planet, shipsCount, techReached, canCreate));

            case ShipType.SolarSatellite:
                return(new SolarSatellite(planet, shipsCount, techReached, canCreate));

            case ShipType.ColonyShip:
                return(new ColonyShip(planet, shipsCount, techReached, canCreate));

            default:
                return(null);
            }
        }
Ejemplo n.º 8
0
        private ShipBase GetMilitaryShip(ShipType type, IEnumerable <HtmlNode> shipsNode, PlayerPlanet planet)
        {
            var shipNode        = GetMilitaryShipNode(shipsNode, type);
            var shipsCount      = GetShipsCount(shipNode);
            var canCreateStatus = CanCreateStatus(shipNode);
            var techReached     = canCreateStatus != "off";
            var canCreate       = techReached && canCreateStatus != "disabled";

            switch (type)
            {
            case ShipType.LightFighter:
                return(new LightFighter(planet, shipsCount, techReached, canCreate));

            case ShipType.HeavyFighter:
                return(new HeavyFighter(planet, shipsCount, techReached, canCreate));

            case ShipType.Cruiser:
                return(new Cruiser(planet, shipsCount, techReached, canCreate));

            case ShipType.Battleship:
                return(new Battleship(planet, shipsCount, techReached, canCreate));

            case ShipType.Battlecruiser:
                return(new Battlecruiser(planet, shipsCount, techReached, canCreate));

            case ShipType.Destroyer:
                return(new Destroyer(planet, shipsCount, techReached, canCreate));

            case ShipType.Deathstar:
                return(new Deathstar(planet, shipsCount, techReached, canCreate));

            case ShipType.Bomber:
                return(new Bomber(planet, shipsCount, techReached, canCreate));

            default:
                return(null);
            }
        }
Ejemplo n.º 9
0
 public async Task UpdatePlanetResources(HtmlDocument document, PlayerPlanet planet)
 {
     await ResourcesParser.GetPlanetResources(planet, document);
 }