summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-04-06 19:29:43 +0200
committertroido <troido@protonmail.com>2020-04-06 19:29:43 +0200
commit289a342917e9291895b0332dd4ab412b15a7fabf (patch)
tree209ccc2c1f83e3ad936c134168dadd8f71cd9590
parent7c351a0c7a497d30f4826a19e6c6e92d3e7b5065 (diff)
added rooms from python asciifarm
-rw-r--r--content/encyclopediae/default_encyclopedia.json107
-rw-r--r--content/maps/_home.json6
-rw-r--r--content/maps/basement.json49
-rw-r--r--content/maps/begin.json142
-rw-r--r--content/maps/cave.json93
-rw-r--r--content/maps/right.json110
-rw-r--r--content/maps/room.json52
-rw-r--r--content/maps/smallview.json87
-rw-r--r--content/maps/town.json106
-rw-r--r--content/maps/tutorial.json135
10 files changed, 851 insertions, 36 deletions
diff --git a/content/encyclopediae/default_encyclopedia.json b/content/encyclopediae/default_encyclopedia.json
index 760779d..411f1c1 100644
--- a/content/encyclopediae/default_encyclopedia.json
+++ b/content/encyclopediae/default_encyclopedia.json
@@ -68,17 +68,24 @@
"flags": ["Floor"]
},
"water": {
- "components": [],
"sprite": "water",
- "height": 0.1
+ "height": 0.0
},
+ "house": {"height": 3.0, "sprite": "house"},
+ "freeland": {},
"portal": {
- "arguments": [["destination", "string"], ["dest_pos", "string", ""]],
+ "arguments": [["destination", "string"], ["destpos", "string", ""]],
"components": [
- ["RoomExit", {"destination": ["arg", "destination"], "dest_pos": ["arg", "dest_pos"]}]
+ ["RoomExit", {"destination": ["arg", "destination"], "dest_pos": ["arg", "destpos"]}]
],
"flags": ["Floor"]
},
+ "img": {
+ "arguments": [["sprite", "string", ""], ["height", "float", 1.0]],
+ "components": [
+ ["Visible", {"name": ["arg", "sprite"], "sprite": ["arg", "sprite"], "height": ["arg", "height"]}]
+ ]
+ },
"builtwall": {
"arguments": [["health", "int", 100]],
"components": [
@@ -112,7 +119,7 @@
},
"rat": {
"sprite": "rat",
- "height": 1,
+ "height": 1.0,
"components": [
["MonsterAI", {
"view_distance": 3,
@@ -123,7 +130,68 @@
["Fighter", {"damage": 2, "cooldown": 6}],
["Movable", {"cooldown": 3}],
"Mortal",
- ["Faction", {"faction": "evil"}]
+ ["Faction", {"faction": "evil"}],
+ ["Loot", {"loot": ["list", [
+ ["list", [{"type": "radishseed"}, 1.0]]
+ ]]}]
+ ]
+ },
+ "goblin": {
+ "sprite": "goblin",
+ "height": 1.0,
+ "components": [
+ ["MonsterAI", {
+ "view_distance": 8,
+ "move_chance": 0.02,
+ "homesickness": 0.1
+ }],
+ ["Health", {"health": 15, "maxhealth": 15}],
+ ["Fighter", {"damage": 5, "cooldown": 8}],
+ ["Movable", {"cooldown": 4}],
+ "Mortal",
+ ["Faction", {"faction": "evil"}],
+ ["Loot", {"loot": ["list", [
+ ["list", [{"type": "sword"}, 0.05]],
+ ["list", [{"type": "club"}, 0.1]],
+ ["list", [{"type": "radish"}, 0.25]]
+ ]]}]
+ ]
+ },
+ "troll": {
+ "sprite": "troll",
+ "height": 1.0,
+ "components": [
+ ["MonsterAI", {
+ "view_distance": 8,
+ "move_chance": 0.01,
+ "homesickness": 0.1
+ }],
+ ["Health", {"health": 75, "maxhealth": 75}],
+ ["Fighter", {"damage": 15, "cooldown": 10}],
+ ["Movable", {"cooldown": 5}],
+ "Mortal",
+ ["Faction", {"faction": "evil"}],
+ ["Loot", {"loot": ["list", [
+ ["list", [{"type": "stone"}, 1.0]],
+ ["list", [{"type": "stone"}, 0.3]],
+ ["list", [{"type": "pebble"}, 0.5]],
+ ["list", [{"type": "pebble"}, 0.5]],
+ ["list", [{"type": "pebble"}, 0.5]]
+ ]]}]
+
+ ]
+ },
+ "rabbit": {
+ "sprite": "rabbit",
+ "height": 1.0,
+ "components": [
+ ["MonsterAI", {
+ "view_distance": 3,
+ "move_chance": 0.08,
+ "homesickness": 0.1
+ }],
+ ["Movable", {"cooldown": 3}],
+ ["Faction", {"faction": "neutral"}]
]
},
"spawner": {
@@ -188,6 +256,23 @@
["Grow", {
"delay": 600,
"target_time": ["arg", "target_time"],
+ "into": ["template", "youngradishplant"]
+ }]
+ ],
+ "extract": {
+ "target_time": ["Grow", "target_time"]
+ },
+ "flags": ["Occupied"]
+ },
+ "youngradishplant": {
+ "arguments": [["target_time", "int", 0]],
+ "sprite": "youngplant",
+ "height": 0.05,
+ "name": "youngradishplate",
+ "components": [
+ ["Grow", {
+ "delay": 600,
+ "target_time": ["arg", "target_time"],
"into": ["template", "radishplant"]
}]
],
@@ -316,7 +401,15 @@
"carrot": {"sprite": "food", "action": ["eat", 5]},
"sword": {"action": ["equip", {
"slot": "hand",
- "stats": {"strength": 50}
+ "stats": {"strength": 5}
+ }]},
+ "club": {"action": ["equip", {
+ "slot": "hand",
+ "stats": {"strength": 3}
+ }]},
+ "armour": {"action": ["equip", {
+ "slot": "body",
+ "stats": {"defence": 3}
}]}
},
"templates":{
diff --git a/content/maps/_home.json b/content/maps/_home.json
index 656ad94..13bbeb2 100644
--- a/content/maps/_home.json
+++ b/content/maps/_home.json
@@ -1,10 +1,10 @@
{
"width": 64,
"height": 64,
- "spawn": [63,0],
+ "spawn": [0,0],
"places": {},
"field":[
- ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%",
+ "%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",
",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",
",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",
",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",
@@ -73,7 +73,7 @@
",": ["grass"],
"%": [{
"type": "portal",
- "kwargs": {"destination": "room"}
+ "kwargs": {"destination": "smallview", "destpos": "home"}
}, "ground"]
}
}
diff --git a/content/maps/basement.json b/content/maps/basement.json
new file mode 100644
index 0000000..0d090b4
--- /dev/null
+++ b/content/maps/basement.json
@@ -0,0 +1,49 @@
+{
+ "width": 24,
+ "height": 11,
+ "spawn": [17, 8],
+ "places": {
+ "stairup": [17, 8]
+ },
+
+ "field": [
+ " ############### ",
+ " #++++++++a++++# ",
+ " #+++++++++++++# ",
+ " #+a+++++++++++# ",
+ " #+++++++++++++# ",
+ " #+++++a+++++++# ",
+ " ##D######D##### ",
+ " #++++++#++++++# ",
+ " #+a++:+#++++<+# ",
+ " #++++++#++++++# ",
+ " ############### "
+ ],
+ "mapping": {
+ ",": "grass",
+ "Y": ["grass", "radishplant"],
+ "~": "water",
+ "#": "wall",
+ "X": "rock",
+ ".": "ground",
+ "+": "floor",
+ "^": ["spiketrap"],
+ "D": ["ground", "closeddoor"],
+ "<": [
+ {"type": "portal", "args": ["begin", "stairdown"]},
+ {"type": "img", "args": ["stairup"]},
+ "floor"
+ ],
+ "a": ["floor", {
+ "type": "spawner",
+ "args": [{"type": "rat"}, 1, 300],
+ "kwargs": {"initialSpawn": true, "setHome": true}
+ }],
+ ":": ["floor", {
+ "type": "spawner",
+ "args": [{"type": "carrotseed"}, 1, 1200],
+ "kwargs": {"initialSpawn": false}
+ }],
+ " ": []
+ }
+}
diff --git a/content/maps/begin.json b/content/maps/begin.json
new file mode 100644
index 0000000..34a72cb
--- /dev/null
+++ b/content/maps/begin.json
@@ -0,0 +1,142 @@
+{
+ "width": 64,
+ "height": 64,
+ "spawn": [15, 30],
+ "places": {
+ "stairdown": [37, 33],
+ "caveentrance": [31, 50],
+ "right": [62, 10],
+ "cavebridge": [1, 60]
+ },
+ "field": [
+
+
+
+
+
+
+
+
+ ",,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
+ ",,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
+ ",,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
+ ",,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,'1",
+ ",,,,,,~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'1",
+ ",,,,~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,T,,,,,,,,,,,,,,'1",
+ ",,,~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,T,,,,,,,,,,,,,,,,,,,,,,'1",
+ ",,~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'1",
+ ",,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,T,,,,,,T,,,,,,,,,,,'1",
+ ",~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'1",
+ ",~~~~~,,,,,,,,,''''''''T'''''''''''''''''''''''T'''''''''''''''1",
+ "~~~~~~,,,,,,,'''''''''''''T''''''''''''''''''''''''''''''''''''1",
+ "~~~~~''''T''''.................................................1",
+ "~~~~~.'''''''.'''''''''''''''''''''''''''''''''''''''''''''''''1",
+ "~~~~~........''''''''''''''''''''''''''''''''''''''''''''''''''1",
+ "~~~~~.'''...''*',,,,,,,,,,,,,,,,,,,,,,,,,,'''''''',,,,,,,,,,,,'1",
+ "~~~~~''''...'''',,,,,,,,,,,,,,,,,,,,,,,,,,'''''''',T,,,,,,,,,,'1",
+ "~~~~~'''''..'''',,,,,,,,,,,,,,,,,,,,,,,,,,'''''''',,,,,,,,,,,,'1",
+ ",~~~~'''''..'''',,,,,,,,,,,,,,,,,,,,,,,,,,'''''''',,,,,,,,,,,,'1",
+ ",~~~~'''*''.'''',,,,,,,,,,,,,,,,,,,,,,,,T,'''''''',,,,,,,,,,,,'1",
+ ",~~~~~,,,,..'''',,,,,,,,,,,,,,,,,,T,,,,,,,'''''''',,,,,,,,,,,,'1",
+ ",~~~~~,,,,'..''',,,,,,,,,,,,,,,,,,,,,,,,,,'''''''',,,,,,,,,,,,'1",
+ ",~~~~~,,,,''.''',,,,,,,,,,,,,,,,,,,,,,,,,,'''''''',,,,,,,,,,,,'1",
+ ",~~~~~,,,,,'..'',,,,,,,,,,,,,,,,,,,,,,,,,,'''''''',,,,,,,,,,,,'1",
+ ",~~~~~,,,,,''.'E,,,,,,,,,,,,,,,,,,,,,,,,,,'''T'''',,,,,,,,,,,,'1",
+ ",~~~~~,,,,,'..''''''#####################''''''''',,,,,,,,,,,,'1",
+ ",~~~~~,,,,,''..'''BB#+++++++++++++#+++++#''''''''',,,,,,,,,,,,'1",
+ ",~~~~~'''''''..'''.'#+++++++++++++#+++++#''''''''',,,,,,,,,,,,'1",
+ "~~~~~'''5''''''../!]#+++++++++++++++++++#''''''''',,,,,,,,,,,,'1",
+ "~~~~~'''6''''.'.''..D+++++++++++++#+++++#''''''''',,,,,,,,,,,,'1",
+ "~~~~~'''7'..''.'....D+++++++++++++#######''''''''',,,,,,,,,,,,'1",
+ "~~~~~'888''.'..'....#+++++++++++++#+++++#''''''''',,,,,,,,,,,,'1",
+ "~~~~,,,,,,'.'#d.....#+++++++++++++#+++++#''''''''',,,,,,,,,,,,'1",
+ "~~~~,,,,,,8.'#..d..^#+++++++++++++++++>+#''''''''',,,,,,,,,,,,'1",
+ "~~~~,,,,,,'.'########+++++++++++++#+++++#''''''''',,,,,,,,,,,,'1",
+ "~~~~,,,,,,'.''''''''#####################''''''''',,,,,,,,,,,,'1",
+ "~~~~,,,,,,8.'''''''''''''''''''''''''''''''''''''',,,,,,,,,,,,'1",
+ "~~~~~,,,,,'.'''''''''''''''''''''''''''''''''''''',,,,,,,,,,,,'1",
+ "~~~~~,,,,,'.'''''''''''''''''''''''''''''''''''''''''''''''''''1",
+ "~~~~~~,,,,'....................................................1",
+ ",~~~~~,,,,'''T'''''''''''''''''''''''''''''''''''''''''''''''''1",
+ ",~~~~~~''''''''''''''''''''''''''''''''''''''''''''''''''''''''1",
+ ",~~~~~~''''''''',,,,,,,,,,,,,,,''.',,,,,,,,,',,,,,,,,,,,,,,,,,'1",
+ ",,~~~~~'',,,,,,,,,,,,,,,,,,,,,,'''',,,,T,,,,',,,,,,,,,,,,,,,,,'1",
+ ",,~~~~~'',,,,,,,,,,,,,,,,,,,,,,'.'',,,,,,,,,',,T,,,,r,,,r,,,,,'1",
+ ",,~~~~~'',,,,,,,,,,,,,,,,,,,,,,T'.',,,,,,,,,',,,,,,,,,,,,,,,,,'1",
+ ",,~~~~~'',,,,,T,,,,,,,,,,,,,,,,'''',T,,,,,T,',,,,,,T,,r,,,,,,,'1",
+ ",,~~~~~'',,,,,,,,,,,,,,,,,T,,,,'''',,,,,,,,,',T,,,,,,,,,,,,,,,'1",
+ ",,~~~~~'',,,,,,,,,,,,,,,,,,,,,,'T.',,,,,,,,T,,,,,,,r,,,,T,,,,,'1",
+ ",,~~~~~'',,,,,,,,,,,,,,,,,,,,,,'''',,,T,,,,,,,,,,,,,,,,,,,,,,,'1",
+ ",~~~~~~'',,,,,,,,,,,,XXXXXXXXXX'.'',,,,,,,,,,,,T,,,,,,,T,,,,,,'1",
+ ",~~~~~~'',,,,,,XXXXXXX XCX'',,,,,T,,,,,,,,,,,,,,,,,,,,,XX",
+ ",~~~~~'''',,XXXX XXXXX,,,,,,,,,,,,T,,,,,,,,,,,,XXX ",
+ ",~~~~~''''XXX XXXX,,,,,,,,,,,,,,,,,,,,,XX ",
+ "X~~~~~'''XX XXX,,,,,,,XX,,,,,,,,,,X ",
+ "X~~~~~''XX XXX,,,XXXXXXX,,,,,,XX ",
+ "X~~~~~''X X,,XX XXXX,,XX ",
+ "X~~~~~''X X,XX XXXX ",
+ "X~~~~~'XX XXX ",
+ "#~~~~~'XX ",
+ "2=====''X ",
+ "#~~~~~XXX ",
+ "X~~~~~X ",
+ "X~~~~~X "
+ ],
+ "mapping": {
+ ",": ["grass", "freeland"],
+ "'": ["grass"],
+ "Y": ["grass", "radishplant"],
+ "T": ["grass", "tree"],
+ "~": "water",
+ "=": ["water", "bridge"],
+ "o": ["grass", "stone", "stone", "stone", "stone", "stone", "stone", "stone", "stone"],
+ "W": ["grass", "hardwood", "hardwood", "hardwood", "hardwood", "hardwood", "hardwood", "hardwood", "hardwood"],
+ "*": ["grass", "pebble"],
+ "d": ["ground", {
+ "type": "spawner",
+ "args": [{"type": "dummy"}, 1, 600],
+ "kwargs": {"initialSpawn": true}
+ }],
+ "D": ["ground", "opendoor"],
+ "#": "wall",
+ ":": ["ground", {
+ "type": "spawner",
+ "args": ["radishseed", 1, 600],
+ "kwargs": {"initialSpawn": false}
+ }],
+ ";": ["floor", "radishseed"],
+ ".": "ground",
+ "+": "floor",
+ "X": "rock",
+ "^": ["spiketrap", "ground"],
+ ">": [
+ {"type": "portal", "kwargs": {"destination": "basement", "destpos": "stairup"}},
+ {"type": "img", "kwargs": {"sprite": "stairdown"}},
+ "floor"
+ ],
+ "C": [
+ {"type": "portal", "kwargs": {"destination": "cave", "destpos": "stairup"}},
+ {"type": "img", "kwargs": {"sprite": "stairdown"}},
+ "floor"
+ ],
+ "r": ["grass", "rabbit"],
+ "/": ["grass", "sword"],
+ "!": ["grass", "club"],
+ "]": ["grass", "armour"],
+ "1": [{
+ "type": "portal",
+ "kwargs": {"destination": "right", "destpos": "left"}
+ }],
+ "2": [{
+ "type": "portal",
+ "kwargs": {"destination": "tutorial", "destpos": "tunnelout"}
+ }, "floor"],
+ "E": ["grass", "trader"],
+ "B": ["grass", "freeland", "builtwall"],
+ "5": ["grass", "plantedradishseed"],
+ "6": ["grass", "radishseedling"],
+ "7": ["grass", "youngradishplant"],
+ "8": ["grass", "radishplant"],
+ " ": []
+ }
+}
diff --git a/content/maps/cave.json b/content/maps/cave.json
new file mode 100644
index 0000000..6086d78
--- /dev/null
+++ b/content/maps/cave.json
@@ -0,0 +1,93 @@
+{
+ "width": 64,
+ "height": 44,
+ "spawn": [32, 4],
+ "places": {
+ "stairup": [32, 4]
+ },
+ "field": [
+ " ",
+ " ",
+ " XXX ",
+ " XXX<X ",
+ " XX...X ",
+ " X....X ",
+ " X....X ",
+ " X....XX ",
+ " X.....X ",
+ " XX....X ",
+ " X....X ",
+ " X....X ",
+ " XX....X ",
+ " X.....X ",
+ " X.....X ",
+ " X.....X ",
+ " X....XX ",
+ " X...XX ",
+ " X...X ",
+ " X...X ",
+ " XX...X ",
+ " XXXXXXX X....XX ",
+ " XXX.....XXXXXXXXX.....XXXXXXXXX XXXXX ",
+ " X.............................XXXXXX...XX ",
+ " XX.......................................X ",
+ " X.......................................XX ",
+ " X........g.....................g........X ",
+ " X.......................................XX ",
+ " X........................................X ",
+ " X.......................................XX ",
+ " X.......................................X ",
+ " XX.......................................X ",
+ " XXX........................................X ",
+ " X..........................................XX ",
+ " X...........g......................g........X ",
+ " XX..........................................X ",
+ " X..........................................X ",
+ " XXX.......................................XX ",
+ " X.......................................X ",
+ " X...XX.................................XX ",
+ " X.X...X.............T..............XX.XX ",
+ " XXX.........................XXX.......X ",
+ " XXXXXXXXXXXXX...........XXX XXXXXXXXX ",
+ " XXXXXXXXXXXXX "
+ ],
+ "mapping": {
+ ",": "grass",
+ "Y": ["grass", "plant"],
+ "~": "water",
+ "X": "wall",
+ "X": "rock",
+ ".": "ground",
+ "+": "floor",
+ "<": [
+ {"type": "portal", "args": ["begin", "caveentrance"]},
+ {"type": "img", "args": ["stairup"]},
+ "floor"
+ ],
+ "g": [
+ "ground",
+ {
+ "type": "spawner",
+ "kwargs": {
+ "template": {"type": "goblin"},
+ "amount": 2,
+ "delay": 50,
+ "initial_spawn": true
+ }
+ }
+ ],
+ "T": [
+ "ground",
+ {
+ "type": "spawner",
+ "kwargs": {
+ "template": {"type": "troll"},
+ "amount": 1,
+ "delay": 200,
+ "initial_spawn": true
+ }
+ }
+ ],
+ " ": []
+ }
+}
diff --git a/content/maps/right.json b/content/maps/right.json
new file mode 100644
index 0000000..c7e0a46
--- /dev/null
+++ b/content/maps/right.json
@@ -0,0 +1,110 @@
+{
+ "width": 64,
+ "height": 64,
+ "spawn": [10, 10],
+ "places": {
+ "left": [1, 10],
+ "bridge": [34, 1]
+ },
+ "field": [
+ " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
+ " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~===~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
+ " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~===~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'...',,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''.'',,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.',,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.',,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.',,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.',,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.',,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.',,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1'''''''''''''''''''''''''''''''''.',,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1'.................................',,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1''''''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1.............................'',,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ "1',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ " X,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ " XX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ " XXX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ " XX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~",
+ " X,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XXXXX,,,,,~~~~~",
+ " XX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XXXX XXX,,,,~~~~",
+ " XXXX,,,XXX,,,,,,,,,,,,,,,,,,,,,,,,,,,,XXX XXXXXX~~~",
+ " XXXXX XX,,,,,,,,,,,,,,,,,,,,,,,,,,XXX XX~~",
+ " XX,,,,,,,,,,,,,,,,,,,,,,,XXX X~~",
+ " XXXXXX,,,,,,,,,,,X,,,,,XX XX~",
+ " XXXX,XXXXXXXXX,XXXX XX",
+ " XXX XXX ",
+ " "
+ ],
+ "mapping": {
+ ",": ["grass", "freeland"],
+ "'": ["grass"],
+ "Y": ["grass", "plant"],
+ "T": ["grass", "tree"],
+ "~": "water",
+ "=": ["water", "bridge"],
+ "o": ["grass", "stone"],
+ "*": ["grass", "pebble"],
+ "d": ["ground", "dummy"],
+ "#": "wall",
+ ":": ["floor", {
+ "type": "spawner",
+ "args": ["seed", 1, 600],
+ "kwargs": {"initialSpawn": true}
+ }],
+ ";": ["floor", "seed"],
+ ".": "ground",
+ "+": "floor",
+ "X": "rock",
+ "^": ["spiketrap", "ground"],
+ "1": [{
+ "type": "portal",
+ "kwargs": {"destination": "begin", "destpos": "right"}
+ }],
+ "%": [{
+ "type": "portal",
+ "kwargs": {"destination": "smallview", "destpos": "begin"}
+ }, "bridge", "water"],
+ "r": ["grass", "rabbit"],
+ "/": ["grass", "sword"],
+ "!": ["grass", "club"],
+ "]": ["grass", "armour"],
+ " ": []
+ }
+}
diff --git a/content/maps/room.json b/content/maps/room.json
index 5d69b72..d092485 100644
--- a/content/maps/room.json
+++ b/content/maps/room.json
@@ -1,30 +1,30 @@
{
- "width": 42,
+ "width": 43,
"height": 23,
- "spawn": [5, 15],
+ "spawn": [6, 19],
"field": [
- "~~~~~XXXXXXXXXXXX~~~XXXXXXXXXXXXXXXXXXXXXX",
- "~~~~~,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,,X",
- "~~~~,,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,,X",
- "~~~~,,,,,,,,,,r,,~~~~,,,,,,,,,,,,,,,,,,,,X",
- "~bbbb..,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,X",
- "~~~~,,.,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,X",
- "~~~,,,.,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,X",
- "~~,,,,.,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,X",
- "X,,,,,.,,,,,,,,,,,~~~~,,,,,,T,,,,,,,,,,,,X",
- "X,,,,,.,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,X",
- "X,^,,,.,,,,,,,,,,,,~~~,,,,,T,,,,######,,,X",
- "X,^,,,.,,,,,,,,,,,,bbb,,,,,,,,,,#++++#,,,X",
- "X,,,t..............bbb..........D++++#,,,X",
- "X,**,,.,,,,,,,,,,,,bbb,,,,,,,,,,#++++#,,,X",
- "X,*,*,.,u,,,V,,V,,,~~~,,,T,,,T,,#++++#,,,X",
- "X,,*,,.,,,,,,,,,,,,~~~,,,,,,,,,,######,,,X",
- "X,oo,,.,s,d,,,,,,,~~~~,,,,,,,,,,f,,,,f,,,X",
- "X,,*,,.,,,,,,,,,,,~~~''''''''''''''''f'''X",
- "X*,,,,.,,,d,VVV,,,~~~'''''''''''f''''f'''X",
- "1,,,,,.,,,,,VVV,,,~~~'''''''''''ffffff'''X",
- "X/,,,,.,,,,,VVV,,,~~~''''''''''''''''''''X",
- "XXXXX,.,XXXXXXXXXX~~~XXXXXXXXXXXXXXXXXXXXX",
+ " ~~~~~XXXXXXXXXXXX~~~XXXXXXXXXXXXXXXXXXXXXX",
+ " ~~~~~,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,,X",
+ " ~~~~,,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,,X",
+ " ~~~~,,,,,,,,,,r,,~~~~,,,,,,,,,,,,,,,,,,,,X",
+ " ~bbbb..,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,X",
+ " ~~~~,,.,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,X",
+ " ~~~,,,.,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,X",
+ " ~~,,,,.,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,X",
+ " X,,,,,.,,,,,,,,,,,~~~~,,,,,,T,,,,,,,,,,,,X",
+ " X,,,,,.,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,X",
+ " X,^,,,.,,,,,,,,,,,,~~~,,,,,T,,,,######,,,X",
+ " X,^,,,.,,,,,,,,,,,,bbb,,,,,,,,,,#++++#,,,X",
+ " X,,,t..............bbb..........D++++#,,,X",
+ " X,**,,.,,,,,,,,,,,,bbb,,,,,,,,,,#++++#,,,X",
+ " X,*,*,.,u,,,V,,V,,,~~~,,,T,,,T,,#++++#,,,X",
+ " X,,*,,.,,,,,,,,,,,,~~~,,,,,,,,,,######,,,X",
+ " X,oo,,.,s,d,,,,,,,~~~~,,,,,,,,,,f,,,,f,,,X",
+ " X,,*,,.,,,,,,,,,,,~~~''''''''''''''''f'''X",
+ " X*,,,,.,,,d,VVV,,,~~~'''''''''''f''''f'''X",
+ "1.......,,,,,VVV,,,~~~'''''''''''ffffff'''X",
+ " X/,,,,.,,,,,VVV,,,~~~''''''''''''''''''''X",
+ " XXXXX,.,XXXXXXXXXX~~~XXXXXXXXXXXXXXXXXXXXX",
" %%% "
],
"mapping": {
@@ -40,8 +40,8 @@
"X": "rock",
"*": ["grass", {"type": "spawner", "kwargs": {"template": {"type": "pebble"}, "delay": 600}}],
"o": ["grass", {"type": "spawner", "kwargs": {"template": {"type": "stone"}, "delay": 600}}],
- "%": {"type": "portal", "kwargs": {"destination": "broom", "dest_pos": "northentry"}},
- "1": {"type": "portal", "kwargs": {"destination": "_home+{player}"}},
+ "%": {"type": "portal", "kwargs": {"destination": "broom", "destpos": "northentry"}},
+ "1": {"type": "portal", "kwargs": {"destination": "smallview"}},
"^": ["grass", "spiketrap"],
"d": ["grass", {"type": "spawner", "kwargs": {"template": {"type": "dummy"}, "delay": 100}}],
"r": ["grass", {"type": "spawner", "kwargs": {"template": {"type": "rat"}, "amount": 3, "clan": "rats", "delay": 200}}],
diff --git a/content/maps/smallview.json b/content/maps/smallview.json
new file mode 100644
index 0000000..bcfd1f4
--- /dev/null
+++ b/content/maps/smallview.json
@@ -0,0 +1,87 @@
+{
+ "width": 33,
+ "height": 33,
+ "spawn": [24, 24],
+ "places": {
+ "begin": [21, 24],
+ "towneast": [24, 13],
+ "home": [24, 26]
+ },
+ "field": [
+ "########.###############.########",
+ "#,,,,,,#.#,,,,,,#~~~,~,#.#,,,,^,#",
+ "#,,,,,,#.#,,,,,,#~~~~~~#.#,,,,,,#",
+ "#,,,,,,#.#,,,,,,#~~~~~~#.#,,,,,,#",
+ "#,,,,,,#.#,,,,,,#~~~~~,#.#,,^^,,#",
+ "#,,,^^,#.#,,,,^,#,~~~~,#.#,,,,,,#",
+ "#,,,,,,#.#,,,,,,#,~~,,,#.#,,,,,,#",
+ "########.#########~#####.########",
+ "..................=..............",
+ "########.#########~#####.########",
+ "#,,,,,,#.#,,,,,,#^~^..^#.#,^,,,,#",
+ "#,,,,,,#.#,,,,,,#^~^..^#.#,,,,,,#",
+ "#,,,,,,#.#,,,,,,#.=..^^#.#,,,,,,#",
+ "#,,,,,,#.#,,,,,,#^~^...2.#,,,,,,#",
+ "#,,,,,,#.#,,,,,,#.~~=~.#.#,,,,,,#",
+ "#,,,,,,#.#,,,,,,#.^^.~~#.#,,,,,,#",
+ "########.#############~#.########",
+ "#,,,,,,#.,,T,,T,T,,T,~~,.#,,,,,,#",
+ "#,,,^^,#.,T,T,T,T,,TT~,,.#,,,,,,#",
+ "#,,,,,,#.,T,T,,T,,TT,~~,.#,,,,,,#",
+ "#,,,,,,#.,TT,,TTT,,,T,~,.#,,,,,,#",
+ "#,,,,,,#.T,,,TT,TT,T,T~,.#,,^,,,#",
+ "#,,,,,,#.,TT,T,,T,,,T,~~.#,,,,,,#",
+ "########.T,,TTTT,TTT,TT~.########",
+ ".......................=........4",
+ "########.,,~~~~~~~~~~1~~.########",
+ "#,,,,,,#.~~~,,,T,,,,,,,~.3,,,,,,#",
+ "#,,,,,,#.~,,,,,,,,,,,,,~,#,^,,,,#",
+ "#,,,,,,#.~,,,,,,,,,,T,,~,#,,,,,,#",
+ "#,,,,,,#.~,,^^,,,,,,,,,~,#,,,,,,#",
+ "#,,,,,,#.~,,,T,,,,T,,,,~,#,,,,,,#",
+ "#,,,,,,#.~,,X,,,X,,,,XX~,#,,,,,,#",
+ "######XX+~XXXXXXXXXXXXX~+XXX#####"
+ ],
+ "mapping": {
+ ",": "greengrass",
+ "Y": ["grass", "plant"],
+ "T": ["grass", "tree"],
+ "~": "water",
+ "=": ["water", {"type": "bridge", "kwargs": {"small": true}}],
+ "o": ["grass", "stone"],
+ "*": ["grass", "pebble"],
+ "d": ["ground", "dummy"],
+ "#": "fence",
+ ":": ["floor", {
+ "type": "spawner",
+ "args": ["seed", 1, 600],
+ "kwargs": {"initialSpawn": true}
+ }],
+ ";": ["floor", "seed"],
+ ".": "ground",
+ "+": "floor",
+ "X": "rock",
+ "^": "house",
+ "1": [{
+ "type": "portal",
+ "kwargs": {"destination": "right", "destpos": "bridge"}
+ }, "floor"],
+ "2": [{
+ "type": "portal",
+ "kwargs": {"destination": "town", "destpos": "gate"}
+ }, "floor"],
+ "3": [{
+ "type": "portal",
+ "kwargs": {"destination": "_home+{player}"}
+ }, "floor"],
+ "4": [{
+ "type": "portal",
+ "kwargs": {"destination": "room"}
+ }, "floor"],
+ "r": ["grass", "rabbit"],
+ "/": ["grass", "sword"],
+ "!": ["grass", "club"],
+ "]": ["grass", "armour"],
+ " ": []
+ }
+}
diff --git a/content/maps/town.json b/content/maps/town.json
new file mode 100644
index 0000000..dd0b2b5
--- /dev/null
+++ b/content/maps/town.json
@@ -0,0 +1,106 @@
+{
+ "width": 64,
+ "height": 64,
+ "spawn": [55, 37],
+ "places": {
+ "gate": [62, 37]
+ },
+ "field": [
+
+ ",,,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",
+ ",hhhhhhhhhhhhhhhhhh~~~~~~hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,======.....................,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,======.....................,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,======.....................,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,h%",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,....................%",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,....................%",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,....................%",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,....................%",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,,,,,..,,,,,h%",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,####++##,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,#++++++#,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,#++++++#,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,...,,,,,#++++++#,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,...,,,,,#++++++#,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~~~~~~,,,,,,,,,,,,,...,,,,,#++++++#,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~,,,,,,,,,,...,,,,,#++++++#,,,h,",
+ ",h,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~,,,,,,,...,,,,,########,,,h,",
+ ",h,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~,...,,,,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~===~~~,,,,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~===~~~~~~,,,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~===~~~~~~~~,,,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~===~~~~~~~~~~,,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~===~~~~~~~~~~~,,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~===~~~~~~~~~~~~,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~,,,,h,",
+ ",h,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,h,",
+ ",h,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~,,,h,",
+ ",h,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~,,h,",
+ ",h,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,h,",
+ ",h,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,,h,",
+ ",hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh~~~~~~hhh,",
+ ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,,,,"
+ ],
+ "mapping": {
+ ",": "grass",
+ "Y": ["grass", "plant"],
+ "T": ["grass", "tree"],
+ "~": "water",
+ "=": ["water", "bridge"],
+ "o": ["grass", "stone"],
+ "*": ["grass", "pebble"],
+ "d": ["ground", "dummy"],
+ "#": "wall",
+ "h": "fence",
+ ":": ["floor", {
+ "type": "spawner",
+ "args": ["seed", 1, 600],
+ "kwargs": {"initialSpawn": true}
+ }],
+ ";": ["floor", "seed"],
+ ".": "ground",
+ "+": "floor",
+ "X": "rock",
+ "^": ["spiketrap", "ground"],
+ "%": [{
+ "type": "portal",
+ "kwargs": {"destination": "smallview", "despos": "towneast"}
+ }, "ground"],
+ "r": ["grass", "rabbit"],
+ "/": ["grass", "sword"],
+ "!": ["grass", "club"],
+ "]": ["grass", "armour"],
+ " ": []
+ }
+}
diff --git a/content/maps/tutorial.json b/content/maps/tutorial.json
new file mode 100644
index 0000000..2ac04b4
--- /dev/null
+++ b/content/maps/tutorial.json
@@ -0,0 +1,135 @@
+{
+ "width": 64,
+ "height": 64,
+ "spawn": [17, 5],
+ "places": {
+ "tunnelout": [62, 1]
+ },
+ "field": [
+
+ " HELLO PLAYER #######",
+ "WELCOME TO ASCIIFARM #+++++1",
+ "#################### YOU CAN WALK SHORTCUT #+#####",
+ "#++++++++++++++++++# AROUND WITH DO NOT GO HERE IF #+# ",
+ "#++++++++++++++++++# WASD OR ARROW YOU WANT TO LEARN #+# ",
+ "#++++++++++++++++++# ARROW KEYS ##########################+# ",
+ "#++++++++++++++++++##############++++++++++++++++++++++++++# ",
+ "#+++++++++++++++++++++++++++++++++########################+# ",
+ "#############################++#### #+# ",
+ " OR OTHER KEYS IF YOU #++# YOU CAN INTERACT #+# ",
+ " CHANGE THE CONFIG #++# WITH OBJECTS BY #+# ",
+ " #++# PRESSING R WHILE #+# ",
+ " #++# STANDING NEXT TO IT #+# ",
+ " #%%# #+# ",
+ " #++# YOU CAN OPEN #+# ",
+ " YOU CAN FIGHT BY #++# OR CLOSE DOORS #+# ",
+ " PRESSING F WHILE #++# THIS WAY #+# m",
+ " STANDING NEXT TO #++# #+# m",
+ " THE TARGET #++# #+# m",
+ " ##############%%### #+# m",
+ " #++++++&+&+&++++++# #+# m",
+ " #+++++++++++++++++# #+# mm",
+ "################+++++++++++++++++# #+# m~",
+ "#++++++++++++++++++++++++++++++++# #+# m~",
+ "#+++++++++++++++++++++&+&+&++++++# #+# m~",
+ "#+++############################## #+# mm",
+ "#+++# TRY FIGHTING #+# m",
+ "#+++# THESE DUMMIES #+# m",
+ "#+++# #+# m",
+ "#+++# ENEMIES AND SOME #+# ",
+ "#+^+# OBJECTS CAN HARM #+# ",
+ "#+++# YOU #+# ",
+ "#+++# #+# ",
+ "#^+^# SOMETIMES #+# ",
+ "#+^+# THIS IS #+# ",
+ "#++^# UNAVOIDABLE #+# ",
+ "#+++# #+# ",
+ "#+++# YOU SLOWLY REGAIN #+# ",
+ "#+++# HEALTH OVER TIME #+# ",
+ "#+++################################### #+# ",
+ "#++++++++;++++++++;;++++++++++++++++++# YOU CAN DROP #+# ",
+ "#++++++++++++++++++++++++++;++++++++++# THEM AGAIN #+# ",
+ "#+++++;+++++++++;;++++++;+++++++++++++# WITH THE Q KEY #+# ",
+ "###################################+++# #+# ",
+ " YOU CAN PICK UP OBJECTS #+++# #+# ",
+ " WITH THE E KEY #+++# YOU CAN #+# ",
+ " TRY PICKING UP SOME SEEDS #+++# USE ITEMS #+# ",
+ " #+++# IN YOUR #+# ",
+ " YOU CAN PLANT #+++# INVENTORY #+# ",
+ " SEEDS IN THE #+++# BY PRESSING #+# ",
+ " GROUND BY m#+++# SHIFT E #+# ",
+ " USING THEM mmm,,++#m #+# ",
+ " mmmmmmmm,,,,+,,mm BE PATIENT OR #+# ",
+ " HARVEST CROPS mmmm,,,,,,,,,,,+,,,mm COME BACK #+# ",
+ " BY INTERACTING mm,,,,,,,,,,,,,,+,,,,m LATER #+# ",
+ " WITH THEM m,,...,,.$.,,...+,,,,m #+# ",
+ " mm,,...,,...,,...+,,,mm RADISHES TAKE #+# ",
+ " YOU CAN EAT m,,,...,,...,,...+,,,m AROUND TEN #+# ",
+ " FOOD TO m,,,,+++++++++++++,,,m MINUTES TO #+# ",
+ " REGAIN HEALTH m,,,,,,,,..$,,...+,,,m GROW #+# ",
+ " mmm,,,,,,...,,...+,,###################+# ",
+ " mmmmmm,...,,...+++++++++++++++++++++++# ",
+ " FOLLOW THE TUNNEL mmmmmmmmmmmm###################### ",
+ " TO LEAVE THE TUTORIAL YOU CAN ALWAYS COME BACK"
+ ],
+ "mapping": {
+ ",": ["grass"],
+ "#": ["wall"],
+ ".": ["ground"],
+ "+": ["floor"],
+ "$": ["grass", "radishplant"],
+ "~": ["water"],
+ "=": ["water", "bridge"],
+ "m": ["rock"],
+ "^": [{"type": "spiketrap", "kwargs": {"damage": 3}}
+ , "ground"],
+ "d": ["ground", {
+ "type": "spawner",
+ "args": [{"type": "dummy"}, 1, 600],
+ "kwargs": {"initial_spawn": true}
+ }],
+ "%": ["floor", "closeddoor"],
+ "&": [{
+ "type": "spawner",
+ "args": [{"type": "dummy"}, 1, 300],
+ "kwargs": {"initial_spawn": true}
+ }],
+ "1": [{
+ "type": "portal",
+ "args": ["begin","cavebridge"]
+ }, "floor"],
+ ";": ["floor", {
+ "type": "spawner",
+ "args": [{"type": "radishseed"}, 1, 600],
+ "kwargs": {"initial_spawn": true}
+ }],
+ "A": [{"type": "letter", "args": ["A"]}],
+ "B": [{"type": "letter", "args": ["B"]}],
+ "C": [{"type": "letter", "args": ["C"]}],
+ "D": [{"type": "letter", "args": ["D"]}],
+ "E": [{"type": "letter", "args": ["E"]}],
+ "F": [{"type": "letter", "args": ["F"]}],
+ "G": [{"type": "letter", "args": ["G"]}],
+ "H": [{"type": "letter", "args": ["H"]}],
+ "I": [{"type": "letter", "args": ["I"]}],
+ "J": [{"type": "letter", "args": ["J"]}],
+ "K": [{"type": "letter", "args": ["K"]}],
+ "L": [{"type": "letter", "args": ["L"]}],
+ "M": [{"type": "letter", "args": ["M"]}],
+ "N": [{"type": "letter", "args": ["N"]}],
+ "O": [{"type": "letter", "args": ["O"]}],
+ "P": [{"type": "letter", "args": ["P"]}],
+ "Q": [{"type": "letter", "args": ["Q"]}],
+ "R": [{"type": "letter", "args": ["R"]}],
+ "S": [{"type": "letter", "args": ["S"]}],
+ "T": [{"type": "letter", "args": ["T"]}],
+ "U": [{"type": "letter", "args": ["U"]}],
+ "V": [{"type": "letter", "args": ["V"]}],
+ "W": [{"type": "letter", "args": ["W"]}],
+ "X": [{"type": "letter", "args": ["X"]}],
+ "Y": [{"type": "letter", "args": ["Y"]}],
+ "Z": [{"type": "letter", "args": ["Z"]}],
+ "_": [{"type": "letter", "args": [" "]}],
+ " ": []
+ }
+}