Motto : Ima fucking spec this.
1. Map.
- The map is a a tiling of hexagonal spaces proceeding from a center. Thus a 3-map would consist of 19 hexes.
- Every hex on the map may contain at most one object, and may have attached at most one hex property.
- Hexes will be addressed via (a, b) where a denotes the radius (1 is the center square) and b denotes the radian angle [1,1] is the center hex, [1, 4] is the bottom-most hex in the 6-ring and so on).
- The map defines the base damage for player spells and melee (either of which can be 0), the coin cost for each step taken as well as the base experience and coin drop for NPCs.
2. Hex properties.
- Victory hex. When all victory hexen are occupied by victory objects, the player wins.
- Grant hex. When player first steps on hex player is granted (item, spell, experience, health, coins).
- Teleport hex. When player or NPC steps on hex, player or NPC is teleported to another hex.
3. Map objects.
- Impassable object. "Rock".
- Trap object. Passage damages passer.
- Destructable object. Player can destroy it, like PCB in supaplex.
- Victory Blocker object. Exactly identical to destructable object, but victory is impossible until it is destroyed.
- Movable object. Player can push it, like crates in sokoban.
- Victory object. Other than its victory magic, exactly identical to passable object.
4. Items. All items will have at least one and at most three properties selected from the defined list (provided a slot-indicating property is always chosen), with an associated charge (from 1 to 100) that is decreased by 1 every time the item is used, arbitrarily divided in "common" (gray), "rare" (white), "mystic" (green), "epic" (blue) and "legendary" (orange) fifths. Once the charges of a property are drawn to 0, it is deleted. If the slot property is deleted, the item is destroyed.
Available properties :
- "of the Tractor" (charges). When activated by player, a tractor item will pull whatever movable object drawing one charge per step.
- "of Healing" (charges). Adds 1% of player HP to player on each step, drawing one charge.
- "Cursed" (charges). Substracts 1% of the player's coins (but not less than 1) each step and draws one charge. If player has no coins, one health is substracted instead.
- "Spyked" (charges). Returns a tenth of melee damage to attacker.
- "of Mirroring" (charges). Returns a tenth of magic (ranged) damage to attacker drawing one charge.
- "Staff" (charges). Halves incoming melee damage, drawing one charge per hit. Right hand.
- "Orb" (charges). Halves incoming magic damage, drawing one charge per cast. Left hand.
- "Axe" (charges). Doubles player's melee damage, drawing one charge per cast. Right hand.
- "Wand" (charges). Doubles player's magic damage, drawing one charge per cast. Left hand.
- "Helmet" (charges). Substracts 6 from any melee damage incoming and draws one charge. Head.
- "Mail" (charges). Substracts 13 from any melee damage incoming and draws one charge. Chest.
- "Cuisses" (charges). Substracts 10 from any melee damage incoming and draws one charge. Legs.
- "Hat" (charges). Substracts 6 from any magic damage incoming and draws one charge. Head.
- "Robe" (charges). Substracts 13 from any magic damage incoming and draws one charge. Chest.
- "Hosen" (charges). Substracts 10 from any magic damage incoming and draws one charge. Legs.
5. Spells. All spells have 3 levels, Novice, Advanced, Master.
- Missile. Goes straight, delivering 1x / 2x / 3x damage to 1 / 2 / 3 enemies or objects in path.
- Fireball. Goes straight, explodes once it hits something for 1 / 2 / 3 damage in a 1 / 2 / 3 radius and 1 / 2 / 3 burning damage for 1 / 2 / 3 turns.
- Lightning. Hits closest enemy 1 / 2 / 3 hexes away for 1x / 2x / 3x damage and then jumps to closest enemy or object at a similar distance up to 1 / 2 / 3 times.
- Ice Spray. Hits 1 / 4 / 9 adjacent hexes, reducing speed of enemies inside by 1 / 2 / 3 for 1 / 2 / 3 turns.
- Jump. Moves player 1 / 2 / 3 hexes against gravity vector plus 1 hex in a random direction after that.
- Teleport. Moves player 2 / 3 / 4 hexes in any direction, through any obstacles.
6. Player. Player base health is 100, Player accrues experience for killing NPCs. Every 256 experience increases player level by 1, adding 1 skill point to be used for any skill of player's choice. Available player skills :
- "Bruiser". Increases player melee damage by 1 (in addition to map base).
- "Wizard". Increases player spell damage by 1 (in addition to map base).
- "Tough". Increases player hitpoints by 1.
7. NPCs. Map defined, must specify their name, skills, spells, items, hp, coin and experience drop as well as a movement / use model. Can be aligned with Player or not, and don't have to be aligned with each other.
8. Campaign.
- Acyclic graph of however many maps, think v. Alternate routes are permitted.
- Defines icons to be used for all objects / npcs etc inside all maps.
- Defines whether health replenishes at beginning of map or not.
- Defines whether shop is available in between maps and what it may contain.
- Defines whether maps can be replayed or not, and what to do with the results (player keeps whole thing, or only delta from last run, if positive).
- Defines gravity vector (6 possible directions, or no gravity).
Evidently, both classical Sokoban and classical Supaplex can be reimplemented as subsets of this design ; so my question is twofold : who wants to build the engine for this ? And, who wants to translate the two datasets for it ?