# Rewtromon

---
Print the cards | Print the game | Discord
--- **Rewtromon** is a Rewtro game that loads 2 creatures QR-Cards and let them auto-battle. The creature graphics, sounds, and moves data are stored in the QR-Card itself. There is no monsters database so you can freely ~~hack~~ create and share your Rewtromon creatures and share them as you want! It can be used as a sample if you want to learn how to load QR data within a Rewtro game. ## Rewtrodex These are the _official_ Rewtromon creatures stats. You can find their JSON files in the [carts](carts/) directory. | File | ID | Name | Type | Move 1 | Move 2 | Move 3 | Move 4 | |---|---|---|---|---|---|---|---| | [JSON](carts/K-010-RWM-001-stampadian.json) | 001 | STAMPADIAN | `E` Earth | Tree Slice (10dmg / `T` 15dmg) | Cross Out (10dmg / `F` 5dmg) | Eraser (10dmg) | Reroll (+5HP) | | [JSON](carts/K-010-RWM-002-rogue.json)| 002 | ROGUE | `T` Thunder | Bolt Bubble (10dmg / `W` 15dmg) | Pierce (10dmg / `E` 5dmg) | Waterfall (5dmg) | Snack (+10HP) | | [JSON](carts/K-010-RWM-003-jin.json)| 003 | JIN | `W` Water | Splash (10dmg / `F` 15dmg) | Wave (10dmg / `T` 5dmg) | Squid Bump (15dmg) | Sadness (Nothing) | | [JSON](carts/K-010-RWM-004-datamapsi.json)| 004 | DATAMAPS-I | `F` Fire | Burning Lie (10dmg / `E` 15dmg) | Burnt Proof (10dmg / `W` 5dmg) | False Truth (10dmg) | Plan (+5HP) | ## Rewtromon format Rewtromon creatures are basically Rewtro carts with `RWM` header containing a single scene. To set the cart header, set `"metadata": { "cartPrefix": "RWM" }` in your QR-Cart JSON file. ``` "metadata": { "title": "RWM001 - Stampadian", "cartPrefix": "RWM", "cardTitle": "Stampadian", "cardNumber": "001", "cardNote": "Play with Rewtromon!" } ``` ### Sounds The creature sounds in the standard Rewtro sound format. Sound `1` is the creature verse and IDs `3`, `4`, `5`, `6` are the matching moves sounds. ``` { "id": "1", "wave": "breaker", "attack": 43, "sustain": 127, "decay": 127, "release": 127, "frequencyJump1onset": 76, "frequencyJump1amount": 155, "frequencyJump2onset": 209, "frequencyJump2amount": 104 } ``` ### Images The single `graphics` image includes the whole creature spritesheet. You can find a GIMP source model [here](carts/graphics/sources/rewtromon.xcf). I suggest you to use the `monocolor` format as it uses less bytes. ``` { "id": "graphics", "image": { "data": { "_file": "graphics/rewtromon/001-stampadian.png" }, "format": "monocolor" } } ``` ### Sprites The creature name is in the `A` and `1` sprites. Customizable values are: | Attribute | Meaning | Example | |---|---|---| |`text`| The uppercase creature name | `"STAMPADIAN"` | ``` { "id": "A", "textColor": 1, "text": "STAMPADIAN", "x": 0, "y": 0, "width": 160 }, { "id": "1", "textColor": 1, "text": "STAMPADIAN", "x": 80, "y": 64, "width": 160 } ``` The creature sprites are `B` (back facing) and `2` (front facing). The sprites in the example are usually OK for any creature - just set the its type in both sprites `value1`. | Attribute | Meaning | Example | |---|---|---| |`value1`| The creature type (`1` for Earth, `2` for Thunder, `3` for Water, `4` for Fire) | `1` | ``` { "id": "B", "graphicsX": 0, "graphicsY": 60, "x": 104, "y": 16, "width": 32, "height": 20, "scale": 2, "value0": 2, "value1": 1 }, { "id": "2", "graphicsX": 0, "graphicsY": 40, "x": 24, "y": 74, "width": 32, "height": 20, "scale": 2, "value0": 4, "value1": 1 } ``` The creature moves are sprites `3`, `4`, `5`, and `6`. Customizable values are: | Attribute | Meaning | Example | |---|---|---| |`animations`| The move animation, if any | _See Rewtro sprites documentation_ | |`animation`| The move animation ID to be played | _See Rewtro sprites documentation_ | |`value0`| `0` targets the enemy (i.e., attacking), `1` targets itself (i.e., healing) | `0` | |`value1`| Target shake animation duration in (1 = 2 frames). Use 0-26 even numbers | `5` | |`value2`| Health change (negative for attacking, positive for healing) | `-5` | |`value3`| Target element for using special health change instead (`0` for no special health change, `1` for Earth, `2` for Thunder, `3` for Water, `4` for Fire) | `1` | |`value4`| Special health change (negative for attacking, positive for healing) | `-10` | |`value5`| Text displayed when the move is performed. The creature name is automatically prepended | `"PACKS A~PUNCH!"` | ``` { "id": "3", "graphicsX": 32, "graphicsY": 240, "width": 8, "height": 8, "animations": [ { "frames": [ 0, 1, 2, 3, 4 ], "speed": 2, "mode": "once" } ], "animation": 0, "value0": 0, "value1": 5, "value2": -10, "value3": 2, "value4": -15, "value5": "ATTACKS WITH~TREE SLICE!" },{ "id": "6", "graphicsX": 32, "graphicsY": 144, "width": 8, "height": 8, "animations": [ { "frames": [ 0, 1, 2, 3 ], "speed": 2, "mode": "bounce" } ], "animation": 0, "value0": 1, "value1": 0, "value2": 5, "value5": "REROLL FOR~BETTER RESULTS!" } ``` ### Testing You can test your creature sounds and animations temporarily adding these `tilemaps` and `code` sections to your cart JSON. Remember to remove them before finalizing it! ``` "tilemaps":[ { "map":[ "A1B2"], "backgroundColor":8 } ], "code":[ { "when":[{"as":"scene","if":[{"itsAttribute":"value5","is":">","_":0}]}], "then":[ { "code":[{ "when":[{"if":[{"itsAttribute":"value5","is":"%%","_":2}]}], "then":[{ "code":[{ "when":[{"ids":"B2"}], "then":[{"sum":[{"x":[{"_":1}]}]}] }] }], "else":[{ "code":[{ "when":[{"ids":"B2"}], "then":[{"subtract":[{"x":[{"_":1}]}]}] }] }] }] }, {"subtract":[{"value5":[{"_":1}]}]} ] }, { "when":[{"as":"scene","if":[{"itsAttribute":"timer","is":"==","_":0}]}], "then":[ {"flags":"A","remove":true,"playAudio":[{"_":"3"}]}, { "code":[ { "when":[{"id":"B"}], "then":[ { "spawn":[{"ids":[{"_":"3"}]}], "set":[{ "scale":[{"as":"that","attribute":"value0"}], "flags":[{"_":"A"}] }] },{ "as":"scene", "set":[{ "value5":[{"id":"3","attribute":"value1"}] }], "multiply":[{ "value5":[{"_":2}] }] } ] },{ "when":[{"id":"2"}], "then":[{ "spawn":[{"ids":[{"_":"3"}]}], "set":[{ "scale":[{"as":"that","attribute":"value0"}], "flags":[{"_":"A"}] }] }] } ] } ] }, { "when":[{"as":"scene","if":[{"itsAttribute":"timer","is":"==","_":50}]}], "then":[ {"flags":"A","remove":true,"playAudio":[{"_":"4"}]}, { "code":[ { "when":[{"id":"B"}], "then":[ { "spawn":[{"ids":[{"_":"4"}]}], "set":[{ "scale":[{"as":"that","attribute":"value0"}], "flags":[{"_":"A"}] }] },{ "as":"scene", "set":[{ "value5":[{"id":"4","attribute":"value1"}] }], "multiply":[{ "value5":[{"_":2}] }] } ] },{ "when":[{"id":"2"}], "then":[ { "spawn":[{"ids":[{"_":"4"}]}], "set":[{ "scale":[{"as":"that","attribute":"value0"}], "flags":[{"_":"A"}] }] } ] } ] } ] }, { "when":[{"as":"scene","if":[{"itsAttribute":"timer","is":"==","_":100}]}], "then":[ {"flags":"A","remove":true,"playAudio":[{"_":"5"}]}, { "code":[ { "when":[{"id":"B"}], "then":[ { "spawn":[{"ids":[{"_":"5"}]}], "set":[{ "scale":[{"as":"that","attribute":"value0"}], "flags":[{"_":"A"}] }] },{ "as":"scene", "set":[{ "value5":[{"id":"5","attribute":"value1"}] }], "multiply":[{ "value5":[{"_":2}] }] } ] },{ "when":[{"id":"2"}], "then":[ { "spawn":[{"ids":[{"_":"5"}]}], "set":[{ "scale":[{"as":"that","attribute":"value0"}], "flags":[{"_":"A"}] }] } ] } ] } ] }, { "when":[{"as":"scene","if":[{"itsAttribute":"timer","is":"==","_":150}]}], "then":[ {"flags":"A","remove":true,"playAudio":[{"_":"6"}]}, { "code":[ { "when":[{"id":"B"}], "then":[ { "spawn":[{"ids":[{"_":"6"}]}], "set":[{ "scale":[{"as":"that","attribute":"value0"}], "flags":[{"_":"A"}] }] },{ "as":"scene", "set":[{ "value5":[{"id":"6","attribute":"value1"}] }], "multiply":[{ "value5":[{"_":2}] }] } ] },{ "when":[{"id":"2"}], "then":[ { "spawn":[{"ids":[{"_":"6"}]}], "set":[{ "scale":[{"as":"that","attribute":"value0"}], "flags":[{"_":"A"}] }] } ] } ] } ] }, { "when":[{"as":"scene","if":[{"itsAttribute":"timer","is":"==","_":200}]}], "then":[ {"set":[{"timer":[{"_":-1}]}]} ] } ] ``` ### Creating the QR-Card Once you're happy with your creature JSON file, place it in the `carts/` directory, open the SDK page, select _QR-Card: Default_ format from the combo box, and hit the print icon on your creature JSON file. It will download the card `SVG` file to be opened, pimped, and printed with your favorite SVG editor (I suggest you [Inkscape](https://inkscape.org/)). Make sure to have the the [Jost](https://indestructibletype.com/Jost.html) free font (Jost-500-Medium.otf) installed.