Created teleporter map generation and implemented it in level 1.
This commit is contained in:
@@ -39,6 +39,7 @@ import lever
|
||||
import trigger
|
||||
import worldobject
|
||||
|
||||
import logic.teleportermap
|
||||
import logic.rollingstone
|
||||
import logic.colourboxes
|
||||
|
||||
@@ -82,64 +83,61 @@ class Level1(level.Level):
|
||||
|
||||
### Task 1: Teleporters
|
||||
|
||||
task5_size = 5, 8 # y, x -- Note, inverted.
|
||||
task5_size = 8, 5
|
||||
task5_pos = (64 * 12, 48 * 19)
|
||||
|
||||
task5_nturns = random.randint(2, 4) * 2 - 1
|
||||
tmap = logic.teleportermap.generate_teleporter_map3(*task5_size)
|
||||
|
||||
playfield, nsteps, directions = (
|
||||
logic.rollingstone.generate_simple_unsolved_solvable_extra(
|
||||
task5_size[0], task5_size[1], task5_nturns,
|
||||
task5_size[0]*task5_size[1]))
|
||||
|
||||
for x in range(task5_size[1]):
|
||||
for y in range(task5_size[0]):
|
||||
for x in range(task5_size[0]):
|
||||
for y in range(task5_size[1]):
|
||||
# if not (x, y) in tmap:
|
||||
# continue
|
||||
self.add_tile(task5_pos[0] - 64 * (x - 1),
|
||||
task5_pos[1] - 48 * y,
|
||||
'indoor%d' % random.randint(1, 6), blocking=False)
|
||||
|
||||
|
||||
for i, j in playfield:
|
||||
for x, y in tmap:
|
||||
self.objects.append(
|
||||
trigger.Trigger(self,
|
||||
task5_pos[0] - 64 * (j - 1),
|
||||
task5_pos[1] - 48 * i,
|
||||
task5_pos[0] - 64 * (x - 1),
|
||||
task5_pos[1] - 48 * y,
|
||||
[lambda x: self.player.set_pos(
|
||||
task5_pos[0] + 2 * 64,
|
||||
(task5_pos[1]
|
||||
- random.randint(0, task5_size[0] - 1) * 48))],
|
||||
- random.randint(0, task5_size[1] - 1) * 48))],
|
||||
self.imgs['hole'],
|
||||
[self.player],
|
||||
visible=False))
|
||||
visible=False,
|
||||
no_stop=True))
|
||||
|
||||
for i in range(task5_size[1] + 1):
|
||||
for i in range(task5_size[0] + 1):
|
||||
self.add_tile(task5_pos[0] - 64 * i,
|
||||
task5_pos[1] + 48,
|
||||
'moat_horizontal')
|
||||
self.add_tile(task5_pos[0] - 64 * i,
|
||||
task5_pos[1] - task5_size[0] * 48,
|
||||
task5_pos[1] - task5_size[1] * 48,
|
||||
'moat_horizontal')
|
||||
self.add_tile(task5_pos[0] + 64,
|
||||
task5_pos[1] + 48,
|
||||
'moat_end_horizontal_flip')
|
||||
# self.add_tile(task5_pos[0] + 64,
|
||||
# task5_pos[1] - task5_size[0] * 48,
|
||||
# task5_pos[1] - task5_size[1] * 48,
|
||||
# 'moat_end_horizontal_flip')
|
||||
self.add_tile(task5_pos[0] - 64 * (task5_size[1] + 1),
|
||||
self.add_tile(task5_pos[0] - 64 * (task5_size[0] + 1),
|
||||
task5_pos[1] + 48,
|
||||
'moat_corner_south')
|
||||
self.add_tile(task5_pos[0] - 64 * (task5_size[1] + 1),
|
||||
task5_pos[1] - task5_size[0] * 48,
|
||||
self.add_tile(task5_pos[0] - 64 * (task5_size[0] + 1),
|
||||
task5_pos[1] - task5_size[1] * 48,
|
||||
'moat_corner_north')
|
||||
for i in range(task5_size[0]):
|
||||
self.add_tile(task5_pos[0] - 64 * (task5_size[1] + 1),
|
||||
self.add_tile(task5_pos[0] - 64 * (task5_size[0] + 1),
|
||||
task5_pos[1] - 48 * i,
|
||||
'moat_vertical')
|
||||
|
||||
self.objects.append(
|
||||
lever.Lever(self,
|
||||
task5_pos[0] - 64 * (task5_size[1]),
|
||||
task5_pos[1] - (task5_size[0] / 2) * 48,
|
||||
task5_pos[0] - 64 * (task5_size[0]),
|
||||
task5_pos[1] - (task5_size[1] / 2) * 48,
|
||||
[lambda *x: self.complete_task(1)]))
|
||||
|
||||
### Task 2: Rolling stone
|
||||
|
||||
Reference in New Issue
Block a user