예제 #1
0
파일: robot.py 프로젝트: Ryytikki/Dinosaur
class Robot(pygame.sprite.Sprite):
		
	def __init__(self, location):
		pygame.sprite.Sprite.__init__(self)	
		self.image = load_image("Images/miner2-run/miner2-running0001.png")
		self.rect = self.image.get_rect()
		self.rect.center = location
		self.rect[2] += 15
		
		self.start_location = location
		
		self.run = []
		self.stand = []
		self.jump = []
		self.frame_ID = 0
		
		self.running = False
		self.active = False
		self.boulder = []
		self.destruction_timer = 0
		
		self.speed = 8
		self.x_direction = 0
		self.facing = -1
		
		self.y_speed = 0
		self.jumping = False
		
		self.pick_sfx = Play_Music("//sfx//robots-picking-at-rocks.ogg", -1)
		self.walk_sfx = Play_Music("//sfx//robot-walk.ogg", -1)
		self.boom_sfx = Play_Music("//sfx//boulder-explode.ogg", -1)

		self.walking = False
		self.picking = False
		
		
		self.type = "robot"
		
		self.pre_buffer()
		
	def pre_buffer(self):
		for i in range(1,13):
			self.run.append(load_image("Images/miner2-run/miner2-running" + str(10000 + i)[1:] + ".png"))
		for i in range(1,13):
			self.stand.append(load_image("Images/miner2/miner2" + str(10000 + i)[1:] + ".png"))
		for i in range(1,13):
			self.jump.append(load_image("Images/miner/miner-" + str(10000 + i)[1:] + ".png"))
		
	def update(self, map_location, map, players):
	
		if self.active == True:
					
			if self.boulder.rect.colliderect(self.rect) and self.rect[0] - self.boulder.rect[0] < 100 and self.boulder.rect[0] - self.rect[0] < 100	:
				self.walk_sfx.stop()
				self.walking = False
				if self.picking == False:
					self.pick_sfx.play()
					self.picking = True
				self.x_direction = 0
				if self.rect[0] < self.boulder.rect[0]:
					self.facing = -1
					self.image = pygame.transform.flip(self.stand[self.frame_ID], 1, 0)
				else:
					self.facing = 1
					self.image = self.stand[self.frame_ID]
					
				self.destruction_timer += 1
				self.boulder.health -= 1
				self.boulder.show_health = True
				if self.destruction_timer > 450:
					self.boulder.health = 450
					self.boulder.show_health = False
					self.boom_sfx.play_once()
					self.boulder.dead = True
					self.boulder.respawn = True
					self.active = False
					self.boulder = []
					self.destruction_timer = 0
					self.pick_sfx.stop()
					
				if self.frame_ID > 10:
					self.frame_ID = 0
			else:
				if self.walking == False:
					self.walk_sfx.play()
					self.walking = True
				self.pick_sfx.stop()
				self.picking = False
				if self.rect[0] < self.boulder.rect[0]:
					self.x_direction = 1
					self.facing = 1
					self.image = pygame.transform.flip(self.run[self.frame_ID], 1, 0)
				else:
					self.x_direction = -1
					self.facing = -1
					self.image = self.run[self.frame_ID]
					
				if self.frame_ID > 10:
					self.frame_ID = 0
					
				self.rect[0] += self.x_direction * self.speed
		else:
			if abs(self.rect[0] - self.start_location[0]) > 100:
				if self.walking == False:
					self.walk_sfx.play()
					self.walking = True
				self.pick_sfx.stop()
				self.picking = False
				if self.rect[0] < self.start_location[0]:
					self.x_direction = 1
					self.facing = 1
					self.image = pygame.transform.flip(self.run[self.frame_ID], 1, 0)
				else:
					self.x_direction = -1
					self.facing = -1
					self.image = self.run[self.frame_ID]
					
				if self.frame_ID > 10:
					self.frame_ID = 0
					
				self.rect[0] += self.x_direction * self.speed
			else:
				self.image = self.jump[self.frame_ID]
				self.walk_sfx.stop()
				if self.frame_ID > 10:
					self.frame_ID = 0
				
		if map.ground_collision(self, [0,422]) == False:
			self.y_speed += 1
			self.rect[1] += self.y_speed
		else:
			self.y_speed = 0
			
		self.frame_ID += 1
		
		test_rect = [self.rect[0] + map_location[0], self.rect[1] + map_location[1] - 832, self.rect[2], self.rect[3]]
		
		for player in players:
			if player.player_ID == player.ID:
				self.walk_sfx.locate(test_rect[0] - player.rect[0], test_rect[1] - player.rect[1])
				self.pick_sfx.locate(test_rect[0] - player.rect[0], test_rect[1] - player.rect[1])
				self.boom_sfx.locate(test_rect[0] - player.rect[0], test_rect[1] - player.rect[1])

	def test_landed(self, player, offset):
		return(False)
예제 #2
0
파일: gate.py 프로젝트: Ryytikki/Dinosaur
class Gate(pygame.sprite.Sprite):
		
	def __init__(self, location, ID):
		pygame.sprite.Sprite.__init__(self)	
		if ID != 0 and ID != 4:
			self.gate = load_image("Images\\gate.png")
			self.base = load_image("Images\\gate-portal.png")
		
			self.image = pygame.Surface((135,430), pygame.SRCALPHA, 32)
			self.image.blit(self.gate, (35,0))
			self.image.blit(self.base, (0, 390))
			
		elif ID == 0:
			self.gate = load_image("Images\\lift.png")
			self.base = load_image("Images\\lift-wall.png")
			self.gate_sfx = Play_Music("\\sfx\\crane-lifting.ogg", -1)
			self.image = pygame.Surface((319, 550), pygame.SRCALPHA, 32)
			self.image.blit(self.gate, (40,0))
			self.image.blit(self.base, (0,330))
			location[1] -= 70
		else:
			self.image = pygame.Surface((250,750), pygame.SRCALPHA, 32)
			self.image.blit(load_image("Images\\crumbly-wall.png"), (0,0))
			self.boom = []
			for i in range(1, 25):
				self.boom.append(load_image("Images\\crumble-wall\\cumble-wall-" + str(10000 + i)[1:] + ".png"))
		
		self.rect = self.image.get_rect()
		self.rect.center = location
		
		self.gate_timer = -1
		self.ID = ID
		self.activation_confirmation = 0
		self.transition_counter = 0
		self.type = "gate"
		
		self.open = False
		
		self.animating = 0
		self.frame_ID = 0
		
	def update(self, players, map_location):

		if self.activation_confirmation == 10 and (self.transition_counter > 300 or self.ID == 0):
			self.open = True
		else:
			self.open = False
			test_rect = [self.rect[0] + map_location[0], self.rect[1] + map_location[1] - 832, self.rect[2], self.rect[3]]
			for player in players:
				if player.hit_rect.colliderect(test_rect):
					if player.hit_rect[0] < test_rect[0]:
						player.rect[0] -= player.speed
					else:
						player.rect[0] += player.speed
						
		if self.ID == 0:
			for player in players:
				if player.player_ID == player.ID:
					test_rect = [self.rect[0] + map_location[0], self.rect[1] + map_location[1] - 832, self.rect[2], self.rect[3]]
					self.gate_sfx.locate(test_rect[0] - player.rect[0], test_rect[1] - player.rect[1] / 2)
						
		if self.animating == 1:
			self.open_gate()
		elif self.animating == -1:
			self.close_gate()
	
					
	def trigger(self, trigger_code):
		print trigger_code
		if trigger_code == 10:
			self.activation_confirmation = 10
			self.gate_timer = 99999
			self.animating = 1
			self.transition_counter = 0
			if self.ID == 0:
				self.gate_sfx.play_once()
		elif trigger_code > 0:
			self.activation_confirmation += trigger_code
			print self.activation_confirmation
			if self.activation_confirmation >= 10:
				self.activation_confirmation = 10
				self.gate_timer = 99999
				self.animating = 1
				self.transition_counter = 0
		else:
			self.activation_confirmation += trigger_code
			print self.activation_confirmation
			if self.activation_confirmation < 10:
				self.gate_timer = 0
				if self.activation_confirmation - trigger_code == 10 or trigger_code == -10:
					self.animating = -1
				self.transition_counter = 0
				
			elif self.activation_confirmation == 10:
				self.activation_confirmation = 10
				self.gate_timer = 99999
				self.animating = 1
				self.transition_counter = 0

				
	def open_gate(self):
		if self.ID != 0 and self.ID != 4:
			self.image = pygame.Surface((135,430), pygame.SRCALPHA, 32)
			self.image.blit(self.gate, (35, self.transition_counter))
			self.image.blit(self.base, (0, 390))
			self.transition_counter += 10
			
			if self.transition_counter > 400:
				self.animating = 0
		elif self.ID != 4:
			self.image = pygame.Surface((319, 550), pygame.SRCALPHA, 32)
			self.image.blit(self.gate, (40,0))
			self.image.blit(self.base, (0,330 - self.transition_counter))
			self.transition_counter += 3.25
			if self.transition_counter > 330:
				self.animating = 0
		else:
			self.image.fill(0)
			self.image = pygame.Surface((250, 750), pygame.SRCALPHA, 32)
			self.transition_counter = 500
			self.image.blit(self.boom[self.frame_ID], (10,0))
			self.frame_ID += 1
			if self.frame_ID > 23:
				self.animating = 0
				self.frame_ID = 0
				
	def close_gate(self):
		if self.ID != 0:
			print "Closing"
			self.image = pygame.Surface((135,430), pygame.SRCALPHA, 32)
			self.image.blit(self.gate, (35, 400 - self.transition_counter))
			self.image.blit(self.base, (0, 390))
			self.transition_counter += 10
			
			if self.transition_counter > 400:
				self.animating = 0
				
		elif self.ID != 4:
			
			self.image = pygame.Surface((319, 550), pygame.SRCALPHA, 32)
			self.image.blit(self.gate, (40,0))
			self.image.blit(self.base, (0,self.transition_counter))
			self.transition_counter += 10
			
			if self.transition_counter > 330:
				self.animating = 0	
		else:
			self.animating = 0
	def test_landed(self, player, offset):
		return(False)
예제 #3
0
파일: block.py 프로젝트: Ryytikki/Dinosaur
class Block(pygame.sprite.Sprite):
		
	def __init__(self, location, map):
		pygame.sprite.Sprite.__init__(self)		
		self.image = load_image("Images/block.png")
		self.block_image = self.image
		
		self.explode_img = []
		for i in range(1,15):
			self.explode_img.append(load_image("Images/expload/boulder-explosion-" + str(10000 + i)[1:] + ".png"))
		self.rect = self.image.get_rect()
		self.rect.center = location
		self.start_location = location
		self.respawn = False
		
		self.roll = []
		self.x_direction = 0
		
		for i in range(1, 32):
			self.roll.append(load_image("Images/roll/roll-" + str(10000 + i)[1:] + ".png"))
		
		self.loc = self.rect
		self.map = 0#map
			
		self.type = "block"
		
		self.jumping = False
		self.y_speed = 0
		self.speed = 0
		
		self.angle = 0
		
		self.active = False
		self.dead = False
		self.dead_count = 0
		self.boom_timer = 0
		
		self.health = 450.0
		self.show_health = False
		self.health_image = pygame.Surface((169, 45), pygame.SRCALPHA, 32)
		self.health_background = load_image("Images/healthbar-background.png")
		self.health_foreground = load_image("Images/healthbar-bar.png")
		
		
		self.roll_sfx = Play_Music("//sfx//boulder-rolling.ogg", -1)
		self.boom_sfx = Play_Music("//sfx//rock-crumble.ogg", -1)
		
	def update(self, player_list, map, map_location, objects, robots):
		#self.rect[1] -= map_location[2]
		if self.dead == False:
			if map[0].ground_collision(self, [0,422]) == False:
				self.y_speed += 1
				self.rect[1] += self.y_speed
			else:
				self.y_speed = 0
			moving = 0
			test_rect = [self.rect[0] + map_location[0], self.rect[1] + map_location[1] - 832, self.rect[2], self.rect[3]]
			
			active = 0
			for object in objects:
				if object.type == "block" and object.active == True:
					active += 1
					
			if active == 1 and self.active == True:
				active = 0
				
			for player in player_list:
				if player.ID == 1:
					if player.hit_rect.colliderect(test_rect):
						if player.interacting == True:
							if player.hit_rect[1] > test_rect[1] + 40 and active < 1:
								if player.animation_type != "push":
									self.roll_sfx.play()
									player.animation_type = "push"
									player.frame_ID = 0
								if player.x_direction == -1: 
									if test_rect[0] < player.hit_rect[0] - 100:
										self.speed = 10 * player.x_direction
										self.angle += 1
										self.active = True
								elif player.x_direction == 1:  
									if test_rect[0] > player.rect[0] + 100:
										self.speed = 10 * player.x_direction
										self.angle -= 1
										self.active = True
								ping = []
								for robot in robots:
									if robot.boulder == []:
										ping = robot
									elif robot.boulder == self:
										ping = []
										break;
										
								if ping != []:
									ping.boulder = self
									ping.active = True
									
						else:
							for object in objects:
								if object.type == "block":
									object.active = False
									object.roll_sfx.stop()
									
					else:
						self.speed = 0
						self.roll_sfx.stop()
				elif player.ID == 1:
					self.active = False
				if player.animation_type == "push" and active == 0 and self.active == False:
					if player.x_direction != 0:
						player.animation_type = "run"
					else:
						player.animation_type = "idle"
						
					player.frame_ID = 0
				
			if self.show_health == True:
				self.health_image.blit(self.health_background, (0,0))
				overlay = pygame.Surface((169, 45), pygame.SRCALPHA, 32)
				overlay.blit(self.health_foreground, (0,0))
				overlay.fill(0, (0, 0, ( 1- self.health / 450.0) * 169 ,45))
				print self.health / 450
				self.health_image.blit(overlay, (0,0))
				#self.image.blit(self.health_image, (0,0))

			if self.active == False:
				self.speed = 0
				
			if self.angle > 30:
				self.angle = 0
			if self.angle < 0:
				self.angle = 30
			
			self.image = self.roll[self.angle]
					
			self.rect[0] += self.speed
		else:
			self.explode(map_location, player_list)

		
	def spawner_update(self, map_location, map, players):
		if self.dead == True:
			self.rect[1] = 1950
			self.explode(map_location, players)
		elif self.rect[1] < 1950:
			self.y_speed += 1
			self.rect[1] += self.y_speed
			self.boom_timer += 1
		else:
			self.y_speed = 0
			self.dead = True
		
	def explode(self, map_location, players):
		if self.dead_count > 14:
			self.dead = False
			if self.respawn == False:
				self.rect[1] = -1000000
			else:
				self.rect.center = self.start_location
			self.image = self.block_image
			self.dead_count = 0
			self.boom_timer = 0
		elif self.dead_count == 1:
			self.show_health = False
			self.boom_sfx.play_once()
			self.image = self.explode_img[self.dead_count - 1]
			self.dead_count += 1
			test_rect = [self.rect[0] + map_location[0], self.rect[1] + map_location[1] - 832, self.rect[2], self.rect[3]]
			for player in players:
				if player.player_ID == player.ID:
					self.boom_sfx.locate(test_rect[0] - player.rect[0], test_rect[1] - player.rect[1])
		else:
			self.image = self.explode_img[self.dead_count - 1]
			self.dead_count += 1
		
	def test_landed(self, player, offset):
		return False
		## Corrected rect for floating blocks
		# collide_rect = [self.rect[0] + offset[0], self.rect[1] + offset[1], self.rect[2], self.rect[3]]
		##Check the player is within the hitbox and is colliding with the block (first check is for air, second for ground)
		# if player.rect[1] >= self.rect[1] - 100 + offset[1] and player.rect[1] < self.rect[1] - 50 + offset[1] and player.dropping == 10:
			# if (player.hit_rect.colliderect(collide_rect) or player.hit_rect.colliderect(self.rect)):
				# if player.y_speed < 0:
					# player.rect[1] = self.rect[1] - 100 + offset[1]
					# player.jumping = False
					# player.animation_type = "land"
					# player.y_speed = 0
					# player.frame_ID = 0	
				
				# return(True)
			# else:
				# return(False)
예제 #4
0
파일: water.py 프로젝트: Ryytikki/Dinosaur
class Water(pygame.sprite.Sprite):
		
	def __init__(self, location, width, ID):
		pygame.sprite.Sprite.__init__(self)	
		
		self.image = load_image("Images\\pipe.png")
		self.rect = self.image.get_rect()
		
		self.water = pygame.Surface((1350 * width, 450), pygame.SRCALPHA, 32)
		water_image =  load_image("Images\\maps\\water\\WATER-0001.png")
		self.water_rect = self.water.get_rect()
		self.rect.center = location
		self.water_rect[0] = self.rect[0] - 500
		
		self.plank = load_image("Images\\plank.png")
		self.plank_rect = self.plank.get_rect()
		
		for i in range(0, width):
			self.water.blit(water_image, (1350 * i, 0))
			
		self.type = "water"
		self.ID = ID
			
		self.on = False
		self.water_height = 0
		
		self.frame_ID = 17
		self.water_ID = 0
		
		self.start = []
		self.flow = []
		self.stop = []
		self.pipe = load_image("Images\\pipe.png")
		self.water_animation = []
		self.blit_rect = []
		
		self.water_pouring = Play_Music("//sfx//water-flow.ogg", -1)
		
		self.prebuffer()
		
	def update(self, players, map_location):

		if self.on and self.water_height < 90:
			self.water_height += 2
		elif self.on == False and self.water_height > 0:
			self.water_height -= 2
		self.water_rect[1] = self.rect[1] + 50 - self.water_height
		
		if self.on and self.frame_ID < 16:
			self.image = self.start[self.frame_ID]
			
		if self.on == False and self.frame_ID < 16:
			self.image = self.stop[self.frame_ID]
			
		if self.on and self.frame_ID >= 16:
			self.image = self.flow[self.frame_ID - 16]
			
			if self.frame_ID >= 31:
				self.frame_ID = 16
				
		if self.on == False and self.frame_ID >= 16:
			self.image = self.pipe
			
		self.water = self.water_animation[int(self.water_ID)]
		
		if self.water_ID >= 22:
			self.water_ID = 0
		
		self.frame_ID += 1
		self.water_ID += 0.5
		
		self.blit_rect = [self.rect[0], 490 - self.water_height + self.rect[1], 321, 300]
		self.plank_rect = [self.rect[0] - 320, self.rect[1] + 490 - self.water_height, self.plank_rect[2], self.plank_rect[3]]
		
		test_rect = [self.plank_rect[0] + map_location[0] + self.rect[3] / 2, self.plank_rect[1] + map_location[1] - 832, self.plank_rect[2], self.plank_rect[3]]
		for player in players:
			if player.player_ID == player.ID:
				self.water_pouring.locate(test_rect[0] - player.rect[0], test_rect[1] - player.rect[1])
		
	def trigger(self, trigger_code):
		self.on = not self.on
		if self.frame_ID >= 16:
			self.frame_ID = 0
		
		if self.on:
			self.water_pouring.play()
		else:
			self.water_pouring.stop()
		
	def prebuffer(self):
		for i in range(1, 17):
			self.start.append(load_image("Images\\begin-flow\\start-flow-" + str(10000 + i)[1:] + ".png"))
		
		for i in range(1, 17):
			self.flow.append(load_image("Images\\flowing\\flowing-" + str(10000 + i)[1:] + ".png"))
		
		for i in range(1, 17):
			self.stop.append(load_image("Images\\stopping\\stopping-" + str(10000 + i)[1:] + ".png"))
		
		for i in range(1, 24):
			self.water_animation.append(load_image("Images\\Maps\\water\\water-" + str(10000 + i)[1:] + ".png"))
		
	def test_landed(self, player, offset):
		# Corrected rect for floating blocks
		collide_rect = [self.plank_rect[0] + offset[0], self.plank_rect[1] + offset[1] + 30, self.plank_rect[2], self.plank_rect[3] + 500]
		# Check the player is within the hitbox and is colliding with the block (first check is for air, second for ground)
		if (player.hit_rect.colliderect(collide_rect)):
			if player.y_speed < 0:
				player.rect[1] = self.rect[1] + 490 - self.water_height + offset[1] - 150 + 30
				player.jumping = False
				player.animation_type = "land"
				player.y_speed = 0
				player.frame_ID = 0	
				
			if player.rect[1] > self.rect[1] + 490 - self.water_height + offset[1] - 150 + 30 and player.jumping == False:
				player.rect[1] = self.rect[1] + 490 - self.water_height + offset[1] - 150 + 30
				
			if self.on and self.water_height > 0 and self.water_height < 90:
				player.rect[1] -= 2
			
			if not self.on and self.water_height != 0:
				player.rect[1] += 2
			
			return(True)
		else:
			return(False)
예제 #5
0
파일: button.py 프로젝트: Ryytikki/Dinosaur
class Button(pygame.sprite.Sprite):
		
	def __init__(self, location, type, gate, trigger, gates):
		pygame.sprite.Sprite.__init__(self)	

		for item in gates:
			if item.ID == gate:
				self.gate = item
				break;
		
		self.trigger_ID = trigger
		self.activated = False
		self.activation_delay = 0
		
		self.type = "button"
		self.float = False
		self.float_hit = 0
		
		self.button_type = type
		
		self.plugged = []
		self.unplugged = []
		self.frame_ID = 0
		self.img_type = "unplugged"
		
		self.prebuffer()
		
		
		if type == 2:
			self.geyser = Play_Music("//sfx//geyser-flow.ogg", -1)
			self.geyser.play()
			self.plugged_sfx = Play_Music("//sfx//plugged-geyser.ogg", -1)
		else:
			self.switch_sfx = Play_Music("//sfx//switch.ogg", -1)
		
		if type != 2:
			self.image = load_image("Images\\button" + str(type) + ".png")

		else:
			self.image = self.unplugged[0]
		
		self.rect = self.image.get_rect()
		self.rect.center = location
		
	def update(self, players, objects, map_location):
		test_rect = [self.rect[0] + map_location[0], self.rect[1] + map_location[1] - 832, self.rect[2], self.rect[3]]
		# Standard wall button
		if self.button_type == 0:
			for player in players:
				if player.rect.colliderect(test_rect):
					if player.interacting == True:
						self.button_pressed()
		# Floor button					
		else:
			hit = False
			for player in players:
				if player.hit_rect.colliderect(test_rect) and player.rect[0] - test_rect[0] > -150 and player.rect[0] - test_rect[0] < 50 and self.button_type != 2:
					hit = True
					if self.activated == False:
						self.button_pressed()
			
			for object in objects:
				if object.type == "block":
					if object.rect.colliderect(self.rect) and object.rect[0] - self.rect[0] > -150 and object.rect[0] - self.rect[0] < 50:
						hit = True
						if self.activated == False:
							if self.button_type != 2:
								self.switch_sfx.play_once()
							else:
								self.geyser.stop()
								self.plugged_sfx.play()
							self.button_pressed()

			if hit == False and self.activated == True:
				self.float_hit += 1
				if self.float_hit > 20:
					if self.button_type == 2:
						self.plugged_sfx.stop()
						self.geyser.play()
					self.button_pressed()
					self.float_hit = 0
					self.float = False
		self.activation_delay += 1
		
		if self.button_type == 2:
			self.run_animation()
			for player in players:
				if player.player_ID == player.ID:
					self.geyser.locate(test_rect[0] - player.rect[0], test_rect[1] - player.rect[1])
					self.plugged_sfx.locate(test_rect[0] - player.rect[0], test_rect[1] - player.rect[1])
		
			
	def button_pressed(self):
		if self.activated == False and self.activation_delay > 10:
			self.gate.trigger(self.trigger_ID)
			self.activation_delay = 0
			if self.button_type != 2:
				self.switch_sfx.play_once()
				self.image = load_image("Images\\button" + str(self.button_type) + "-pressed.png")
			self.frame_ID = 0
			self.activated = True
		elif self.activated == True and self.activation_delay > 10:
			self.gate.trigger(self.trigger_ID * -1)
			if self.button_type != 2:
				#self.switch_sfx.play_once()
				self.image = load_image("Images\\button" + str(self.button_type) + ".png")
			self.frame_ID = 0
			self.activated = False
			self.activation_delay = 0
			
	def run_animation(self):
		if self.activated == True:
			self.image = self.plugged[self.frame_ID]
			self.frame_ID += 1
			if self.frame_ID > 7:
				self.frame_ID = 0
			
		else:
			self.float = False
			self.image = self.unplugged[self.frame_ID]
			self.frame_ID += 1
			if self.frame_ID > 9:
				self.frame_ID = 0
				
	def prebuffer(self):
		for i in range(1, 9):
			self.plugged.append(load_image("Images//plugged//plugged-" + str(10000 + i)[1:] + ".png"))
		for i in range(1, 11):
			self.unplugged.append(load_image("Images//unplugged//geyser-" + str(10000 + i)[1:] + ".png"))
			
	def test_landed(self, player, offset):
		return(False)