コード例 #1
0
    def get_producers(self):
        supplies_page = OgameClient.get_supplies(self._comm, self._planet_id).get_producers_list()

        producers_list = ["metalMine", "crystalMine", "deuteriumSynthesizer",
                          "solarPlant", "fusionPlant", "metalStorage",
                          "crystalStorage", "deuteriumStorage"]

        return {producer_name: supplies_page.get_item(producer_name) for producer_name in producers_list}
コード例 #2
0
    def make_fleet(self, fleet):
        assert isinstance(fleet, FleetArmy)

        fleet_to_build = fleet.get_data()

        for fl in fleet_to_build:
            hangar_page = OgameClient.get_hangar(self._comm, self._planet_id)
            url = hangar_page.get_production_url(fl[0], fl[1]) #TODO: refactor!
            self._comm.get(url)
            print("[{} (planet)] Hangar production: {}x {}".format(self._planet_name, fl[1], fl[2]))
        pass
コード例 #3
0
    def get_spy_messages(self) -> [SpyMessageDetail]:
        spy_msg_reports = True
        spy_message_details = []
        while spy_msg_reports:
            spy_msg_reports = OgameClient.get_spy_messages(
                self._comm).get_spy_messages()

            for report in spy_msg_reports:
                msg_detail_page = OgameClient.get_spy_message_detail(
                    self._comm, report)
                location = msg_detail_page.get_location()
                resources = msg_detail_page.get_resources()
                fleet = msg_detail_page.get_fleet()
                defense = msg_detail_page.get_defense()
                buildings = msg_detail_page.get_buildings()
                research = msg_detail_page.get_research()
                spy_message_details.append(
                    SpyMessageDetail(location, resources, fleet, defense,
                                     buildings, research))
                OgameClient.remove_message(self._comm, report)
        return spy_message_details
コード例 #4
0
    def make_defense(self, defense):
        assert isinstance(defense, DefenseArmy)

        defense_to_build = defense.get_data()

        for fl in defense_to_build:
            defense_page = OgameClient.get_defense(self._comm, self._planet_id)
            url = defense_page.get_production_url(fl[0],
                                                  fl[1])  #TODO: refactor!
            self._comm.get(url)
            print("[{} (planet)] Defense production: {}x {}".format(
                self._planet_name, fl[1], fl[2]))
        pass
コード例 #5
0
    def get_facilities(self):
        facilities_page = OgameClient.get_facilities(
            self._comm, self._planet_id).get_producers_list()

        facilities_list = [
            "roboticsFactory", "shipyard", "researchLaboratory",
            "allianceDepot", "missileSilo", "naniteFactory", "terraformer",
            "repairDock"
        ]

        return {
            facility_name: facilities_page.get_item(facility_name)
            for facility_name in facilities_list
        }
コード例 #6
0
ファイル: fleet_info.py プロジェクト: RadekPazderka/ogame_bot
    def send_fleet(self, location: Location, mission_type: MissionType,
                   fleet: FleetArmy):
        assert isinstance(location, Location)
        assert isinstance(mission_type, MissionType)
        assert isinstance(fleet, FleetArmy)

        print("Sending {} to {}".format(mission_type, location))
        fleetdispatch_page = OgameClient.get_fleet_dispatch(
            self._comm, self._planet_id)
        token = fleetdispatch_page._get_token()
        """****** stage 1 ******"""
        stage1_payload = FleetDispatcher._build_stage1_payload(location, fleet)
        stage1_params = FleetDispatcher._build_stage1_params()
        res_stage_1 = OgameClient.post_action(self._comm,
                                              params=stage1_params,
                                              data=stage1_payload)
        """****** stage 2 ******"""
        stage2_payload = FleetDispatcher._build_stage2_payload(
            stage1_payload, mission_type, token)
        stage2_params = FleetDispatcher._build_stage2_params()
        res_stage_2 = OgameClient.post_action(self._comm,
                                              params=stage2_params,
                                              data=stage2_payload)
コード例 #7
0
    def __init__(self, comm, planet_id):
        self._comm = comm
        self._planet_id = planet_id
        overview_page = OgameClient.get_overview(self._comm, self._planet_id)
        self._planet_name = overview_page.get_planet_name()
        self._location = overview_page.get_location()
        self._galaxy_explorer_manager = GalaxyExplorerManager(
            comm, planet_id, self._location)
        self._fleet_manager = None
        self._reseach_manager = None
        self._buildings = None
        self._facility_manager = None
        self._hangar_manager = None

        self._defense_manager = None
コード例 #8
0
    def get_reseach(self):
        research_page = OgameClient.get_reseach(
            self._comm, self._planet_id).get_research_list()

        research_list = [
            'energyTechnology', 'laserTechnology', 'ionTechnology',
            'hyperspaceTechnology', 'plasmaTechnology',
            'combustionDriveTechnology', 'impulseDriveTechnology',
            'hyperspaceDriveTechnology', 'espionageTechnology',
            'computerTechnology', 'astrophysicsTechnology',
            'researchNetworkTechnology', 'gravitonTechnology',
            'weaponsTechnology', 'shieldingTechnology', 'armorTechnology'
        ]

        return {
            reseach_name: research_page.get_item(reseach_name)
            for reseach_name in research_list
        }
コード例 #9
0
 def get_galaxy_debris(self):
     return OgameClient.get_galaxy(
         self._comm, self._planet_id,
         self._planet_location.coord).get_expedition_debris()
コード例 #10
0
 def galaxy_inactive_players(self, coord: Coord):
     inactive_players = OgameClient.get_galaxy(self._comm, self._planet_id,
                                               coord).getInactivePlanets()
     return inactive_players
コード例 #11
0
 def clear_messages(self):
     OgameClient.clear_messages(self._comm, 20)
コード例 #12
0
 def __init__(self, comm):
     planets_id = OgameClient.get_overview(comm).getPlanetsId()
     self._planets = [
         PlanetInfo(comm, planets_id) for planets_id in planets_id
     ]
コード例 #13
0
 def _update_fleet_status(self) -> FleetStatus:
     fleet_dispatch = OgameClient.get_fleet_dispatch(
         self._comm, self._planet_id)
     return fleet_dispatch.get_fleet_status()