Implement tile shuffle

This commit is contained in:
CaitSith2 2020-12-22 01:05:48 -08:00
parent d91f1e6c4d
commit d090a02d81
41 changed files with 3348 additions and 2 deletions

View File

@ -205,7 +205,7 @@ def main(args, seed=None):
use_enemizer = (world.boss_shuffle[player] != 'none' or world.enemy_shuffle[player]
or world.enemy_health[player] != 'default' or world.enemy_damage[player] != 'default'
or world.shufflepots[player] or world.bush_shuffle[player]
or world.killable_thieves[player] or world.tile_shuffle[player])
or world.killable_thieves[player])
rom = LocalRom(args.rom)

57
Rom.py
View File

@ -325,7 +325,7 @@ def patch_enemizer(world, player: int, rom: LocalRom, enemizercli):
'SwordGraphics': "sword_gfx/normal.gfx",
'BeeMizer': False,
'BeesLevel': 0,
'RandomizeTileTrapPattern': world.tile_shuffle[player],
'RandomizeTileTrapPattern': False,
'RandomizeTileTrapFloorTile': False,
'AllowKillableThief': world.killable_thieves[player],
'RandomizeSpriteOnHit': False,
@ -416,6 +416,54 @@ def patch_enemizer(world, player: int, rom: LocalRom, enemizercli):
except OSError:
pass
tile_list_lock = threading.Lock()
_tile_collection_table = []
def _populate_tile_sets():
with tile_list_lock:
if not _tile_collection_table:
def load_tileset_from_file(file):
tileset = TileSet(file)
_tile_collection_table.append(tileset)
with concurrent.futures.ThreadPoolExecutor() as pool:
for dir in [local_path('data', 'tiles')]:
for file in os.listdir(dir):
pool.submit(load_tileset_from_file, os.path.join(dir, file))
class TileSet:
def __init__(self, filename):
with open(filename, 'rt', encoding='utf-8-sig') as file:
jsondata = json.load(file)
self.speed = jsondata['Speed']
self.tiles = jsondata['Items']
self.name = os.path.basename(os.path.splitext(filename)[0])
def __hash__(self):
return hash(self.name)
def get_bytes(self):
data = []
for tile in self.tiles:
data.append((tile['x'] + 3) * 16)
while len(data) < 22:
data.append(0)
for tile in self.tiles:
data.append((tile['y'] + 4) * 16)
return data
def get_speed(self):
return self.speed
def get_len(self):
return len(self.tiles)
@staticmethod
def get_random_tile_set(localrandom=random):
_populate_tile_sets()
tile_sets = list(set(_tile_collection_table))
tile_sets.sort(key=lambda x: x.name)
return localrandom.choice(tile_sets)
sprite_list_lock = threading.Lock()
_sprite_table = {}
@ -1456,6 +1504,13 @@ def patch_rom(world, rom, player, team, enemized):
rom.write_byte(0xFED31, 0x2A) # preopen bombable exit
rom.write_byte(0xFEE41, 0x2A) # preopen bombable exit
if world.tile_shuffle[player]:
tile_set = TileSet.get_random_tile_set(world.rom_seeds[player])
rom.write_byte(0x4BA21, tile_set.get_speed())
rom.write_byte(0x4BA1D, tile_set.get_len())
rom.write_bytes(0x4BA2A, tile_set.get_bytes())
write_strings(rom, world, player, team)
rom.write_byte(0x18637C, 1 if world.remote_items[player] else 0)

69
data/tiles/JK.json Normal file
View File

@ -0,0 +1,69 @@
{
"Speed": 224,
"Items": [
{
"x": 1,
"y": 5
},
{
"x": 3,
"y": 4
},
{
"x": 5,
"y": 3
},
{
"x": 7,
"y": 3
},
{
"x": 3,
"y": 2
},
{
"x": 7,
"y": 5
},
{
"x": 6,
"y": 4
},
{
"x": 2,
"y": 6
},
{
"x": 5,
"y": 6
},
{
"x": 5,
"y": 5
},
{
"x": 8,
"y": 2
},
{
"x": 3,
"y": 5
},
{
"x": 8,
"y": 6
},
{
"x": 5,
"y": 2
},
{
"x": 3,
"y": 3
},
{
"x": 5,
"y": 4
}
]
}

81
data/tiles/LTTP.json Normal file
View File

@ -0,0 +1,81 @@
{
"Speed": 224,
"Items": [
{
"x": 3,
"y": 4
},
{
"x": 2,
"y": 3
},
{
"x": 6,
"y": 2
},
{
"x": 6,
"y": 4
},
{
"x": 2,
"y": 2
},
{
"x": 5,
"y": 2
},
{
"x": 6,
"y": 3
},
{
"x": 2,
"y": 4
},
{
"x": 7,
"y": 2
},
{
"x": 3,
"y": 6
},
{
"x": 4,
"y": 8
},
{
"x": 8,
"y": 7
},
{
"x": 7,
"y": 6
},
{
"x": 7,
"y": 8
},
{
"x": 5,
"y": 6
},
{
"x": 7,
"y": 7
},
{
"x": 4,
"y": 6
},
{
"x": 4,
"y": 7
},
{
"x": 8,
"y": 6
}
]
}

85
data/tiles/NO.json Normal file
View File

@ -0,0 +1,85 @@
{
"Speed": 224,
"Items": [
{
"x": 1,
"y": 5
},
{
"x": 4,
"y": 4
},
{
"x": 3,
"y": 4
},
{
"x": 6,
"y": 2
},
{
"x": 8,
"y": 4
},
{
"x": 1,
"y": 2
},
{
"x": 8,
"y": 5
},
{
"x": 7,
"y": 5
},
{
"x": 1,
"y": 3
},
{
"x": 6,
"y": 5
},
{
"x": 6,
"y": 4
},
{
"x": 1,
"y": 4
},
{
"x": 4,
"y": 5
},
{
"x": 4,
"y": 2
},
{
"x": 2,
"y": 3
},
{
"x": 7,
"y": 2
},
{
"x": 8,
"y": 2
},
{
"x": 8,
"y": 3
},
{
"x": 4,
"y": 3
},
{
"x": 6,
"y": 3
}
]
}

85
data/tiles/TILE.json Normal file
View File

@ -0,0 +1,85 @@
{
"Speed": 224,
"Items": [
{
"x": 2,
"y": 2
},
{
"x": 5,
"y": 4
},
{
"x": 3,
"y": 2
},
{
"x": 2,
"y": 4
},
{
"x": 5,
"y": 2
},
{
"x": 2,
"y": 3
},
{
"x": 1,
"y": 2
},
{
"x": 5,
"y": 3
},
{
"x": 3,
"y": 6
},
{
"x": 6,
"y": 6
},
{
"x": 7,
"y": 8
},
{
"x": 8,
"y": 6
},
{
"x": 6,
"y": 7
},
{
"x": 3,
"y": 8
},
{
"x": 4,
"y": 8
},
{
"x": 3,
"y": 7
},
{
"x": 6,
"y": 8
},
{
"x": 7,
"y": 6
},
{
"x": 7,
"y": 7
},
{
"x": 8,
"y": 8
}
]
}

93
data/tiles/YMCA.json Normal file
View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 1,
"y": 2
},
{
"x": 2,
"y": 3
},
{
"x": 5,
"y": 2
},
{
"x": 7,
"y": 2
},
{
"x": 6,
"y": 3
},
{
"x": 7,
"y": 4
},
{
"x": 2,
"y": 4
},
{
"x": 5,
"y": 4
},
{
"x": 6,
"y": 2
},
{
"x": 3,
"y": 2
},
{
"x": 5,
"y": 3
},
{
"x": 7,
"y": 3
},
{
"x": 7,
"y": 6
},
{
"x": 4,
"y": 8
},
{
"x": 2,
"y": 7
},
{
"x": 6,
"y": 7
},
{
"x": 4,
"y": 6
},
{
"x": 8,
"y": 8
},
{
"x": 8,
"y": 7
},
{
"x": 3,
"y": 8
},
{
"x": 3,
"y": 6
},
{
"x": 6,
"y": 8
}
]
}

93
data/tiles/arrghus.json Normal file
View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 4,
"y": 1
},
{
"x": 6,
"y": 2
},
{
"x": 2,
"y": 3
},
{
"x": 4,
"y": 3
},
{
"x": 3,
"y": 4
},
{
"x": 4,
"y": 5
},
{
"x": 5,
"y": 6
},
{
"x": 3,
"y": 7
},
{
"x": 1,
"y": 4
},
{
"x": 2,
"y": 5
},
{
"x": 5,
"y": 1
},
{
"x": 6,
"y": 3
},
{
"x": 2,
"y": 2
},
{
"x": 7,
"y": 4
},
{
"x": 5,
"y": 4
},
{
"x": 4,
"y": 4
},
{
"x": 6,
"y": 5
},
{
"x": 3,
"y": 6
},
{
"x": 5,
"y": 7
},
{
"x": 3,
"y": 1
},
{
"x": 3,
"y": 5
},
{
"x": 5,
"y": 5
}
]
}

73
data/tiles/bomb.json Normal file
View File

@ -0,0 +1,73 @@
{
"Speed": 224,
"Items": [
{
"x": 3,
"y": 3
},
{
"x": 5,
"y": 7
},
{
"x": 6,
"y": 4
},
{
"x": 2,
"y": 6
},
{
"x": 5,
"y": 3
},
{
"x": 3,
"y": 7
},
{
"x": 6,
"y": 6
},
{
"x": 2,
"y": 4
},
{
"x": 7,
"y": 2
},
{
"x": 2,
"y": 5
},
{
"x": 4,
"y": 7
},
{
"x": 5,
"y": 1
},
{
"x": 4,
"y": 2
},
{
"x": 6,
"y": 5
},
{
"x": 6,
"y": 1
},
{
"x": 4,
"y": 3
},
{
"x": 8,
"y": 2
}
]
}

93
data/tiles/boot.json Normal file
View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 6,
"y": 7
},
{
"x": 8,
"y": 6
},
{
"x": 5,
"y": 5
},
{
"x": 5,
"y": 3
},
{
"x": 8,
"y": 2
},
{
"x": 3,
"y": 6
},
{
"x": 4,
"y": 8
},
{
"x": 7,
"y": 8
},
{
"x": 8,
"y": 4
},
{
"x": 6,
"y": 2
},
{
"x": 2,
"y": 7
},
{
"x": 3,
"y": 8
},
{
"x": 4,
"y": 5
},
{
"x": 5,
"y": 4
},
{
"x": 7,
"y": 2
},
{
"x": 8,
"y": 7
},
{
"x": 8,
"y": 8
},
{
"x": 8,
"y": 3
},
{
"x": 5,
"y": 8
},
{
"x": 2,
"y": 8
},
{
"x": 5,
"y": 2
},
{
"x": 8,
"y": 5
}
]
}

View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 2,
"y": 2
},
{
"x": 7,
"y": 6
},
{
"x": 7,
"y": 2
},
{
"x": 2,
"y": 6
},
{
"x": 3,
"y": 3
},
{
"x": 6,
"y": 7
},
{
"x": 6,
"y": 3
},
{
"x": 3,
"y": 7
},
{
"x": 2,
"y": 3
},
{
"x": 5,
"y": 6
},
{
"x": 7,
"y": 3
},
{
"x": 4,
"y": 6
},
{
"x": 2,
"y": 5
},
{
"x": 6,
"y": 6
},
{
"x": 7,
"y": 5
},
{
"x": 3,
"y": 6
},
{
"x": 4,
"y": 5
},
{
"x": 5,
"y": 7
},
{
"x": 5,
"y": 5
},
{
"x": 4,
"y": 7
},
{
"x": 3,
"y": 2
},
{
"x": 6,
"y": 2
}
]
}

View File

@ -0,0 +1,85 @@
{
"Speed": 224,
"Items": [
{
"x": 1,
"y": 2
},
{
"x": 3,
"y": 3
},
{
"x": 4,
"y": 1
},
{
"x": 3,
"y": 5
},
{
"x": 5,
"y": 8
},
{
"x": 6,
"y": 7
},
{
"x": 5,
"y": 2
},
{
"x": 7,
"y": 2
},
{
"x": 1,
"y": 3
},
{
"x": 2,
"y": 7
},
{
"x": 5,
"y": 5
},
{
"x": 5,
"y": 3
},
{
"x": 3,
"y": 2
},
{
"x": 4,
"y": 3
},
{
"x": 7,
"y": 3
},
{
"x": 2,
"y": 3
},
{
"x": 4,
"y": 2
},
{
"x": 3,
"y": 8
},
{
"x": 4,
"y": 8
},
{
"x": 6,
"y": 3
}
]
}

View File

@ -0,0 +1,77 @@
{
"Speed": 224,
"Items": [
{
"x": 3,
"y": 7
},
{
"x": 4,
"y": 5
},
{
"x": 5,
"y": 4
},
{
"x": 5,
"y": 6
},
{
"x": 3,
"y": 3
},
{
"x": 2,
"y": 2
},
{
"x": 3,
"y": 2
},
{
"x": 7,
"y": 3
},
{
"x": 6,
"y": 7
},
{
"x": 4,
"y": 6
},
{
"x": 6,
"y": 3
},
{
"x": 7,
"y": 2
},
{
"x": 2,
"y": 3
},
{
"x": 4,
"y": 4
},
{
"x": 3,
"y": 6
},
{
"x": 6,
"y": 2
},
{
"x": 6,
"y": 6
},
{
"x": 5,
"y": 5
}
]
}

View File

@ -0,0 +1,89 @@
{
"Speed": 224,
"Items": [
{
"x": 6,
"y": 2
},
{
"x": 5,
"y": 1
},
{
"x": 4,
"y": 1
},
{
"x": 3,
"y": 1
},
{
"x": 2,
"y": 2
},
{
"x": 2,
"y": 6
},
{
"x": 3,
"y": 7
},
{
"x": 4,
"y": 7
},
{
"x": 5,
"y": 7
},
{
"x": 6,
"y": 6
},
{
"x": 2,
"y": 3
},
{
"x": 6,
"y": 5
},
{
"x": 3,
"y": 4
},
{
"x": 5,
"y": 4
},
{
"x": 4,
"y": 4
},
{
"x": 4,
"y": 0
},
{
"x": 4,
"y": 2
},
{
"x": 4,
"y": 3
},
{
"x": 4,
"y": 5
},
{
"x": 4,
"y": 6
},
{
"x": 4,
"y": 8
}
]
}

View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 2,
"y": 1
},
{
"x": 6,
"y": 3
},
{
"x": 6,
"y": 5
},
{
"x": 4,
"y": 6
},
{
"x": 2,
"y": 2
},
{
"x": 6,
"y": 6
},
{
"x": 2,
"y": 3
},
{
"x": 3,
"y": 5
},
{
"x": 3,
"y": 2
},
{
"x": 3,
"y": 3
},
{
"x": 6,
"y": 2
},
{
"x": 5,
"y": 5
},
{
"x": 1,
"y": 2
},
{
"x": 3,
"y": 6
},
{
"x": 7,
"y": 5
},
{
"x": 7,
"y": 1
},
{
"x": 4,
"y": 5
},
{
"x": 8,
"y": 2
},
{
"x": 5,
"y": 6
},
{
"x": 2,
"y": 5
},
{
"x": 7,
"y": 3
},
{
"x": 7,
"y": 2
}
]
}

View File

@ -0,0 +1,77 @@
{
"Speed": 224,
"Items": [
{
"x": 3,
"y": 1
},
{
"x": 5,
"y": 2
},
{
"x": 4,
"y": 7
},
{
"x": 2,
"y": 5
},
{
"x": 7,
"y": 1
},
{
"x": 7,
"y": 5
},
{
"x": 8,
"y": 4
},
{
"x": 1,
"y": 2
},
{
"x": 2,
"y": 1
},
{
"x": 1,
"y": 4
},
{
"x": 5,
"y": 7
},
{
"x": 6,
"y": 1
},
{
"x": 6,
"y": 6
},
{
"x": 4,
"y": 2
},
{
"x": 8,
"y": 3
},
{
"x": 1,
"y": 3
},
{
"x": 3,
"y": 6
},
{
"x": 8,
"y": 2
}
]
}

69
data/tiles/heart.json Normal file
View File

@ -0,0 +1,69 @@
{
"Speed": 224,
"Items": [
{
"x": 8,
"y": 3
},
{
"x": 2,
"y": 3
},
{
"x": 5,
"y": 7
},
{
"x": 2,
"y": 4
},
{
"x": 8,
"y": 4
},
{
"x": 4,
"y": 6
},
{
"x": 6,
"y": 6
},
{
"x": 8,
"y": 2
},
{
"x": 2,
"y": 2
},
{
"x": 5,
"y": 2
},
{
"x": 7,
"y": 1
},
{
"x": 3,
"y": 1
},
{
"x": 3,
"y": 5
},
{
"x": 6,
"y": 1
},
{
"x": 7,
"y": 5
},
{
"x": 4,
"y": 1
}
]
}

85
data/tiles/javalogo.json Normal file
View File

@ -0,0 +1,85 @@
{
"Speed": 224,
"Items": [
{
"x": 5,
"y": 8
},
{
"x": 4,
"y": 8
},
{
"x": 3,
"y": 8
},
{
"x": 2,
"y": 8
},
{
"x": 1,
"y": 7
},
{
"x": 5,
"y": 6
},
{
"x": 4,
"y": 6
},
{
"x": 3,
"y": 6
},
{
"x": 2,
"y": 6
},
{
"x": 1,
"y": 5
},
{
"x": 7,
"y": 7
},
{
"x": 8,
"y": 6
},
{
"x": 7,
"y": 5
},
{
"x": 3,
"y": 4
},
{
"x": 3,
"y": 3
},
{
"x": 2,
"y": 2
},
{
"x": 3,
"y": 1
},
{
"x": 5,
"y": 4
},
{
"x": 5,
"y": 3
},
{
"x": 6,
"y": 2
}
]
}

93
data/tiles/kitty.json Normal file
View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 3,
"y": 1
},
{
"x": 6,
"y": 4
},
{
"x": 7,
"y": 6
},
{
"x": 8,
"y": 3
},
{
"x": 1,
"y": 4
},
{
"x": 3,
"y": 7
},
{
"x": 3,
"y": 4
},
{
"x": 2,
"y": 2
},
{
"x": 5,
"y": 2
},
{
"x": 6,
"y": 1
},
{
"x": 6,
"y": 5
},
{
"x": 6,
"y": 7
},
{
"x": 2,
"y": 6
},
{
"x": 7,
"y": 2
},
{
"x": 8,
"y": 5
},
{
"x": 1,
"y": 3
},
{
"x": 1,
"y": 5
},
{
"x": 4,
"y": 2
},
{
"x": 3,
"y": 5
},
{
"x": 4,
"y": 6
},
{
"x": 8,
"y": 4
},
{
"x": 5,
"y": 6
}
]
}

View File

@ -0,0 +1,89 @@
{
"Speed": 224,
"Items": [
{
"x": 3,
"y": 7
},
{
"x": 4,
"y": 7
},
{
"x": 5,
"y": 7
},
{
"x": 3,
"y": 4
},
{
"x": 4,
"y": 4
},
{
"x": 5,
"y": 4
},
{
"x": 3,
"y": 1
},
{
"x": 4,
"y": 1
},
{
"x": 5,
"y": 1
},
{
"x": 2,
"y": 2
},
{
"x": 6,
"y": 6
},
{
"x": 6,
"y": 2
},
{
"x": 2,
"y": 6
},
{
"x": 1,
"y": 3
},
{
"x": 7,
"y": 5
},
{
"x": 7,
"y": 3
},
{
"x": 1,
"y": 5
},
{
"x": 1,
"y": 4
},
{
"x": 6,
"y": 5
},
{
"x": 7,
"y": 4
},
{
"x": 2,
"y": 5
}
]
}

93
data/tiles/metroid.json Normal file
View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 2,
"y": 7
},
{
"x": 7,
"y": 7
},
{
"x": 1,
"y": 3
},
{
"x": 3,
"y": 1
},
{
"x": 8,
"y": 3
},
{
"x": 1,
"y": 6
},
{
"x": 4,
"y": 5
},
{
"x": 5,
"y": 3
},
{
"x": 1,
"y": 4
},
{
"x": 6,
"y": 1
},
{
"x": 6,
"y": 4
},
{
"x": 8,
"y": 6
},
{
"x": 3,
"y": 4
},
{
"x": 7,
"y": 5
},
{
"x": 4,
"y": 1
},
{
"x": 5,
"y": 5
},
{
"x": 2,
"y": 2
},
{
"x": 2,
"y": 5
},
{
"x": 7,
"y": 2
},
{
"x": 5,
"y": 1
},
{
"x": 4,
"y": 3
},
{
"x": 8,
"y": 4
}
]
}

View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 5,
"y": 1
},
{
"x": 6,
"y": 0
},
{
"x": 7,
"y": 2
},
{
"x": 5,
"y": 4
},
{
"x": 4,
"y": 4
},
{
"x": 4,
"y": 1
},
{
"x": 3,
"y": 5
},
{
"x": 5,
"y": 6
},
{
"x": 3,
"y": 2
},
{
"x": 6,
"y": 6
},
{
"x": 7,
"y": 5
},
{
"x": 6,
"y": 1
},
{
"x": 4,
"y": 8
},
{
"x": 3,
"y": 3
},
{
"x": 5,
"y": 7
},
{
"x": 3,
"y": 8
},
{
"x": 2,
"y": 7
},
{
"x": 6,
"y": 4
},
{
"x": 4,
"y": 0
},
{
"x": 3,
"y": 6
},
{
"x": 7,
"y": 3
},
{
"x": 4,
"y": 6
}
]
}

93
data/tiles/moldorm.json Normal file
View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 1,
"y": 3
},
{
"x": 2,
"y": 5
},
{
"x": 3,
"y": 6
},
{
"x": 5,
"y": 5
},
{
"x": 7,
"y": 5
},
{
"x": 7,
"y": 2
},
{
"x": 5,
"y": 3
},
{
"x": 3,
"y": 2
},
{
"x": 2,
"y": 4
},
{
"x": 1,
"y": 5
},
{
"x": 5,
"y": 4
},
{
"x": 6,
"y": 2
},
{
"x": 7,
"y": 4
},
{
"x": 8,
"y": 1
},
{
"x": 8,
"y": 4
},
{
"x": 4,
"y": 2
},
{
"x": 9,
"y": 2
},
{
"x": 2,
"y": 3
},
{
"x": 4,
"y": 6
},
{
"x": 9,
"y": 3
},
{
"x": 7,
"y": 3
},
{
"x": 6,
"y": 6
}
]
}

View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 7,
"y": 3
},
{
"x": 7,
"y": 4
},
{
"x": 3,
"y": 3
},
{
"x": 3,
"y": 4
},
{
"x": 5,
"y": 5
},
{
"x": 5,
"y": 6
},
{
"x": 5,
"y": 7
},
{
"x": 4,
"y": 6
},
{
"x": 4,
"y": 7
},
{
"x": 6,
"y": 7
},
{
"x": 6,
"y": 6
},
{
"x": 8,
"y": 6
},
{
"x": 8,
"y": 7
},
{
"x": 8,
"y": 8
},
{
"x": 2,
"y": 8
},
{
"x": 2,
"y": 7
},
{
"x": 2,
"y": 6
},
{
"x": 2,
"y": 1
},
{
"x": 3,
"y": 1
},
{
"x": 7,
"y": 1
},
{
"x": 8,
"y": 1
},
{
"x": 5,
"y": 8
}
]
}

View File

@ -0,0 +1,77 @@
{
"Speed": 224,
"Items": [
{
"x": 2,
"y": 1
},
{
"x": 3,
"y": 1
},
{
"x": 6,
"y": 2
},
{
"x": 7,
"y": 2
},
{
"x": 6,
"y": 3
},
{
"x": 3,
"y": 2
},
{
"x": 3,
"y": 3
},
{
"x": 3,
"y": 5
},
{
"x": 4,
"y": 5
},
{
"x": 5,
"y": 5
},
{
"x": 2,
"y": 6
},
{
"x": 2,
"y": 7
},
{
"x": 1,
"y": 7
},
{
"x": 2,
"y": 8
},
{
"x": 1,
"y": 8
},
{
"x": 3,
"y": 7
},
{
"x": 4,
"y": 7
},
{
"x": 3,
"y": 8
}
]
}

View File

@ -0,0 +1,81 @@
{
"Speed": 224,
"Items": [
{
"x": 3,
"y": 1
},
{
"x": 5,
"y": 3
},
{
"x": 4,
"y": 4
},
{
"x": 4,
"y": 6
},
{
"x": 5,
"y": 7
},
{
"x": 6,
"y": 8
},
{
"x": 4,
"y": 8
},
{
"x": 6,
"y": 6
},
{
"x": 3,
"y": 3
},
{
"x": 5,
"y": 1
},
{
"x": 4,
"y": 5
},
{
"x": 3,
"y": 2
},
{
"x": 4,
"y": 7
},
{
"x": 4,
"y": 1
},
{
"x": 5,
"y": 8
},
{
"x": 5,
"y": 2
},
{
"x": 3,
"y": 4
},
{
"x": 5,
"y": 6
},
{
"x": 5,
"y": 4
}
]
}

View File

@ -0,0 +1,89 @@
{
"Speed": 224,
"Items": [
{
"x": 3,
"y": 1
},
{
"x": 4,
"y": 2
},
{
"x": 5,
"y": 3
},
{
"x": 4,
"y": 4
},
{
"x": 4,
"y": 6
},
{
"x": 5,
"y": 7
},
{
"x": 6,
"y": 8
},
{
"x": 4,
"y": 8
},
{
"x": 6,
"y": 6
},
{
"x": 3,
"y": 3
},
{
"x": 5,
"y": 1
},
{
"x": 4,
"y": 5
},
{
"x": 3,
"y": 2
},
{
"x": 4,
"y": 3
},
{
"x": 5,
"y": 4
},
{
"x": 5,
"y": 6
},
{
"x": 4,
"y": 7
},
{
"x": 5,
"y": 8
},
{
"x": 3,
"y": 4
},
{
"x": 5,
"y": 2
},
{
"x": 4,
"y": 1
}
]
}

View File

@ -0,0 +1,89 @@
{
"Speed": 224,
"Items": [
{
"x": 1,
"y": 4
},
{
"x": 1,
"y": 5
},
{
"x": 1,
"y": 6
},
{
"x": 1,
"y": 7
},
{
"x": 2,
"y": 7
},
{
"x": 3,
"y": 7
},
{
"x": 4,
"y": 7
},
{
"x": 5,
"y": 6
},
{
"x": 6,
"y": 5
},
{
"x": 7,
"y": 4
},
{
"x": 7,
"y": 3
},
{
"x": 7,
"y": 2
},
{
"x": 7,
"y": 1
},
{
"x": 6,
"y": 1
},
{
"x": 5,
"y": 1
},
{
"x": 4,
"y": 1
},
{
"x": 3,
"y": 2
},
{
"x": 2,
"y": 3
},
{
"x": 3,
"y": 5
},
{
"x": 4,
"y": 4
},
{
"x": 5,
"y": 3
}
]
}

View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 2,
"y": 2
},
{
"x": 7,
"y": 2
},
{
"x": 2,
"y": 3
},
{
"x": 7,
"y": 3
},
{
"x": 1,
"y": 7
},
{
"x": 8,
"y": 7
},
{
"x": 3,
"y": 2
},
{
"x": 6,
"y": 2
},
{
"x": 2,
"y": 6
},
{
"x": 7,
"y": 6
},
{
"x": 3,
"y": 3
},
{
"x": 6,
"y": 3
},
{
"x": 2,
"y": 7
},
{
"x": 7,
"y": 7
},
{
"x": 4,
"y": 5
},
{
"x": 5,
"y": 7
},
{
"x": 5,
"y": 5
},
{
"x": 4,
"y": 7
},
{
"x": 4,
"y": 6
},
{
"x": 5,
"y": 6
},
{
"x": 2,
"y": 5
},
{
"x": 7,
"y": 5
}
]
}

View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 2,
"y": 7
},
{
"x": 7,
"y": 4
},
{
"x": 6,
"y": 1
},
{
"x": 3,
"y": 7
},
{
"x": 2,
"y": 4
},
{
"x": 5,
"y": 6
},
{
"x": 4,
"y": 2
},
{
"x": 5,
"y": 4
},
{
"x": 3,
"y": 6
},
{
"x": 7,
"y": 1
},
{
"x": 3,
"y": 3
},
{
"x": 6,
"y": 4
},
{
"x": 4,
"y": 6
},
{
"x": 4,
"y": 3
},
{
"x": 6,
"y": 2
},
{
"x": 3,
"y": 4
},
{
"x": 6,
"y": 5
},
{
"x": 5,
"y": 2
},
{
"x": 4,
"y": 5
},
{
"x": 4,
"y": 4
},
{
"x": 5,
"y": 3
},
{
"x": 5,
"y": 5
}
]
}

View File

@ -0,0 +1,85 @@
{
"Speed": 224,
"Items": [
{
"x": 4,
"y": 1
},
{
"x": 2,
"y": 3
},
{
"x": 3,
"y": 5
},
{
"x": 5,
"y": 6
},
{
"x": 7,
"y": 6
},
{
"x": 7,
"y": 3
},
{
"x": 2,
"y": 8
},
{
"x": 3,
"y": 2
},
{
"x": 1,
"y": 7
},
{
"x": 1,
"y": 4
},
{
"x": 6,
"y": 2
},
{
"x": 8,
"y": 5
},
{
"x": 7,
"y": 8
},
{
"x": 4,
"y": 6
},
{
"x": 8,
"y": 7
},
{
"x": 5,
"y": 1
},
{
"x": 2,
"y": 6
},
{
"x": 8,
"y": 4
},
{
"x": 1,
"y": 5
},
{
"x": 6,
"y": 5
}
]
}

85
data/tiles/sword.json Normal file
View File

@ -0,0 +1,85 @@
{
"Speed": 224,
"Items": [
{
"x": 1,
"y": 8
},
{
"x": 8,
"y": 1
},
{
"x": 8,
"y": 2
},
{
"x": 1,
"y": 4
},
{
"x": 7,
"y": 1
},
{
"x": 5,
"y": 8
},
{
"x": 7,
"y": 3
},
{
"x": 2,
"y": 4
},
{
"x": 6,
"y": 2
},
{
"x": 5,
"y": 7
},
{
"x": 6,
"y": 4
},
{
"x": 2,
"y": 5
},
{
"x": 5,
"y": 3
},
{
"x": 4,
"y": 7
},
{
"x": 5,
"y": 5
},
{
"x": 3,
"y": 6
},
{
"x": 4,
"y": 4
},
{
"x": 2,
"y": 7
},
{
"x": 4,
"y": 6
},
{
"x": 3,
"y": 5
}
]
}

View File

@ -0,0 +1,65 @@
{
"Speed": 224,
"Items": [
{
"x": 5,
"y": 6
},
{
"x": 6,
"y": 4
},
{
"x": 4,
"y": 3
},
{
"x": 3,
"y": 1
},
{
"x": 2,
"y": 6
},
{
"x": 5,
"y": 3
},
{
"x": 6,
"y": 6
},
{
"x": 6,
"y": 1
},
{
"x": 3,
"y": 0
},
{
"x": 4,
"y": 7
},
{
"x": 2,
"y": 4
},
{
"x": 3,
"y": 8
},
{
"x": 6,
"y": 0
},
{
"x": 3,
"y": 7
},
{
"x": 3,
"y": 3
}
]
}

View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 4,
"y": 2
},
{
"x": 2,
"y": 2
},
{
"x": 7,
"y": 5
},
{
"x": 5,
"y": 4
},
{
"x": 3,
"y": 2
},
{
"x": 4,
"y": 5
},
{
"x": 4,
"y": 7
},
{
"x": 7,
"y": 7
},
{
"x": 2,
"y": 7
},
{
"x": 2,
"y": 4
},
{
"x": 7,
"y": 2
},
{
"x": 2,
"y": 5
},
{
"x": 5,
"y": 7
},
{
"x": 7,
"y": 4
},
{
"x": 5,
"y": 2
},
{
"x": 6,
"y": 2
},
{
"x": 3,
"y": 7
},
{
"x": 2,
"y": 3
},
{
"x": 7,
"y": 6
},
{
"x": 6,
"y": 7
},
{
"x": 7,
"y": 3
},
{
"x": 2,
"y": 6
}
]
}

View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 2,
"y": 7
},
{
"x": 2,
"y": 6
},
{
"x": 2,
"y": 5
},
{
"x": 2,
"y": 4
},
{
"x": 2,
"y": 3
},
{
"x": 2,
"y": 2
},
{
"x": 3,
"y": 2
},
{
"x": 4,
"y": 2
},
{
"x": 5,
"y": 2
},
{
"x": 6,
"y": 2
},
{
"x": 7,
"y": 2
},
{
"x": 7,
"y": 3
},
{
"x": 7,
"y": 4
},
{
"x": 7,
"y": 5
},
{
"x": 7,
"y": 6
},
{
"x": 7,
"y": 7
},
{
"x": 6,
"y": 7
},
{
"x": 5,
"y": 7
},
{
"x": 4,
"y": 7
},
{
"x": 3,
"y": 7
},
{
"x": 4,
"y": 5
},
{
"x": 5,
"y": 4
}
]
}

69
data/tiles/triangle.json Normal file
View File

@ -0,0 +1,69 @@
{
"Speed": 224,
"Items": [
{
"x": 1,
"y": 5
},
{
"x": 7,
"y": 5
},
{
"x": 4,
"y": 2
},
{
"x": 3,
"y": 5
},
{
"x": 5,
"y": 5
},
{
"x": 4,
"y": 3
},
{
"x": 2,
"y": 4
},
{
"x": 6,
"y": 4
},
{
"x": 5,
"y": 3
},
{
"x": 2,
"y": 5
},
{
"x": 6,
"y": 5
},
{
"x": 3,
"y": 3
},
{
"x": 4,
"y": 5
},
{
"x": 5,
"y": 4
},
{
"x": 3,
"y": 4
},
{
"x": 4,
"y": 4
}
]
}

View File

@ -0,0 +1,53 @@
{
"Speed": 224,
"Items": [
{
"x": 4,
"y": 2
},
{
"x": 3,
"y": 3
},
{
"x": 4,
"y": 3
},
{
"x": 5,
"y": 3
},
{
"x": 6,
"y": 5
},
{
"x": 5,
"y": 6
},
{
"x": 6,
"y": 6
},
{
"x": 7,
"y": 6
},
{
"x": 3,
"y": 6
},
{
"x": 2,
"y": 6
},
{
"x": 2,
"y": 5
},
{
"x": 1,
"y": 6
}
]
}

View File

@ -0,0 +1,93 @@
{
"Speed": 224,
"Items": [
{
"x": 7,
"y": 2
},
{
"x": 7,
"y": 4
},
{
"x": 7,
"y": 5
},
{
"x": 7,
"y": 7
},
{
"x": 6,
"y": 3
},
{
"x": 6,
"y": 5
},
{
"x": 5,
"y": 2
},
{
"x": 5,
"y": 3
},
{
"x": 5,
"y": 4
},
{
"x": 5,
"y": 5
},
{
"x": 5,
"y": 6
},
{
"x": 4,
"y": 2
},
{
"x": 4,
"y": 3
},
{
"x": 4,
"y": 4
},
{
"x": 4,
"y": 5
},
{
"x": 4,
"y": 6
},
{
"x": 3,
"y": 3
},
{
"x": 3,
"y": 5
},
{
"x": 2,
"y": 2
},
{
"x": 2,
"y": 4
},
{
"x": 2,
"y": 5
},
{
"x": 2,
"y": 7
}
]
}

View File

@ -0,0 +1,81 @@
{
"Speed": 224,
"Items": [
{
"x": 4,
"y": 8
},
{
"x": 3,
"y": 6
},
{
"x": 4,
"y": 4
},
{
"x": 5,
"y": 2
},
{
"x": 3,
"y": 1
},
{
"x": 4,
"y": 3
},
{
"x": 6,
"y": 2
},
{
"x": 4,
"y": 1
},
{
"x": 3,
"y": 3
},
{
"x": 5,
"y": 4
},
{
"x": 3,
"y": 5
},
{
"x": 4,
"y": 7
},
{
"x": 6,
"y": 1
},
{
"x": 3,
"y": 8
},
{
"x": 5,
"y": 7
},
{
"x": 3,
"y": 2
},
{
"x": 4,
"y": 6
},
{
"x": 3,
"y": 4
},
{
"x": 5,
"y": 1
}
]
}

View File

@ -0,0 +1,73 @@
{
"Speed": 224,
"Items": [
{
"x": 4,
"y": 6
},
{
"x": 6,
"y": 4
},
{
"x": 2,
"y": 4
},
{
"x": 3,
"y": 7
},
{
"x": 4,
"y": 3
},
{
"x": 5,
"y": 7
},
{
"x": 3,
"y": 2
},
{
"x": 5,
"y": 4
},
{
"x": 3,
"y": 5
},
{
"x": 5,
"y": 5
},
{
"x": 4,
"y": 2
},
{
"x": 6,
"y": 3
},
{
"x": 4,
"y": 7
},
{
"x": 3,
"y": 4
},
{
"x": 7,
"y": 3
},
{
"x": 4,
"y": 5
},
{
"x": 4,
"y": 4
}
]
}

85
data/tiles/ze.json Normal file
View File

@ -0,0 +1,85 @@
{
"Speed": 224,
"Items": [
{
"x": 5,
"y": 7
},
{
"x": 6,
"y": 7
},
{
"x": 7,
"y": 7
},
{
"x": 1,
"y": 3
},
{
"x": 2,
"y": 3
},
{
"x": 3,
"y": 3
},
{
"x": 5,
"y": 5
},
{
"x": 6,
"y": 5
},
{
"x": 7,
"y": 5
},
{
"x": 1,
"y": 7
},
{
"x": 2,
"y": 7
},
{
"x": 3,
"y": 7
},
{
"x": 5,
"y": 3
},
{
"x": 6,
"y": 3
},
{
"x": 7,
"y": 3
},
{
"x": 3,
"y": 4
},
{
"x": 2,
"y": 5
},
{
"x": 1,
"y": 6
},
{
"x": 5,
"y": 4
},
{
"x": 5,
"y": 6
}
]
}