Beispiel #1
0
    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))
Beispiel #2
0
	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'])
Beispiel #3
0
	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...")