def arena_info(): from the_tale.game import logic as game_logic battle_requests, active_battles = tt_services.matchmaker.cmd_get_info( matchmaker_types=(relations.MATCHMAKER_TYPE.ARENA, relations.MATCHMAKER_TYPE.BOT)) requests = [ request for request in battle_requests if request.matchmaker_type.is_ARENA ] requests.sort(key=lambda request: request.created_at) data = { 'arena_battle_requests': [request.ui_info() for request in requests], 'active_bot_battles': active_battles[relations.MATCHMAKER_TYPE.BOT], 'active_arena_battles': active_battles[relations.MATCHMAKER_TYPE.ARENA] } accounts_ids = {request.initiator_id for request in battle_requests} data['accounts'] = game_logic.accounts_info(accounts_ids) data['clans'] = game_logic.clans_info(data['accounts']) return data
def person_info(person): building = places_storage.buildings.get_by_person_id(person.id) data = {'id': person.id, 'name': person.name, 'updated_at': time.mktime(person.updated_at.timetuple()), 'place': { 'id': person.place.id, 'name': person.place.name, 'size': person.place.attrs.size, 'specialization': person.place.modifier.value, 'position': {'x': person.place.x, 'y': person.place.y} }, 'building': places_info.building_info(building) if building else None, 'politic_power': person.politic_power.ui_info([p.politic_power for p in person.place.persons]), 'attributes': attributes.attributes_info(effects=person.all_effects(), attrs=person.attrs, relation=relations.ATTRIBUTE), 'chronicle': chronicle_prototypes.chronicle_info(person, conf.settings.CHRONICLE_RECORDS_NUMBER), 'job': person.job.ui_info(), 'accounts': None, 'clans': None } accounts_ids = set() accounts_ids.update(data['politic_power']['heroes']['positive']) accounts_ids.update(data['politic_power']['heroes']['negative']) data['accounts'] = game_logic.accounts_info(accounts_ids) data['clans'] = game_logic.clans_info(data['accounts']) return data
def person_info(person): data = {'id': person.id, 'name': person.name, 'updated_at': time.mktime(person.updated_at.timetuple()), 'place': { 'id': person.place.id, 'name': person.place.name, 'size': person.place.attrs.size, 'specialization': person.place.modifier.value, 'position': {'x': person.place.x, 'y': person.place.y} }, 'politic_power': person.politic_power.ui_info([p.politic_power for p in person.place.persons]), 'attributes': attributes.attributes_info(effects=person.all_effects(), attrs=person.attrs, relation=relations.ATTRIBUTE), 'chronicle': chronicle_prototypes.chronicle_info(person, conf.settings.CHRONICLE_RECORDS_NUMBER), 'accounts': None, 'clans': None } accounts_ids = set() accounts_ids.update(data['politic_power']['heroes']['positive']) accounts_ids.update(data['politic_power']['heroes']['negative']) data['accounts'] = game_logic.accounts_info(accounts_ids) data['clans'] = game_logic.clans_info(data['accounts']) return data
def place_info(place, full_building_info): data = { "id": place.id, "name": place.name, "frontier": place.is_frontier, "new_for": time.mktime(place.new_for.timetuple()), "description": place.description_html, "updated_at": time.mktime(place.updated_at.timetuple()), "position": {"x": place.x, "y": place.y}, "politic_power": place.politic_power.ui_info([p.politic_power for p in place.get_same_places()]), "persons": place_info_persons_data(place, full_building_info=full_building_info), "attributes": attributes.attributes_info( effects=place.all_effects(), attrs=place.attrs, relation=relations.ATTRIBUTE ), "demographics": place_info_demographics(place), "bills": place_info_bills(place), "habits": place_info_habits(place), "chronicle": chronicle_prototypes.chronicle_info(place, conf.settings.CHRONICLE_RECORDS_NUMBER), "accounts": None, "clans": None, } accounts_ids = set() accounts_ids.update(data["politic_power"]["heroes"]["positive"]) accounts_ids.update(data["politic_power"]["heroes"]["negative"]) data["accounts"] = game_logic.accounts_info(accounts_ids) data["clans"] = game_logic.clans_info(data["accounts"]) return data
def place_info(place): data = {'id': place.id, 'name': place.name, 'frontier': place.is_frontier, 'new_for': time.mktime(place.new_for.timetuple()), 'description': place.description_html, 'updated_at': time.mktime(place.updated_at.timetuple()), 'position': {'x': place.x, 'y': place.y}, 'politic_power': place.politic_power.ui_info([p.politic_power for p in place.get_same_places()]), 'persons': place_info_persons_data(place), 'attributes': attributes.attributes_info(effects=place.all_effects(), attrs=place.attrs, relation=relations.ATTRIBUTE), 'demographics': place_info_demographics(place), 'bills': place_info_bills(place), 'habits': place_info_habits(place), 'chronicle': chronicle_prototypes.chronicle_info(place, conf.settings.CHRONICLE_RECORDS_NUMBER), 'accounts': None, 'clans': None } accounts_ids = set() accounts_ids.update(data['politic_power']['heroes']['positive']) accounts_ids.update(data['politic_power']['heroes']['negative']) data['accounts'] = game_logic.accounts_info(accounts_ids) data['clans'] = game_logic.clans_info(data['accounts']) return data
def place_info(place, full_building_info): inner_circle = politic_power_logic.get_inner_circle(place_id=place.id) data = { 'id': place.id, 'name': place.name, 'frontier': place.is_frontier, 'new_for': time.mktime(place.new_for.timetuple()), 'description': place.description_html, 'updated_at': time.mktime(place.updated_at.timetuple()), 'position': { 'x': place.x, 'y': place.y }, 'politic_power': { 'heroes': inner_circle.ui_info(), 'power': politic_power_storage.places.ui_info(place.id) }, 'persons': place_info_persons_data(place, full_building_info=full_building_info), 'attributes': attributes.attributes_info(effects=place.all_effects(), attrs=place.attrs, relation=relations.ATTRIBUTE), 'demographics': place_info_demographics(place), 'bills': place_info_bills(place), 'habits': place_info_habits(place), 'job': place.job.ui_info(), 'chronicle': chronicle_prototypes.chronicle_info( place, conf.settings.CHRONICLE_RECORDS_NUMBER), 'accounts': None, 'clans': None } accounts_ids = set() accounts_ids.update(data['politic_power']['heroes']['positive']) accounts_ids.update(data['politic_power']['heroes']['negative']) data['accounts'] = game_logic.accounts_info(accounts_ids) data['clans'] = game_logic.clans_info(data['accounts']) return data
def arena_info(): from the_tale.game import logic as game_logic battle_requests, active_battles = tt_services.matchmaker.cmd_get_info(matchmaker_types=(relations.MATCHMAKER_TYPE.ARENA, relations.MATCHMAKER_TYPE.BOT)) requests = [request for request in battle_requests if request.matchmaker_type.is_ARENA] requests.sort(key=lambda request: request.created_at) data = {'arena_battle_requests': [request.ui_info() for request in requests], 'active_bot_battles': active_battles[relations.MATCHMAKER_TYPE.BOT], 'active_arena_battles': active_battles[relations.MATCHMAKER_TYPE.ARENA]} accounts_ids = {request.initiator_id for request in battle_requests} data['accounts'] = game_logic.accounts_info(accounts_ids) data['clans'] = game_logic.clans_info(data['accounts']) return data