Пример #1
0
	def showGood(self, show_good):
		self.show_good_planets = show_good
		if self.show_good_planets:
			self.user_race = store.get_object('race', {'user_id':self.selected_user_id})
			self.selected_user_governers_count = len(store.get_governers(self.selected_user_id))

		self.update()
Пример #2
0
	def selectUser(self, user_id):
		hw_pos = store.get_object('hw', {'user_id': user_id})
		self.selected_user_governers_count = 0
		if not hw_pos:
			print 'cannot get hw of %s'%user_id
			return
		self.selected_user_id = user_id
		self.centerAt( (int(hw_pos['x']), int(hw_pos['y'])) )
		self.selected_user_id = user_id
		try:
			self.user_race = store.get_object('race', {'user_id': self.selected_user_id})
			self.selected_user_governers_count = len(store.get_governers(self.selected_user_id))
		except:
			pass
		self.update()
Пример #3
0
	def set_coord(self, coord):
		
		self.coord = coord
		self.sizer.DeleteWindows()
		
		dsizer = wx.BoxSizer(wx.HORIZONTAL)
		self.sizer.Add(dsizer)
		
		dups = {}
		protos = {}
		
		up = store.get_object('user_planet', {'x':coord[0], 'y':coord[1]})
		if not up:
			return
		user_id = up['user_id']
		# buildings	if ours
		for building in store.get_garrison_units(coord):
			bc = building['proto_id']
			p = store.get_object('proto', {'proto_id':bc, 'user_id':user_id})
			if not p:
				print 'proto not found for %s'%(building,)
				continue
				
			if int(p['is_building']) != 1:
				continue
				
			if 'max_count' in p and int(p['max_count'])!=1:
				dups.setdefault(bc, []).append(building)
				continue
				
			img = image.getBcImage(bc, 20)
			if not img:
				wnd = wx.StaticText(self, -1, 'Unknown building %s'%(bc,))
			else:
				wnd = wx.StaticBitmap(self, wx.ID_ANY)
				wnd.SetBitmap(img)
			dsizer.Add(wnd)

		for bc, builds in dups.iteritems():
			img = image.getBcImage(bc, 20)
			
			wsizer = wx.BoxSizer(wx.HORIZONTAL)
			self.sizer.Add(wsizer)
			
			wnd = wx.StaticBitmap(self, wx.ID_ANY)
			if img:
				wnd.SetBitmap(img)
			wsizer.Add(wnd)
			
			txt = wx.StaticText(self, -1, 'x %s'%(len(builds),))
			build_more = wx.Button(self, label="+", size=(20,20))
			build_more.proto_id = bc
			wsizer.Add(txt)
			wsizer.Add(build_more)
			
			build_more.Bind(wx.EVT_LEFT_DOWN, self.on_build)
		
		has_bq = None
		prev_units = []
		for unit in store.get_building_queue(coord):
			if not has_bq:
				self.sizer.Add(wx.StaticText(self, label='build queue:'))
				has_bq = True
				
			if unit['done'] > 0:
				self.draw_build_stack(prev_units)
				prev_units = []
				
				proto = store.get_object('proto', {'proto_id':unit['proto_id'], 'user_id':user_id})
				
				img = image.getBcImage(unit['proto_id'], 20)
				if not img:
					img = image.getCarapaceImage(proto['carapace'], proto['color'], 20)
				wsizer = wx.BoxSizer(wx.HORIZONTAL)
				self.sizer.Add(wsizer)
				
				wnd = wx.StaticBitmap(self, wx.ID_ANY)
				if img:
					wnd.SetBitmap(img)
				wsizer.Add(wnd)
				
				name = proto['name']
				if not name:
					name = get_unit_name(int(proto['carapace']))
				
				race = store.get_object('race', {'user_id':user_id})
				
				build_modifier = 0
				#if proto['is_war'] == 1:
				#	build_modifier = race['modifier_build_war']
				#else:
				#	build_modifier = race['modifier_build_peace']

				total_speed = proto['build_speed'] - proto['build_speed']*build_modifier/100.0
				# if we're lucky?
				if proto['proto_id'] == 13:
					govs_count = len(store.get_governers(user_id))
					total_speed = pow(1.5, govs_count) * proto['build_speed']

				percent_done = int(unit['done']*100/total_speed)

				txt = wx.StaticText(self, -1, ' %d%% %s'%(percent_done, name))
				wsizer.Add(txt)
				if 'max_count' in proto and int(proto['max_count'])!=1:
					build_more = wx.Button(self, label="+", size=(20,20))
					build_more.proto_id = proto['proto_id']
					build_more.Bind(wx.EVT_LEFT_DOWN, self.on_build)
					wsizer.Add(build_more)
					
				continue
			
			
			if prev_units == [] or unit['proto_id'] == prev_units[0]['proto_id']:
				prev_units.append(unit)
				continue
			
			# draw prev_units
			self.draw_build_stack(prev_units)
			prev_units = [unit]
		self.draw_build_stack(prev_units)
			
		self.sizer.Layout()