Beispiel #1
0
	def select_sprite(self, s: sprite.Sprite, index: int) -> None:
		self.move_pointer(s.pos)
		self.selected_sprite = s
		self.selected_index = index
		if index >= 0 and not s.exhausted:
			# Make target sprites
			self.targets.clear()
			tt = targeter.Targeter(self.terr, self.civs)
			move_targets = tt.get_move_targets(
				s.tile,
				self.terr,
				s.move_range(),
				s.can_fly() or self.civs[self.active_civ].wood >= 1,
				s.can_fly(),
				)
			for targ in move_targets:
				t: sprite.Sprite = sprite.TargetMove()
				t.set_tile_and_pos(targ.tile, self.terr)
				self.targets.append(t)
			attack_targets = tt.get_attack_targets(
				s.tile,
				self.terr,
				s.attack_range(),
				self.active_civ,
				s.can_shoot(),
				)
			for targ in attack_targets:
				t = sprite.TargetAttack()
				t.set_tile_and_pos(targ.tile, self.terr)
				self.targets.append(t)

			# Make menu buttons
			self.menu.clear()
			y = 75
			for opt in s.menu_options(self.terr.tile(s.tile)):
				self.menu.append(sprite.Button((125, y), opt))
				y += 75