Esempio n. 1
0
def load_organizations():
    print("Loading Organizations...", end="")
    for o in SharedData().mongo_helper.organizations.find():
        org = Organization()
        org.load_from_JSON(o)
        SharedData().organizations[org.id] = org
    print("OK")
Esempio n. 2
0
 def run(self):
     self.app.listen(config.FRONTSERVER_PORT)
     SharedData().add_action(GeoTimeAction.TimeAction())
     SharedData().add_action(SpawnEvents.SpawnSiteEvent())
     tornado.ioloop.IOLoop.current().add_callback(SharedData().start_loop)
     tornado.ioloop.IOLoop.current().start()
     pass
Esempio n. 3
0
def load_npcs():
    print("Loading NPCs...", end="")
    for o in SharedData().mongo_helper.NPCs.find():
        npc = NPCCharacter()
        npc.load_from_JSON(o)
        SharedData().NPCs[npc.id] = npc
    print("OK")
Esempio n. 4
0
 def __init__(self, app, request, **kwargs):
     super().__init__(app, request, **kwargs)
     try:
         site_id = self.get_cookie("site_id")
         self.site = SharedData().get_combat_site(int(site_id))
     except:
         self.site = None
Esempio n. 5
0
 def get(self):
     cp = SharedData().get_online_player(self.session_id)
     if cp:
         # self.write(cp.toJSON().replace(",}", "}").replace(",]", "]"))
         self.write(cp.dict())
     else:
         self.write(b"{}")
     pass
Esempio n. 6
0
def load_havens():
    print("Loading Havens...", end="")
    for o in SharedData().mongo_helper.Havens.find():
        haven = eval(o["type"])()
        haven.load_from_JSON(o)
        SharedData().havens[haven.id] = haven
        SharedData().add_base(haven)
    print("OK")
Esempio n. 7
0
 def get(self, objectId):
     map_obj = SharedData().get_map_object_by_id(int(objectId))
     if map_obj:
         self.set_status(200)
         self.write(map_obj.dict())
     else:
         self.set_status(404)
         self.write("{}")
     pass
Esempio n. 8
0
    def prepare(self):
        if not self.session_id or not SharedData().is_online(self.session_id):
            self.session_id = uuid.uuid4().hex
            self.set_cookie("sessionId", self.session_id)
            SharedData().add_online(self.session_id)

        if not self.current_user and self.request.uri.lower() not in [
                "/login", "/player/login", "/register"
        ]:
            self.redirect("/login")
            return
Esempio n. 9
0
    def post(self):
        npc_org = NPCOrganizations()
        player = Player(
            "Vincent", "Merle",
            SharedData().organizations[next(
                (org for org in SharedData().organizations
                 if SharedData().organizations[org].name == "X-COM"))],
            random.randint(1000000, 10000000),
            SharedData().get_default_sector())
        SharedData().add_online_player(self.session_id, player)
        AWaiters().deliver(AWaiters.WAIT_FOR_CHAT_PLAYERS, player)

        player.CurrentSector.add_object(player.MapObject)

        self.redirect("/")
        pass
Esempio n. 10
0
 def map_action(self):
     action_result = self.action.proceed()
     if action_result == 1:
         self.next_action()
     elif action_result == -1:
         self.end()
         SharedData().remove_ufo(self.id)
         pass
     pass
Esempio n. 11
0
 def post(self):
     print(self.request.body)
     post_data = tornado.escape.json_decode(self.request.body)
     channel = post_data["channel"]
     message = post_data["message"]
     r = SharedData().send_message(self.current_user, channel, message)
     AWaiters().deliver(AWaiters.WAIT_FOR_CHAT_MESSAGES, r)
     self.write("{}")
     pass
Esempio n. 12
0
class StartBattleHandler(BaseRequestHandler):
    def __init__(self, app, request, **kwargs):
        super().__init__(app, request, **kwargs)
        try:
            site_id = self.get_cookie("site_id")
            self.site = SharedData().get_combat_site(int(site_id))
        except:
            self.site = None

    def get(self):
        self.render("html/battle.html",
                    player_team=self.current_user.Crew,
                    enemy_team=self.site.Crew)

    def post(self):
        site_id = tornado.escape.json_decode(self.request.body)["site_id"]
        self.set_cookie("site_id", site_id)
        self.site = SharedData().get_combat_site(int(site_id))
        self.site.start_battle(self.current_user)
        self.write(b'{}')
Esempio n. 13
0
    def post(self):
        print(self.request.body)
        channel = tornado.escape.json_decode(self.request.body)["channel"]
        refresh_all = tornado.escape.json_decode(
            self.request.body)["refresh_all"]
        if refresh_all != 1:
            self.future = AWaiters().subscribe(AWaiters.WAIT_FOR_CHAT_PLAYERS)
            yield self.future
            if not self.alive:
                return

        players = SharedData().get_players_on_channel(channel)
        res = '{ "players" : ['
        for token_id in players:
            player = SharedData().get_player_by_token(token_id)
            res += ',{"name": "%s"}' % player.Name
            pass
        res += "]}"
        self.write(res.replace("[,", "["))
        pass
Esempio n. 14
0
    def post(self):
        bunker_id = tornado.escape.json_decode(self.request.body)["bunker_id"]
        b = SharedData().get_base(bunker_id)
        if not b.refresh_event or b.refresh_event.status == ActionStatus.FINISHED:
            b.refresh_event = RefreshRecruitsEvent(b.clear_recruits)
            SharedData().add_action(b.refresh_event)
            b.refresh_recruits()

        self.write(b.dict())
        pass
Esempio n. 15
0
    def __init__(self, o, ms: map.MapSector):
        self.id = random.randint(0, config.EVENTS_MAX_ID)
        self.data = o
        self.map_object = MapObjects.CombatSiteMO()
        p = Point()
        p.new()
        self.map_object.new(p, self.id, o['name'])

        self.sector = ms
        self.Crew = []
        self.log = []
        ms.add_object(self.map_object)
        self.duration = 20
        self.spawn_event = DeSpawnSiteEvent(self.despawn)
        SharedData().add_action(self.spawn_event)
        pass
Esempio n. 16
0
    def post(self):
        soldier_id = tornado.escape.json_decode(
            self.request.body)["recruit_id"]
        bunker_id = tornado.escape.json_decode(self.request.body)["bunker_id"]
        b = SharedData().get_base(bunker_id)
        soldier = [
            soldier for soldier in b.avail_recruits if soldier.id == soldier_id
        ]

        if soldier:
            b.avail_recruits.remove(soldier[0])
            self.current_user.Crew.append(soldier[0])
            self.set_status(200)
        else:
            self.set_status(404)

        self.write(self.current_user.dict())
        pass
Esempio n. 17
0
 def save(self):
     haven = SharedData().havens[self.haven_id]
     haven.save()
Esempio n. 18
0
 def tick(self):
     if self.status != ActionStatus.ACTIVE:
         return
     SharedData().spawn_combat_sites(CombatSite)
     AWaiters().deliver(AWaiters.WAIT_FOR_MAP_OBJECTS, {})
     self.timeout = self.interval
Esempio n. 19
0
 def get(self):
     objects = SharedData().get_all_map_objects_json()
     self.set_status(200)
     self.write(objects)
Esempio n. 20
0
def load_all():
    SharedData()
    load_npcs()
    load_havens()
    load_organizations()
Esempio n. 21
0
 def despawn(self):
     self.spawn_event = None
     self.sector.remove_object(self.map_object)
     SharedData().remove_ufo(self.id)
     # del SharedData.AllFlyingObjects[self.id]
     pass
Esempio n. 22
0
 def get_current_user(self):
     return SharedData().get_online_player(self.session_id)
Esempio n. 23
0
 def save(self):
     SharedData().save_npc_character(npc=self)
Esempio n. 24
0
 def post(self):
     site_id = tornado.escape.json_decode(self.request.body)["site_id"]
     self.set_cookie("site_id", site_id)
     self.site = SharedData().get_combat_site(int(site_id))
     self.site.start_battle(self.current_user)
     self.write(b'{}')
Esempio n. 25
0
 def save(self):
     SharedData().save_haven(haven=self)
Esempio n. 26
0
 def get(self):
     if SharedData().is_online(self.session_id):
         self.redirect("/")
     else:
         self.render("html/login.html")
     pass
Esempio n. 27
0
 def save(self):
     SharedData().save_organization(o=self)