def __init__(self, parent, data): BaseEditor.__init__(self, parent, data, Ui_RaceEditor) ui = self.ui # Fill combo boxes ui.root_object.addItems(get_blender_objects(data)) ui.action_set.addItems([i.name for i in ActionSet.get_package_list()]) # Setup the values ui.name.setText(data.name) idx = ui.root_object.findText(data.root_object) if idx < 0: ui.root_object.setEditText(data.root_object) else: ui.root_object.setCurrentIndex(ui.root_object.findText(data.root_object)) ui.action_set.setCurrentIndex(ui.action_set.findText(data.action_set))
def __init__(self, parent, data): BaseEditor.__init__(self, parent, data, Ui_MonsterEditor) ui = self.ui # Fill combo boxes ui.root_object.addItems(get_blender_objects(data)) ui.action_set.addItems([i.name for i in ActionSet.get_package_list()]) with open(data._schema) as f: schema = json.loads(f.read()) element = eval(schema['element']) ui.element.addItems([i.title() for i in element]) # Setup the values ui.name.setText(data.name) idx = ui.root_object.findText(data.root_object) if idx < 0: ui.root_object.setEditText(data.root_object) else: ui.root_object.setCurrentIndex(ui.root_object.findText(data.root_object)) ui.action_set.setCurrentIndex(ui.action_set.findText(data.action_set)) ui.element.setCurrentIndex(ui.element.findText(data.element.title())) ui.hp_per_level.setValue(data.hp_per_level) ui.level_adjustment.setValue(data.level_adjustment) ui.xp_reward.setValue(data.xp_reward) ui.size.setValue(data.size) ui.speed.setValue(data.speed) # Affinities ui.fire.setValue(data.affinities['FIRE']) ui.storm.setValue(data.affinities['STORM']) ui.death.setValue(data.affinities['DEATH']) ui.water.setValue(data.affinities['WATER']) ui.earth.setValue(data.affinities['EARTH']) ui.holy.setValue(data.affinities['HOLY'])
def __init__(self, port, timeout): # The "main" dict for storing globals self.main = {} # Store the server itself (for RPC stuff) self.main['server'] = self # Client info self.main['clients'] = {} # Player info self.main['players'] = {} # The current dungeon self.main['dungeon'] = [] # Current items on the ground self.main['ground_item_counter'] = 0 self.main['ground_items'] = {} # Which rooms still have encounters self.main['encounters'] = {} # Current "combats" self.main['combats'] = {} # Available animation actions self.main['actions'] = {} for actionset in ActionSet.get_package_list(): self.main['actions'][actionset.name] = actionset.actions # Next available remote id self.main['effect_id'] = 0 # Create the host self.host = enet.Host(enet.Address(b'', port), 10, 0, 0, 0) # How long we wait on players self.timeout = timeout print("Server ready") # Now run the server try: while True: event = self.host.service(1000) if event.type == enet.EVENT_TYPE_CONNECT: print('Client Connected:', event.peer.address) elif event.type == enet.EVENT_TYPE_DISCONNECT: # print('Client Disconnected:', event.peer.address) self.drop_client(event.peer, "Disconnected") elif event.type == enet.EVENT_TYPE_RECEIVE: data = event.packet.data d = data.split() client_id = str(d[0], NET_ENCODING) if d[1].strip() == b'register': self.register_client(client_id, event.peer) continue if client_id not in self.main['clients']: print("Warning:%s is not registered" % client_id) continue self.main['clients'][client_id].handle_request(data, event.peer) except Exception: import sys, traceback traceback.print_exc(file=sys.stdout) except: # Grabs the KeyboardInterrupt pass print("Server exiting...")