diff --git a/MODDING.md b/MODDING.md index 28ee5f9..a99f2ef 100644 --- a/MODDING.md +++ b/MODDING.md @@ -32,6 +32,8 @@ There's two folders inside resources; "characters" and "font". "font" is just a font containing the font used in the selection screen. That's literally it. +"common" holds files characters share (sounds, particles, the cursor and so on). Whenever a character names a file, the game looks in the character's folder first, then in "common", so a character can use anything there as is, or replace it by having its own file at the same path. + EVERYTHING ELSE is stored inside character folders in the "characters" folder; one folder per character, named however you like (the folder name is also the name of its save file). This has all data associated with characters. Think of characters more as tailored game experiences rather than literally being just the characters. Not only is there the character graphics, but backgrounds, items, parameters, etc. These are intensely customizable to suit whatever experience you'd like (within the confines of the engine, of course). Shweet's Sim uses [JSON](https://en.wikipedia.org/wiki/JSON) files for its data; make sure to brush up on the format. A character folder holds these files: @@ -42,7 +44,11 @@ Shweet's Sim uses [JSON](https://en.wikipedia.org/wiki/JSON) files for its data; `character.json` is required; a folder without one isn't listed. The other two are optional, but most real characters will want both. -Every path in these files is relative to the character's folder (e.g. `"sfx/blip.ogg"` or `"gfx/items/apple.png"`). Paths inside an .anm2 are relative to the .anm2. Anything left out takes its default, so only write what you need. Wherever sounds are listed, one is picked at random each time. +Every path in these files is relative to the character's folder (e.g. `"sfx/blip.ogg"`), looked for there and then in "common". Paths inside an .anm2 are relative to the .anm2, and looked for the same way. Anything left out takes its default, so only write what you need. + +Wherever sounds are listed, one is picked at random each time. A list can also be a single path, and a path with a `*` stands for every file it matches, e.g. `"sfx/gurgle*.ogg"`; drop a new variant in the folder and it's included. + +Times are in seconds and chances in percent. The game warns (in its log) about keys it doesn't know, which are usually typos, and files it can't find. If you're making your own character, your best bet would probably be just to copy the Snivy character and edit it based on your needs, just as a helpful start. @@ -63,6 +69,7 @@ This is the main character file where much of the functionality is stored. | Key | Type | Meaning | |---|---|---| +| `id` | string | What the character's save is named after. Defaults to the folder name; set it to keep the save when renaming the folder. | | `name` | string | Name of the character; will appear in dialogue, stats, etc. Defaults to the folder name. | | `description` | string | A general description of the character; will show in the Select screen. | | `credits` | string | Credits text shown in the Select screen's Credits tab. | @@ -79,9 +86,9 @@ This is the main character file where much of the functionality is stored. | `caloriesToKilogram` | float | How many kilograms each calorie digested becomes. | | `digestionRate` | float, %/second | The base digestion rate. | | `digestionRateMin`, `digestionRateMax` | float, %/second | The range the digestion rate stays within. | -| `digestionTime` | int, ticks | When digesting, the digestion bar will count down, and then when it hits 0, the current calories will be digested. This determines how long this takes. | +| `digestionTime` | float, seconds | When digesting, the digestion bar will count down, and then when it hits 0, the current calories will be digested. This determines how long this takes. | | `blinkChance` | float, % | Chance each tick to blink. | -| `gurgleChance` | float | How often the character will gurgle (see `sounds`) per tick, scaled by how full they are. | +| `gurgleChance` | float, % | Chance each tick of a gurgle (see `sounds`), scaled by how full the character is. | | `gurgleCapacityMultiplier` | float | Multiplies the gurgle chance at full capacity. Higher capacity = higher gurgle chance. | | `dialoguePool` | string | The character's base dialogue pool for "How are you feeling?". This is effectively "Stage 1"'s dialogue; each stage should have its own dialogue pool. | @@ -157,12 +164,12 @@ The areas which will expand based on how full the character is and their progres | `idleOnEnd` | string | The idle animation the character uses after interacting (e.g. turning around). | | `dialoguePool` | string | The dialogue pool which will be drawn from when interacting. | | `dialoguePoolFull` | string | Dialogue pool used when the character is over capacity. | -| `dialogueCooldown` | int, ticks | Ticks before interacting can start new dialogue again. | +| `dialogueCooldown` | float, seconds | Time before interacting can start new dialogue again. | | `digestionClick` | float, % | Digestion added each click. | -| `digestionHover` | float, % | Digestion added each tick the cursor moves while held. | +| `digestionHover` | float, %/second | Digestion added while the cursor moves, held. | | `scaleAmplitude` | float, % | Size of the scale effect on clicking. | | `scaleCycles` | float | How many oscillations the scale effect performs. Defaults to 1. | -| `scaleTime` | float, ticks | How long the scale effect lasts. Defaults to 20. | +| `scaleTime` | float, seconds | How long the scale effect lasts. Defaults to a third of a second. | | `sounds` | paths | Sounds played when interacting. | | `particles` | strings | Particles (see `particles`) spawned when interacting. | @@ -208,46 +215,46 @@ An object of particles by name, each with the `anm2` and `animation` it plays on # items.json -Has all items and their parameters, alongside additional behavior. +Has all items and their parameters, alongside additional behavior. Items share one anm2, whose spritesheet holds every item as a region named after it (pack them in Anm2Ed with "Make Spritesheet Regions"). Each item shows its region in place of whatever the anm2's frames show, with the region's own size and pivot. ```json { "anm2": "gfx/items/item.anm2", - "spawnDelay": 600, - "categories": {"Food": "edible", "Tool": "tool"}, + "spawnDelay": 10, "rarities": {"Common": {"weight": 1, "sound": "sfx/common.ogg"}}, "items": [ - {"name": "Apple", "texture": "gfx/items/apple.png", "category": "Food", "rarity": "Common", "calories": 95} + {"name": "Apple", "category": "Food", "use": "edible", "rarity": "Common", "calories": 95} ] } ``` | Key | Type | Meaning | |---|---|---| -| `anm2` | path | The base anm2 file that items will use. | -| `spritesheet` | int | The spritesheet of the anm2 that an item's `texture` replaces. Defaults to 0. | -| `spawnDelay` | int, ticks | Base cooldown before another item can be spawned. | +| `anm2` | path | The anm2 that items use. | +| `spritesheet` | int | The spritesheet of the anm2 holding the items' regions. Defaults to 0. | +| `spawnDelay` | float, seconds | Base cooldown before another item can be spawned. | | `spawnDelayMultiplier` | float | Multiplies the spawn delay once per character stage. Values below `1.0` make item spawning faster as stage increases. | | `spawnLimit` | int | Maximum number of items in the world at once. | | `sounds` | | `bounce` (an item hitting a floor/wall/ceiling), `dispose` (an item disposed of), `summon` (an item spawned) and `newItem` (an item found for the first time). | | `particles` | | `dispose` and `summon`. | -| `categories` | object | The kinds of items, by name; will appear in Catalog tooltips. Each says how its items are used: `edible` (food that can be eaten) or `tool`. | | `rarities` | object | Rarities, by name. Each has a `weight` (relative chance of spawning) and a `sound` that plays when one spawns. | ### items | Key | Type | Meaning | |---|---|---| -| `name` | string | The name of the item. Saves keep items by name. | +| `name` | string | The name of the item. | +| `id` | string | What saves keep the item by. Defaults to its name; set it to keep saves when renaming the item. | | `description` | string | Flavor text for the item. | -| `texture` | path | The texture the item uses. | -| `anm2` | path | The item's own anm2, if needed. | -| `category` | string | The item's category. | +| `region` | string | The region of the items' spritesheet it shows. Defaults to its name. | +| `anm2` | path | An anm2 of its own, if it animates differently. | +| `category` | string | The item's category, shown in the Catalog. | +| `use` | string | `edible` (food that can be eaten) or `tool`. | | `rarity` | string | The item's rarity. | | `flavor` | string | Flavor text (for food); honestly has no meaning but whatever. | | `calories` | float | The amount of calories the item has (if food). | | `capacityBonus` | float | Capacity increase granted as the item is eaten. | | `digestionBonus` | float, %/second | The digestion rate added as the item is eaten. | -| `gravity` | float | The item's gravity; will use the area's if not given. | +| `gravity` | float | The item's gravity, in pixels per tick (a 60th of a second); will use the area's if not given. | | `color` | [r, g, b], 0-1 | Optional UI color for the item. | | `isToggleSpritesheet` | bool | When used as a tool on the character, will toggle the character's spritesheet (in Pokemon terms, toggling normal/shiny palettes). | @@ -257,18 +264,23 @@ The collection of character dialogue; likely the biggest file, depending on your ```json { - "delay": 2, - "blipDelay": 2, - "blip": ["sfx/blip.ogg"], - "pauses": {".": {"delay": 5}}, - "hooks": {"Start": "Start", "Eat": "Eat"}, - "pools": {"Eat": ["Eat1", "Eat2"]}, + "speed": 30, + "blipEvery": 2, + "blip": "sfx/blip.ogg", + "pauses": {".": {"delay": 0.08}}, + "hooks": {"Start": "Intro"}, "entries": { - "Start": { - "text": "Hey there, human!", - "animation": "Smug", - "choices": [{"text": "Hi!", "next": "Start2"}], - "effects": [{"type": "shake", "start": 4, "end": 9}] + "Intro": { + "isScene": true, + "lines": [ + {"animation": "Appear"}, + {"text": "Hey there, [shake]human[/shake]!", "animation": "Smug"} + ], + "choices": [{"text": "Hi!", "next": "Hello"}] + }, + "Eat1": { + "pools": ["Eat"], + "lines": [{"text": "[big]Yum![/big]"}] } } } @@ -276,35 +288,37 @@ The collection of character dialogue; likely the biggest file, depending on your | Key | Type | Meaning | |---|---|---| -| `delay` | int, ticks | How many ticks pass before the next dialogue character is revealed. | -| `blipDelay` | int | How many displayed dialogue characters pass between blip sounds. `3` means every third displayed character. | -| `blip` | paths | Dialogue blip sounds, played periodically while text reveals. | -| `pauses` | object | Extra `delay` (in ticks) after particular characters. With `isSilent`, talking and blips also pause during it. | -| `hooks` | object | Connects gameplay events to a pool (or else an entry) by name. The hook names are `Start`, `End`, `Help`, `StageUp`, `Random`, `Feed`, `FeedFull`, `Eat`, `EatFull`, `Full`, `Throw`, `LowCapacity`, `Digest`, `FoodTaken` and `FoodTakenFull`. `Random` and `Help` add the "Let's chat!" and "Help" buttons. | -| `pools` | object | A "pool" of dialogue is a list of entry labels, one picked at random when used. | +| `speed` | float | How many characters are revealed per second. | +| `blipEvery` | int | How many characters pass between blip sounds. `3` means every third character. | +| `blip` | sounds | Dialogue blip sounds, played periodically while text reveals. | +| `pauses` | object | Extra `delay` (in seconds) after particular characters. With `isSilent`, talking and blips also pause during it. | +| `hooks` | object | Gameplay events play the pool (or else the entry) named after them: `Start`, `End`, `Help`, `StageUp`, `Random`, `Feed`, `FeedFull`, `Eat`, `EatFull`, `Full`, `Throw`, `LowCapacity`, `Digest`, `FoodTaken` and `FoodTakenFull`. Hooks only lists ones that play something else. `Random` and `Help` add the "Let's chat!" and "Help" buttons. | | `entries` | object | Each bit of dialogue is referred to as an "entry", by its label. | ### entries +An entry is lines played in order, after which it offers its choices or moves on to the next entry. + | Key | Type | Meaning | |---|---|---| -| `text` | string | The actual dialogue content of the entry. Supports Unicode, provided the font contains the characters. An entry without text just plays its animation. | -| `animation` | string | A character animation that will play at the beginning of the dialogue. Again, just the base name for the animation, no stage numbers. | -| `next` | string | The label of the entry that will follow this one. If no next entry, the text will not continue. Make sure to connect these. | -| `choices` | list | Dialogue can be branching; each choice has its `text` (shown as a button) and the `next` entry it leads to. | -| `effects` | list | Effects over the text, each with a `type`, and a `start` and `end` (the characters it covers, from `start` up to `end`). | +| `lines` | list | Each with its `text` and an `animation` (base name) that plays as it starts. A line without text just plays its animation, moving on once it ends. | +| `choices` | list | Dialogue can be branching; each choice has its `text` (shown as a button after the last line) and the `next` entry it leads to. | +| `next` | string | The entry that follows the last line. With neither choices nor next, the dialogue ends there. | +| `pools` | strings | The pools (lists of entries picked from at random) the entry is in. | +| `isScene` | bool | Hides windows and items and disables interaction until the dialogue reaches the end. A scene started in the middle of another is ignored. | -### effects -| Type | Meaning | +### markup +Effects go right in a line's text, as tags. A tag over part of the text has a closing tag: `[shake]too bad[/shake]`. The rest happen where they stand: `[screenshake]BOOM`. `[[` is a plain `[`. + +| Tag | Meaning | |---|---| -| `color` | Colors the text, by `color` ([r, g, b], 0-1). | -| `big`, `small` | Fixed text scales. | -| `oscillation`, `shake` | Moves the text, with engine defaults. | -| `silent` | Suppresses blips and character talking for its range. | -| `screenshake` | Shakes the screen when its `start` comes up. | -| `sound` | Plays its `sound` (a path) when its `start` comes up. | -| `animation` | Plays its `animation` when its `start` comes up. | -| `delay` | Changes the reveal speed to its `delay` (in ticks) from its `start` on. | -| `scene` | Hides windows and items and disables interaction until the dialogue chain reaches and finishes its last entry. If another scene appears while one is active, it is ignored. | +| `[color=r g b]` | Colors the text (0-1 each), e.g. `[color=1 0.25 0.25]`. | +| `[big]`, `[small]` | Fixed text scales. | +| `[wave]`, `[shake]` | Moves the text, with engine defaults. | +| `[silent]` | Suppresses blips and character talking. | +| `[screenshake]` | Shakes the screen. | +| `[sound=path]` | Plays a sound. | +| `[animation=Name]` | Plays a character animation. | +| `[delay=seconds]` | Changes the reveal speed to one character per this many seconds from here on. | # Saves @@ -325,5 +339,5 @@ Stores general game settings and configuration; beyond individual characters. | `last_character` | The character being played at exit, which the game continues on start. | | `console` | `1` enables the developer console (the grave key). | -## saves/.txt -A character's progress: their weight, calories, capacity, digestion, totals and playtime, the camera, and the items found (`discovered=` lines) and lying in the world (`item=` lines, as position, velocity, rotation and name). +## saves/.txt +A character's progress: their weight, calories, capacity, digestion, totals and playtime, the camera, and the items found (`discovered=` lines) and lying in the world (`item=` lines, as position, velocity, rotation and id). diff --git a/resources/characters/braixen/character.json b/resources/characters/braixen/character.json index 5f72cc4..b9946e5 100644 --- a/resources/characters/braixen/character.json +++ b/resources/characters/braixen/character.json @@ -16,9 +16,9 @@ "caloriesToKilogram": 0.001, "digestionRate": 1.5, "digestionRateMax": 4.5, - "digestionTime": 120, + "digestionTime": 2, "blinkChance": 0.5, - "gurgleChance": 0.0005, + "gurgleChance": 0.05, "gurgleCapacityMultiplier": 10, "dialoguePool": "Stage1", "stages": [ @@ -41,10 +41,7 @@ "expandAreas": [ {"layer": "Torso", "null": "Belly", "scaleMax": 1.25} ], - "sounds": { - "digest": ["sfx/digest1.ogg", "sfx/digest2.ogg", "sfx/digest3.ogg"], - "gurgle": ["sfx/gurgle1.ogg", "sfx/gurgle2.ogg", "sfx/gurgle3.ogg", "sfx/gurgle4.ogg", "sfx/gurgle5.ogg"] - }, + "sounds": {"digest": "sfx/digest*.ogg", "gurgle": "sfx/gurgle*.ogg"}, "interactTypes": { "Rub": { "glyph": "2", @@ -58,18 +55,18 @@ "glyph": "3", "cursorHover": "SmackHover", "cursorActive": "Smack", - "dialogueCooldown": 300, + "dialogueCooldown": 5, "digestionClick": 0.25, "scaleAmplitude": 1, "scaleCycles": 3, - "sounds": ["sfx/smack1.ogg", "sfx/smack2.ogg", "sfx/smack3.ogg", "sfx/smack4.ogg", "sfx/smack5.ogg"], + "sounds": "sfx/smack*.ogg", "particles": ["Circle"] }, "Kiss": { "glyph": "4", "cursorHover": "KissHover", "cursorActive": "Kiss", - "sounds": ["sfx/kiss1.ogg", "sfx/kiss2.ogg", "sfx/kiss3.ogg", "sfx/kiss4.ogg", "sfx/kiss5.ogg"], + "sounds": "sfx/kiss*.ogg", "particles": ["Circle"] }, "Turn Around": { @@ -80,7 +77,7 @@ }, "interactAreas": [ {"type": "Rub", "null": "Head", "dialoguePool": "HeadRub", "dialoguePoolFull": "HeadRubFull"}, - {"type": "Rub", "null": "Belly", "cursorActive": "Grab", "dialoguePool": "BellyRub", "dialoguePoolFull": "BellyRubFull", "digestionHover": 0.1}, + {"type": "Rub", "null": "Belly", "cursorActive": "Grab", "dialoguePool": "BellyRub", "dialoguePoolFull": "BellyRubFull", "digestionHover": 6}, {"type": "Kiss", "null": "Mouth", "dialoguePool": "MouthKiss", "dialoguePoolFull": "MouthKiss"}, {"type": "Kiss", "null": "Belly", "dialoguePool": "BellyKiss", "dialoguePoolFull": "BellyKiss"}, {"type": "Smack", "null": "Belly", "layer": "Torso", "dialoguePool": "BellySmack", "dialoguePoolFull": "BellySmack"}, @@ -103,7 +100,7 @@ "sounds": { "grab": ["sfx/grab.ogg"], "release": ["sfx/release.ogg"], - "throw": ["sfx/throw.ogg", "sfx/throw2.ogg", "sfx/throw3.ogg"] + "throw": "sfx/throw*.ogg" }, "particles": { "grab": ["Circle"] @@ -117,7 +114,7 @@ "sounds": { "open": ["sfx/open.ogg"], "close": ["sfx/close.ogg"], - "hover": ["sfx/hover.ogg", "sfx/hover2.ogg", "sfx/hover3.ogg"], + "hover": "sfx/hover*.ogg", "select": ["sfx/select.ogg"], "cheats": ["sfx/cheatsActivated.ogg"] } diff --git a/resources/characters/braixen/dialogue.json b/resources/characters/braixen/dialogue.json index 1a3f7a1..af4fab5 100644 --- a/resources/characters/braixen/dialogue.json +++ b/resources/characters/braixen/dialogue.json @@ -1,347 +1,134 @@ { - "delay": 2, - "blipDelay": 2, + "speed": 30, + "blipEvery": 2, "blip": ["sfx/blip.ogg"], "pauses": { - ".": {"delay": 8, "isSilent": true}, - ",": {"delay": 8, "isSilent": true}, - "!": {"delay": 8, "isSilent": true}, - "?": {"delay": 8, "isSilent": true} + ".": {"delay": 0.1333, "isSilent": true}, + ",": {"delay": 0.1333, "isSilent": true}, + "!": {"delay": 0.1333, "isSilent": true}, + "?": {"delay": 0.1333, "isSilent": true} }, "hooks": {"Start": "StartAppear"}, - "pools": { - "ButtSmack": ["ButtSmack", "ButtSmack2", "ButtSmack3", "ButtSmack4", "ButtSmack5", "ButtSmack6", "ButtSmack7", "ButtSmack8", "ButtSmack9", "ButtSmack10"] - }, "entries": { "StartAppear": { - "animation": "Appear", - "next": "Start", - "effects": [ - {"type": "scene"} - ] - }, - "Start": { - "text": "Lovely, lovely, lovely!! You must be my new apprentice~!", - "animation": "Sweet", + "isScene": true, + "lines": [ + {"animation": "Appear"}, + {"text": "Lovely, lovely, [wave]lovely[/wave]!! You must be my [wave][color=1 0.25 0.25]new [screenshake][sound=sfx/boom.ogg]apprentice[/color][/wave]~!", "animation": "Sweet"} + ], "choices": [ {"text": "W-wait, huh?!", "next": "StartA-1"}, {"text": "That's me!", "next": "StartB-1"} - ], - "effects": [ - {"type": "oscillation", "start": 40, "end": 54}, - {"type": "oscillation", "start": 16, "end": 22}, - { - "type": "color", - "start": 40, - "end": 54, - "color": [1, 0.25, 0.25] - }, - {"type": "screenshake", "start": 44, "end": 44}, - {"type": "sound", "start": 44, "end": 44, "sound": "sfx/boom.ogg"} ] }, "StartA-1": { - "text": "I'm not mistaken! My blazing bright eyes can see into your soul! Without a doubt, you are my apprentice!", - "animation": "Surprised", - "next": "StartA-2", - "effects": [ - { - "type": "color", - "start": 93, - "end": 103, - "color": [1, 0.25, 0.25] - } - ] + "lines": [ + {"text": "I'm not mistaken! My blazing bright eyes can see into your soul! Without a doubt, you are my [color=1 0.25 0.25]apprentice[/color]!", "animation": "Surprised"} + ], + "next": "StartA-2" }, "StartB-1": { - "text": "Excellent! You've gotten the message! Splendid! So splendid!", - "animation": "Wicked", - "next": "StartA-2", - "effects": [ - { - "type": "color", - "start": 93, - "end": 103, - "color": [1, 0.25, 0.25] - }, - {"type": "shake", "start": 51, "end": 59} - ] + "lines": [ + {"text": "Excellent! You've gotten the message! Splendid! So [shake]splendid[/shake]!", "animation": "Wicked"} + ], + "next": "StartA-2" }, "StartA-2": { - "text": "Of course you would be! You've got a certain...spirit, about you! Your own ember, burning furiously within you!", - "animation": "Wicked", - "next": "StartA-3", - "effects": [ - { - "type": "color", - "start": 47, - "end": 53, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 76, - "end": 81, - "color": [1, 0.25, 0.25] - }, - {"type": "shake", "start": 91, "end": 100} - ] - }, - "StartA-3": {"text": "Now, I must say...my practice isn't perfect yet. I am still a learner in the Art, and my pursuit is...unique.", "animation": "Thinking", "next": "StartA-4"}, - "StartA-4": { - "text": "The school I'm enrolled in...encompasses only me. I'm the founder, and the sole teacher and student! Until you came along, that is. Call me Braixen. I shall be your companion!", - "animation": "Smug", - "next": "StartA-5", - "effects": [ - { - "type": "color", - "start": 140, - "end": 147, - "color": [1, 0.25, 0.25] - } - ] - }, - "StartA-5": {"text": "I should tell you about my philosophy, then! What the Art really is! To master the eternal flame, the unyielding ember, one must embrace it...fully!", "animation": "Thinking", "next": "StartA-6"}, - "StartA-6": { - "text": "You see, my apprentice, what is more \"embracing\" than using...one's own body for the sake of the Art?! I can't believe no one else has considered such a thing!!", - "animation": "Excited", - "next": "StartA-7", - "effects": [ - { - "type": "color", - "start": 62, - "end": 76, - "color": [1, 0.25, 0.25] - }, - {"type": "oscillation", "start": 62, "end": 76} - ] - }, - "StartA-7": { - "text": "Listen closely! Your purpose is to turn my thin, meager body into an splendid host of the Art! My stomach a vast, boiling, bubbling cauldron! My physique abundant with heat and energy!", - "animation": "Stern", - "next": "StartA-8", - "effects": [ - {"type": "oscillation", "start": 69, "end": 82} - ] - }, - "StartA-8": { - "text": "...hard to understand? Fine, then, I'll use more pedestrian language. I want you to make me fat! As fat as possible!", - "animation": "Wicked", - "next": "StartA-9", - "effects": [ - {"type": "big", "start": 69, "end": 96}, - { - "type": "color", - "start": 92, - "end": 96, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 101, - "end": 105, - "color": [1, 0.25, 0.25] - }, - {"type": "screenshake", "start": 92, "end": 93} - ] - }, - "StartA-9": { - "text": "Some have called it \"ridiculous\". Unhealthy. Absurd! Well, I call them lost! Fools who will never truly grasp the reality of the Art!", - "animation": "Pout", - "next": "StartA-10", - "effects": [ - {"type": "shake", "start": 71, "end": 75} - ] - }, - "StartA-10": {"text": "Your role now is to serve me well, and rejoice; for you, my apprentice, shall also scale the mountain of awakening through this!", "animation": "Smug", "next": "StartA-11"}, - "StartA-11": { - "text": "Journey to faraway lands! Battle fierce opponents! Conquer and claim what foodstuffs you can scrounge to stoke the flame inside of my belly!", - "animation": "Horny", - "next": "StartA-12", - "effects": [ - { - "type": "color", - "start": 105, - "end": 121, - "color": [1, 0.25, 0.25] - }, - {"type": "shake", "start": 105, "end": 120} - ] - }, - "StartA-12": { - "text": "It will require dilligence, perserverance and perhaps...sacrifice. But, my student, following the Art shall yield many...rewards.", - "animation": "Horny", - "next": "StartA-13", - "effects": [ - { - "type": "color", - "color": [1, 0.25, 0.25] - }, - {"type": "shake"}, - {"type": "animation", "start": 67, "animation": "Horny"} - ] - }, - "StartA-13": { - "text": "I shall grace you with permanent authority over my vessel. I do not mind. I trust you. You bare the same ember as I. I know this!", - "animation": "Smug", - "next": "StartA-14", - "effects": [ - { - "type": "color", - "color": [1, 0.25, 0.25] - }, - {"type": "shake"}, - {"type": "animation", "animation": "Horny"}, - { - "type": "color", - "start": 105, - "end": 110, - "color": [1, 0.25, 0.25] - } - ] - }, - "StartA-14": { - "text": "Now, venture forth! Heed thy call! Feed me! FEED ME! ...and do know that I can soothe any urges that may arise from witnessing such splendor.", - "animation": "Wicked", - "effects": [ - {"type": "shake", "start": 44, "end": 51}, - { - "type": "color", - "start": 53, - "end": 142, - "color": [0.498039, 0.498039, 0.498039] - }, - {"type": "small", "start": 53, "end": 142}, - {"type": "animation", "start": 5, "animation": "Sweet"} + "lines": [ + {"text": "Of course you would be! You've got a certain...[color=1 0.25 0.25]spirit[/color], about you! Your own [color=1 0.25 0.25]ember[/color], burning [shake]furiously[/shake] within you!", "animation": "Wicked"}, + {"text": "Now, I must say...my practice isn't perfect yet. I am still a learner in the Art, and my pursuit is...unique.", "animation": "Thinking"}, + {"text": "The school I'm enrolled in...encompasses only me. I'm the founder, and the sole teacher and student! Until you came along, that is. Call me [color=1 0.25 0.25]Braixen[/color]. I shall be your companion!", "animation": "Smug"}, + {"text": "I should tell you about my philosophy, then! What the Art really is! To master the eternal flame, the unyielding ember, one must embrace it...fully!", "animation": "Thinking"}, + {"text": "You see, my apprentice, what is more \"embracing\" than using...[color=1 0.25 0.25][wave]one's own body[/wave][/color] for the sake of the Art?! I can't believe no one else has considered such a thing!!", "animation": "Excited"}, + {"text": "Listen closely! Your purpose is to turn my thin, meager body into an [wave]splendid host[/wave] of the Art! My stomach a vast, boiling, bubbling cauldron! My physique abundant with heat and energy!", "animation": "Stern"}, + {"text": "...hard to understand? Fine, then, I'll use more pedestrian language.[big] I want you to make me[color=1 0.25 0.25][screenshake] fat[/color][/big]! As[color=1 0.25 0.25] fat[/color] as possible!", "animation": "Wicked"}, + {"text": "Some have called it \"ridiculous\". Unhealthy. Absurd! Well, I call them [shake]lost[/shake]! Fools who will never truly grasp the reality of the Art!", "animation": "Pout"}, + {"text": "Your role now is to serve me well, and rejoice; for you, my apprentice, shall also scale the mountain of awakening through this!", "animation": "Smug"}, + {"text": "Journey to faraway lands! Battle fierce opponents! Conquer and claim what foodstuffs you can scrounge to[color=1 0.25 0.25][shake] stoke the flam[/shake]e[/color] inside of my belly!", "animation": "Horny"}, + {"text": "It will require dilligence, perserverance and perhaps...sacrifice. [animation=Horny]But, my student, following the Art shall yield many...rewards.", "animation": "Horny"}, + {"text": "[animation=Horny]I shall grace you with permanent authority over my vessel. I do not mind. I trust you. You bare the same [color=1 0.25 0.25]ember[/color] as I. I know this!", "animation": "Smug"}, + {"text": "Now, [animation=Sweet]venture forth! Heed thy call! Feed me! [shake]FEED ME[/shake]! [color=0.498 0.498 0.498][small] ...and do know that I can soothe any urges that may arise from witnessing such splendor.[/small][/color]", "animation": "Wicked"} ] }, "Help": { - "text": "Yes, my dear apprentice! What do you need assistance with?", - "animation": "Curious", + "lines": [ + {"text": "Yes,[wave] my dear apprentice[/wave]! What do you need assistance with?", "animation": "Curious"} + ], "choices": [ {"text": "You", "next": "HelpYou"}, {"text": "Choice"} - ], - "effects": [ - {"type": "oscillation", "start": 4, "end": 23} ] }, - "HelpYou": {"text": "M-Me?! Apprentice, are you...daft? Did you not heed my instructions I spoke to you earlier?", "animation": "Shocked", "next": "HelpYou2"}, - "HelpYou2": { - "text": "Your mission is to follow my instructions in the Art! What's the Art?! Bah! Simpleton!", - "animation": "Angry", - "next": "HelpYou3", - "effects": [ - { - "type": "color", - "start": 49, - "end": 52, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 65, - "end": 68, - "color": [1, 0.25, 0.25] - } - ] - }, - "HelpYou3": { - "text": "Fire! Flames! Heat! Energy! Mass! That's what the Art is! And to sum it up, I need to embrace it by GETTING FAT!!!", - "animation": "Angry", - "effects": [ - {"type": "screenshake", "start": 101, "end": 110}, - {"type": "shake", "start": 101, "end": 121}, - {"type": "sound", "start": 101, "end": 110, "sound": "sfx/boom.ogg"} + "HelpYou": { + "lines": [ + {"text": "M-Me?! Apprentice, are you...daft? Did you not heed my instructions I spoke to you earlier?", "animation": "Shocked"}, + {"text": "Your mission is to follow my instructions in the [color=1 0.25 0.25]Art[/color]! What's the [color=1 0.25 0.25]Art[/color]?! Bah! Simpleton!", "animation": "Angry"}, + {"text": "Fire! Flames! Heat! Energy! Mass! That's what the Art is! And to sum it up, I need to embrace it by [screenshake][shake][sound=sfx/boom.ogg]GETTING FAT!!![/shake]", "animation": "Angry"} ] }, "HelpYou4": { - "text": "Fire! Flames! Heat! Energy! Mass! That's what the Art is! And to sum it up, I need to embrace it by GETTING FAT!!!", - "animation": "Angry", - "effects": [ - {"type": "screenshake", "start": 101, "end": 110}, - {"type": "shake", "start": 101, "end": 121}, - {"type": "sound", "start": 101, "end": 110, "sound": "sfx/boom.ogg"}, - {"type": "animation", "start": 101, "animation": "Horny"} + "lines": [ + {"text": "Fire! Flames! Heat! Energy! Mass! That's what the Art is! And to sum it up, I need to embrace it by [screenshake][shake][sound=sfx/boom.ogg][animation=Horny]GETTING FAT!!![/shake]", "animation": "Angry"} ] }, "ButtSmack": { - "text": "KYAH!!!", - "animation": "SurprisedBack", - "effects": [ - {"type": "big", "end": 7}, - {"type": "shake", "end": 7}, - {"type": "screenshake"}, - {"type": "screenshake"} + "pools": ["ButtSmack"], + "lines": [ + {"text": "[big][shake][screenshake][screenshake]KYAH!!![/shake][/big]", "animation": "SurprisedBack"} ] }, "ButtSmack2": { - "text": "UWAH!!", - "animation": "SurprisedBack", - "effects": [ - {"type": "big", "end": 6}, - {"type": "shake", "end": 6}, - {"type": "screenshake"} + "pools": ["ButtSmack"], + "lines": [ + {"text": "[big][shake][screenshake]UWAH!![/shake][/big]", "animation": "SurprisedBack"} ] }, "ButtSmack3": { - "text": "MY REAR END!!", - "animation": "SurprisedBack", - "effects": [ - {"type": "big", "end": 13}, - {"type": "shake", "end": 13}, - {"type": "screenshake"} + "pools": ["ButtSmack"], + "lines": [ + {"text": "[big][shake][screenshake]MY REAR END!![/shake][/big]", "animation": "SurprisedBack"} ] }, "ButtSmack4": { - "text": "H-HEY!!", - "animation": "SurprisedBack", - "effects": [ - {"type": "big", "end": 7}, - {"type": "shake", "end": 7}, - {"type": "screenshake"} + "pools": ["ButtSmack"], + "lines": [ + {"text": "[big][shake][screenshake]H-HEY!![/shake][/big]", "animation": "SurprisedBack"} ] }, "ButtSmack5": { - "text": "O-OUCH!!", - "animation": "SurprisedBack", - "effects": [ - {"type": "big", "end": 8}, - {"type": "shake", "end": 8}, - {"type": "screenshake"} + "pools": ["ButtSmack"], + "lines": [ + {"text": "[big][shake][screenshake]O-OUCH!![/shake][/big]", "animation": "SurprisedBack"} ] }, "ButtSmack6": { - "text": "G-GENTLE!!", - "animation": "SurprisedBack", - "effects": [ - {"type": "big", "end": 10}, - {"type": "shake", "end": 10}, - {"type": "screenshake"} + "pools": ["ButtSmack"], + "lines": [ + {"text": "[big][shake][screenshake]G-GENTLE!![/shake][/big]", "animation": "SurprisedBack"} ] }, "ButtSmack7": { - "text": "WAH!!", - "animation": "SurprisedBack", - "effects": [ - {"type": "big", "end": 5}, - {"type": "shake", "end": 5}, - {"type": "screenshake"} + "pools": ["ButtSmack"], + "lines": [ + {"text": "[big][shake][screenshake]WAH!![/shake][/big]", "animation": "SurprisedBack"} + ] + }, + "ButtSmack8": { + "pools": ["ButtSmack"], + "lines": [ + {"text": "G-goodness!", "animation": "SurprisedBack"} ] }, - "ButtSmack8": {"text": "G-goodness!", "animation": "SurprisedBack"}, "ButtSmack9": { - "text": "Eager, are you?!", - "animation": "SurprisedBack", - "effects": [ - {"type": "shake", "end": 16} + "pools": ["ButtSmack"], + "lines": [ + {"text": "[shake]Eager, are you?![/shake]", "animation": "SurprisedBack"} ] }, "ButtSmack10": { - "text": "Aren't you bold?!", - "animation": "SurprisedBack", - "effects": [ - {"type": "shake", "end": 16} + "pools": ["ButtSmack"], + "lines": [ + {"text": "[shake]Aren't you bold?[/shake]!", "animation": "SurprisedBack"} ] } } diff --git a/resources/characters/braixen/gfx/items/item.anm2 b/resources/characters/braixen/gfx/items/item.anm2 deleted file mode 100644 index 7be6f01..0000000 --- a/resources/characters/braixen/gfx/items/item.anm2 +++ /dev/null @@ -1,37 +0,0 @@ -{ - "anm2ed": 1, - "info": {"createdOn": "2025-12-06T23:49:27"}, - "spritesheets": [ - { - "path": "item_001_poke_puff_basic_sweet.png", - "regions": [ - { - "name": "48x48", - "size": [48, 48], - "pivot": [24, 24] - } - ] - } - ], - "layers": [ - {"name": "Main"} - ], - "defaultAnimation": "Default", - "animations": { - "Default": { - "root": [ - { - "scale": [125, 125] - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 0} - ] - } - ] - } - } -} diff --git a/resources/characters/braixen/gfx/items/item_001_poke_puff_basic_sweet.png b/resources/characters/braixen/gfx/items/item_001_poke_puff_basic_sweet.png deleted file mode 100644 index d3ae86f..0000000 Binary files a/resources/characters/braixen/gfx/items/item_001_poke_puff_basic_sweet.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_002_poke_puff_basic_mint.png b/resources/characters/braixen/gfx/items/item_002_poke_puff_basic_mint.png deleted file mode 100644 index 5b06fa7..0000000 Binary files a/resources/characters/braixen/gfx/items/item_002_poke_puff_basic_mint.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_003_poke_puff_basic_citrus.png b/resources/characters/braixen/gfx/items/item_003_poke_puff_basic_citrus.png deleted file mode 100644 index 6e5bfa8..0000000 Binary files a/resources/characters/braixen/gfx/items/item_003_poke_puff_basic_citrus.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_004_poke_puff_basic_mocha.png b/resources/characters/braixen/gfx/items/item_004_poke_puff_basic_mocha.png deleted file mode 100644 index a9ae4de..0000000 Binary files a/resources/characters/braixen/gfx/items/item_004_poke_puff_basic_mocha.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_005_poke_puff_basic_spice.png b/resources/characters/braixen/gfx/items/item_005_poke_puff_basic_spice.png deleted file mode 100644 index 0d7660c..0000000 Binary files a/resources/characters/braixen/gfx/items/item_005_poke_puff_basic_spice.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_006_poke_puff_frosted_sweet.png b/resources/characters/braixen/gfx/items/item_006_poke_puff_frosted_sweet.png deleted file mode 100644 index a0712e1..0000000 Binary files a/resources/characters/braixen/gfx/items/item_006_poke_puff_frosted_sweet.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_007_poke_puff_frosted_mint.png b/resources/characters/braixen/gfx/items/item_007_poke_puff_frosted_mint.png deleted file mode 100644 index c9d401e..0000000 Binary files a/resources/characters/braixen/gfx/items/item_007_poke_puff_frosted_mint.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_008_poke_puff_frosted_citrus.png b/resources/characters/braixen/gfx/items/item_008_poke_puff_frosted_citrus.png deleted file mode 100644 index 60988dc..0000000 Binary files a/resources/characters/braixen/gfx/items/item_008_poke_puff_frosted_citrus.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_009_poke_puff_frosted_mocha.png b/resources/characters/braixen/gfx/items/item_009_poke_puff_frosted_mocha.png deleted file mode 100644 index 4c40b45..0000000 Binary files a/resources/characters/braixen/gfx/items/item_009_poke_puff_frosted_mocha.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_010_poke_puff_frosted_spice.png b/resources/characters/braixen/gfx/items/item_010_poke_puff_frosted_spice.png deleted file mode 100644 index 88842c4..0000000 Binary files a/resources/characters/braixen/gfx/items/item_010_poke_puff_frosted_spice.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_011_poke_puff_fancy_sweet.png b/resources/characters/braixen/gfx/items/item_011_poke_puff_fancy_sweet.png deleted file mode 100644 index 3c298ba..0000000 Binary files a/resources/characters/braixen/gfx/items/item_011_poke_puff_fancy_sweet.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_012_poke_puff_fancy_mint.png b/resources/characters/braixen/gfx/items/item_012_poke_puff_fancy_mint.png deleted file mode 100644 index ef3b815..0000000 Binary files a/resources/characters/braixen/gfx/items/item_012_poke_puff_fancy_mint.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_013_poke_puff_fancy_citrus.png b/resources/characters/braixen/gfx/items/item_013_poke_puff_fancy_citrus.png deleted file mode 100644 index 534751e..0000000 Binary files a/resources/characters/braixen/gfx/items/item_013_poke_puff_fancy_citrus.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_014_poke_puff_fancy_mocha.png b/resources/characters/braixen/gfx/items/item_014_poke_puff_fancy_mocha.png deleted file mode 100644 index 57e62ae..0000000 Binary files a/resources/characters/braixen/gfx/items/item_014_poke_puff_fancy_mocha.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_015_poke_puff_fancy_spice.png b/resources/characters/braixen/gfx/items/item_015_poke_puff_fancy_spice.png deleted file mode 100644 index 555102a..0000000 Binary files a/resources/characters/braixen/gfx/items/item_015_poke_puff_fancy_spice.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_016_poke_puff_deluxe_sweet.png b/resources/characters/braixen/gfx/items/item_016_poke_puff_deluxe_sweet.png deleted file mode 100644 index a70849e..0000000 Binary files a/resources/characters/braixen/gfx/items/item_016_poke_puff_deluxe_sweet.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_017_poke_puff_deluxe_mint.png b/resources/characters/braixen/gfx/items/item_017_poke_puff_deluxe_mint.png deleted file mode 100644 index 106783e..0000000 Binary files a/resources/characters/braixen/gfx/items/item_017_poke_puff_deluxe_mint.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_018_poke_puff_deluxe_citrus.png b/resources/characters/braixen/gfx/items/item_018_poke_puff_deluxe_citrus.png deleted file mode 100644 index edfc2a1..0000000 Binary files a/resources/characters/braixen/gfx/items/item_018_poke_puff_deluxe_citrus.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_019_poke_puff_deluxe_mocha.png b/resources/characters/braixen/gfx/items/item_019_poke_puff_deluxe_mocha.png deleted file mode 100644 index a9974ec..0000000 Binary files a/resources/characters/braixen/gfx/items/item_019_poke_puff_deluxe_mocha.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_020_poke_puff_deluxe_spice.png b/resources/characters/braixen/gfx/items/item_020_poke_puff_deluxe_spice.png deleted file mode 100644 index 73522c8..0000000 Binary files a/resources/characters/braixen/gfx/items/item_020_poke_puff_deluxe_spice.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_021_poke_puff_supreme_spring.png b/resources/characters/braixen/gfx/items/item_021_poke_puff_supreme_spring.png deleted file mode 100644 index cb76f23..0000000 Binary files a/resources/characters/braixen/gfx/items/item_021_poke_puff_supreme_spring.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_022_poke_puff_supreme_summer.png b/resources/characters/braixen/gfx/items/item_022_poke_puff_supreme_summer.png deleted file mode 100644 index 7545d85..0000000 Binary files a/resources/characters/braixen/gfx/items/item_022_poke_puff_supreme_summer.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_023_poke_puff_supreme_autumn.png b/resources/characters/braixen/gfx/items/item_023_poke_puff_supreme_autumn.png deleted file mode 100644 index d4f104c..0000000 Binary files a/resources/characters/braixen/gfx/items/item_023_poke_puff_supreme_autumn.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_024_poke_puff_supreme_winter.png b/resources/characters/braixen/gfx/items/item_024_poke_puff_supreme_winter.png deleted file mode 100644 index bca8518..0000000 Binary files a/resources/characters/braixen/gfx/items/item_024_poke_puff_supreme_winter.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_025_poke_puff_supreme_wish.png b/resources/characters/braixen/gfx/items/item_025_poke_puff_supreme_wish.png deleted file mode 100644 index bf49aa7..0000000 Binary files a/resources/characters/braixen/gfx/items/item_025_poke_puff_supreme_wish.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_026_poke_puff_supreme_honor.png b/resources/characters/braixen/gfx/items/item_026_poke_puff_supreme_honor.png deleted file mode 100644 index b626a64..0000000 Binary files a/resources/characters/braixen/gfx/items/item_026_poke_puff_supreme_honor.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_027_cheri_berry.png b/resources/characters/braixen/gfx/items/item_027_cheri_berry.png deleted file mode 100644 index 2f2cb81..0000000 Binary files a/resources/characters/braixen/gfx/items/item_027_cheri_berry.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_028_tamato_berry.png b/resources/characters/braixen/gfx/items/item_028_tamato_berry.png deleted file mode 100644 index c003807..0000000 Binary files a/resources/characters/braixen/gfx/items/item_028_tamato_berry.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_029_touga_berry.png b/resources/characters/braixen/gfx/items/item_029_touga_berry.png deleted file mode 100644 index 6ee4e94..0000000 Binary files a/resources/characters/braixen/gfx/items/item_029_touga_berry.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_030_pomeg_berry.png b/resources/characters/braixen/gfx/items/item_030_pomeg_berry.png deleted file mode 100644 index aae4488..0000000 Binary files a/resources/characters/braixen/gfx/items/item_030_pomeg_berry.png and /dev/null differ diff --git a/resources/characters/braixen/gfx/items/item_031_shiny_charm.png b/resources/characters/braixen/gfx/items/item_031_shiny_charm.png deleted file mode 100644 index 24e3971..0000000 Binary files a/resources/characters/braixen/gfx/items/item_031_shiny_charm.png and /dev/null differ diff --git a/resources/characters/braixen/items.json b/resources/characters/braixen/items.json index f3cd5bd..71b4514 100644 --- a/resources/characters/braixen/items.json +++ b/resources/characters/braixen/items.json @@ -1,11 +1,11 @@ { "anm2": "gfx/items/item.anm2", "spritesheet": 0, - "spawnDelay": 600, + "spawnDelay": 10, "spawnDelayMultiplier": 0.75, "spawnLimit": 5, "sounds": { - "bounce": ["sfx/bounce.ogg", "sfx/bounce2.ogg", "sfx/bounce3.ogg"], + "bounce": "sfx/bounce*.ogg", "dispose": ["sfx/dispose.ogg"], "summon": ["sfx/summon.ogg"] }, @@ -13,7 +13,6 @@ "dispose": ["Puff"], "summon": ["Puff"] }, - "categories": {"Food": "edible", "Tool": "tool"}, "rarities": { "Common": {"weight": 1.0, "sound": "sfx/common.ogg"}, "Uncommon": {"weight": 0.75, "sound": "sfx/uncommon.ogg"}, @@ -24,36 +23,36 @@ "Special": {"weight": 0.0, "sound": "sfx/special.ogg"} }, "items": [ - {"name": "Poké Puff (Basic, Sweet)", "description": "A basic sweet Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Sweet", "texture": "gfx/items/item_001_poke_puff_basic_sweet.png", "calories": 100.0}, - {"name": "Poké Puff (Basic, Mint)", "description": "A basic minty Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Mint", "texture": "gfx/items/item_002_poke_puff_basic_mint.png", "calories": 100.0}, - {"name": "Poké Puff (Basic, Citrus)", "description": "A basic citrusy Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Citrus", "texture": "gfx/items/item_003_poke_puff_basic_citrus.png", "calories": 100.0}, - {"name": "Poké Puff (Basic, Mocha)", "description": "A basic mocha Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Mocha", "texture": "gfx/items/item_004_poke_puff_basic_mocha.png", "calories": 100.0}, - {"name": "Poké Puff (Basic, Spice)", "description": "A basic spice Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Spice", "texture": "gfx/items/item_005_poke_puff_basic_spice.png", "calories": 100.0}, - {"name": "Poké Puff (Frosted, Sweet)", "description": "A frosted sweet Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Sweet", "texture": "gfx/items/item_006_poke_puff_frosted_sweet.png", "calories": 250.0}, - {"name": "Poké Puff (Frosted, Mint)", "description": "A frosted minty Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Mint", "texture": "gfx/items/item_007_poke_puff_frosted_mint.png", "calories": 250.0}, - {"name": "Poké Puff (Frosted, Citrus)", "description": "A frosted citrusy Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Mint", "texture": "gfx/items/item_008_poke_puff_frosted_citrus.png", "calories": 250.0}, - {"name": "Poké Puff (Frosted, Mocha)", "description": "A frosted mocha Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Mocha", "texture": "gfx/items/item_009_poke_puff_frosted_mocha.png", "calories": 250.0}, - {"name": "Poké Puff (Frosted, Spice)", "description": "A frosted spice Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Spice", "texture": "gfx/items/item_010_poke_puff_frosted_spice.png", "calories": 250.0}, - {"name": "Poké Puff (Fancy, Sweet)", "description": "A fancy sweet Poké Puff, adorned with a cherry.", "category": "Food", "rarity": "Rare", "flavor": "Sweet", "texture": "gfx/items/item_011_poke_puff_fancy_sweet.png", "calories": 500.0}, - {"name": "Poké Puff (Fancy, Mint)", "description": "A fancy minty Poké Puff, adorned with a crescent moon-shaped candy.", "category": "Food", "rarity": "Rare", "flavor": "Mint", "texture": "gfx/items/item_012_poke_puff_fancy_mint.png", "calories": 500.0}, - {"name": "Poké Puff (Fancy, Citrus)", "description": "A fancy citrus Poké Puff, adorned with an orange slice.", "category": "Food", "rarity": "Rare", "flavor": "Citrus", "texture": "gfx/items/item_013_poke_puff_fancy_citrus.png", "calories": 500.0}, - {"name": "Poké Puff (Fancy, Mocha)", "description": "A fancy mocha Poké Puff, adorned with a morsel of white chocolate.", "category": "Food", "rarity": "Rare", "flavor": "Mocha", "texture": "gfx/items/item_014_poke_puff_fancy_mocha.png", "calories": 500.0}, - {"name": "Poké Puff (Fancy, Spice)", "description": "A fancy spice Poké Puff, adorned with a morsel of dark chocolate.", "category": "Food", "rarity": "Rare", "flavor": "Spice", "texture": "gfx/items/item_015_poke_puff_fancy_spice.png", "calories": 500.0}, - {"name": "Poké Puff (Deluxe, Sweet)", "description": "A deluxe sweet Poké Puff; frosted and adorned with a cherry.", "category": "Food", "rarity": "Epic", "flavor": "Sweet", "texture": "gfx/items/item_016_poke_puff_deluxe_sweet.png", "calories": 1000.0}, - {"name": "Poké Puff (Deluxe, Mint)", "description": "A deluxe minty Poké Puff; frosted and adorned with a cinnamon stick.", "category": "Food", "rarity": "Epic", "flavor": "Mint", "texture": "gfx/items/item_017_poke_puff_deluxe_mint.png", "calories": 1000.0}, - {"name": "Poké Puff (Deluxe, Citrus)", "description": "A deluxe citrusy Poké Puff; frosted and adorned with an orange slice.", "category": "Food", "rarity": "Epic", "flavor": "Citrus", "texture": "gfx/items/item_018_poke_puff_deluxe_citrus.png", "calories": 1000.0}, - {"name": "Poké Puff (Deluxe, Mocha)", "description": "A deluxe mocha Poké Puff; frosted and adorned with a morsel of white chocolate.", "category": "Food", "rarity": "Epic", "flavor": "Mocha", "texture": "gfx/items/item_019_poke_puff_deluxe_mocha.png", "calories": 1000.0}, - {"name": "Poké Puff (Deluxe, Spice)", "description": "A deluxe spice Poké Puff; frosted and adorned with a morsel of dark chocolate.", "category": "Food", "rarity": "Epic", "flavor": "Spice", "texture": "gfx/items/item_020_poke_puff_deluxe_spice.png", "calories": 1000.0}, - {"name": "Poké Puff (Supreme Spring)", "description": "A supreme Poké Puff that tastes like the sweet cherry blossoms of spring.", "category": "Food", "rarity": "Legendary", "flavor": "Sweet", "texture": "gfx/items/item_021_poke_puff_supreme_spring.png", "calories": 2500.0}, - {"name": "Poké Puff (Supreme Summer)", "description": "A supreme Poké Puff that tastes like a tropical summer vacation.", "category": "Food", "rarity": "Legendary", "flavor": "Citrus", "texture": "gfx/items/item_022_poke_puff_supreme_summer.png", "calories": 2500.0}, - {"name": "Poké Puff (Supreme Autumn)", "description": "A supreme Poké Puff that tastes like a bountiful autumn harvest.", "category": "Food", "rarity": "Legendary", "flavor": "Citrus", "texture": "gfx/items/item_023_poke_puff_supreme_autumn.png", "calories": 2500.0}, - {"name": "Poké Puff (Supreme Winter)", "description": "A supreme Poké Puff that tastes like a frosty winter wonderland.", "category": "Food", "rarity": "Legendary", "flavor": "Spice", "texture": "gfx/items/item_024_poke_puff_supreme_winter.png", "calories": 2500.0}, - {"name": "Poké Puff (Supreme Wish)", "description": "A supreme Poké Puff that tastes like a cherished birthday celebration.\nIt also is the biggest calorie nuke ever.\nCan Snivy eat it!?\nAlso, statistically, it might be your birthday today, right?", "category": "Food", "rarity": "???", "flavor": "Spice", "texture": "gfx/items/item_025_poke_puff_supreme_wish.png", "calories": 10000.0}, - {"name": "Poké Puff (Supreme Honor)", "description": "A supreme Poké Puff that tastes like a monumental victory.\nYou've earned it...if Braixen can eat it!", "category": "Food", "rarity": "Special", "flavor": "Mocha", "texture": "gfx/items/item_026_poke_puff_supreme_honor.png", "calories": 2500.0, "digestionBonus": 0.75}, - {"name": "Cheri Berry", "description": "A spherical red berry that cures paralysis\n...oh, and it also excites one's stomach.", "category": "Food", "rarity": "Uncommon", "flavor": "Spicy", "texture": "gfx/items/item_027_cheri_berry.png", "calories": 25.0, "digestionBonus": 0.04998}, - {"name": "Tamato Berry", "description": "A spiny crimson berry that lowers speed and raises friendship.\n...oh, and it also greatly excites one's stomach.", "category": "Food", "rarity": "Rare", "flavor": "Spicy", "texture": "gfx/items/item_028_tamato_berry.png", "calories": 50.0, "digestionBonus": 0.24999}, - {"name": "Touga Berry", "description": "An obscure, searing-red berry from faraway lands.\nIt cures confusion...and it'll make one's stomach a burning inferno.", "category": "Food", "rarity": "Epic", "flavor": "Spicy", "texture": "gfx/items/item_029_touga_berry.png", "calories": 100.0, "digestionBonus": 0.4998}, - {"name": "Pomeg Berry", "description": "cG9tZWcgYmVycnkgcG9tZWcgYmVycnkgcG9tZWcgYmVycnk=", "category": "Food", "rarity": "???", "flavor": "None", "texture": "gfx/items/item_030_pomeg_berry.png", "calories": -2500.0, "digestionBonus": 6.0, "gravity": 0.05}, - {"name": "Shiny Charm", "description": "Can change a Pokémon's color scheme...", "category": "Tool", "rarity": "???", "texture": "gfx/items/item_031_shiny_charm.png", "isToggleSpritesheet": true} + {"name": "Poké Puff (Basic, Sweet)", "description": "A basic sweet Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Sweet", "calories": 100.0, "use": "edible"}, + {"name": "Poké Puff (Basic, Mint)", "description": "A basic minty Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Mint", "calories": 100.0, "use": "edible"}, + {"name": "Poké Puff (Basic, Citrus)", "description": "A basic citrusy Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Citrus", "calories": 100.0, "use": "edible"}, + {"name": "Poké Puff (Basic, Mocha)", "description": "A basic mocha Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Mocha", "calories": 100.0, "use": "edible"}, + {"name": "Poké Puff (Basic, Spice)", "description": "A basic spice Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Spice", "calories": 100.0, "use": "edible"}, + {"name": "Poké Puff (Frosted, Sweet)", "description": "A frosted sweet Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Sweet", "calories": 250.0, "use": "edible"}, + {"name": "Poké Puff (Frosted, Mint)", "description": "A frosted minty Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Mint", "calories": 250.0, "use": "edible"}, + {"name": "Poké Puff (Frosted, Citrus)", "description": "A frosted citrusy Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Mint", "calories": 250.0, "use": "edible"}, + {"name": "Poké Puff (Frosted, Mocha)", "description": "A frosted mocha Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Mocha", "calories": 250.0, "use": "edible"}, + {"name": "Poké Puff (Frosted, Spice)", "description": "A frosted spice Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Spice", "calories": 250.0, "use": "edible"}, + {"name": "Poké Puff (Fancy, Sweet)", "description": "A fancy sweet Poké Puff, adorned with a cherry.", "category": "Food", "rarity": "Rare", "flavor": "Sweet", "calories": 500.0, "use": "edible"}, + {"name": "Poké Puff (Fancy, Mint)", "description": "A fancy minty Poké Puff, adorned with a crescent moon-shaped candy.", "category": "Food", "rarity": "Rare", "flavor": "Mint", "calories": 500.0, "use": "edible"}, + {"name": "Poké Puff (Fancy, Citrus)", "description": "A fancy citrus Poké Puff, adorned with an orange slice.", "category": "Food", "rarity": "Rare", "flavor": "Citrus", "calories": 500.0, "use": "edible"}, + {"name": "Poké Puff (Fancy, Mocha)", "description": "A fancy mocha Poké Puff, adorned with a morsel of white chocolate.", "category": "Food", "rarity": "Rare", "flavor": "Mocha", "calories": 500.0, "use": "edible"}, + {"name": "Poké Puff (Fancy, Spice)", "description": "A fancy spice Poké Puff, adorned with a morsel of dark chocolate.", "category": "Food", "rarity": "Rare", "flavor": "Spice", "calories": 500.0, "use": "edible"}, + {"name": "Poké Puff (Deluxe, Sweet)", "description": "A deluxe sweet Poké Puff; frosted and adorned with a cherry.", "category": "Food", "rarity": "Epic", "flavor": "Sweet", "calories": 1000.0, "use": "edible"}, + {"name": "Poké Puff (Deluxe, Mint)", "description": "A deluxe minty Poké Puff; frosted and adorned with a cinnamon stick.", "category": "Food", "rarity": "Epic", "flavor": "Mint", "calories": 1000.0, "use": "edible"}, + {"name": "Poké Puff (Deluxe, Citrus)", "description": "A deluxe citrusy Poké Puff; frosted and adorned with an orange slice.", "category": "Food", "rarity": "Epic", "flavor": "Citrus", "calories": 1000.0, "use": "edible"}, + {"name": "Poké Puff (Deluxe, Mocha)", "description": "A deluxe mocha Poké Puff; frosted and adorned with a morsel of white chocolate.", "category": "Food", "rarity": "Epic", "flavor": "Mocha", "calories": 1000.0, "use": "edible"}, + {"name": "Poké Puff (Deluxe, Spice)", "description": "A deluxe spice Poké Puff; frosted and adorned with a morsel of dark chocolate.", "category": "Food", "rarity": "Epic", "flavor": "Spice", "calories": 1000.0, "use": "edible"}, + {"name": "Poké Puff (Supreme Spring)", "description": "A supreme Poké Puff that tastes like the sweet cherry blossoms of spring.", "category": "Food", "rarity": "Legendary", "flavor": "Sweet", "calories": 2500.0, "use": "edible"}, + {"name": "Poké Puff (Supreme Summer)", "description": "A supreme Poké Puff that tastes like a tropical summer vacation.", "category": "Food", "rarity": "Legendary", "flavor": "Citrus", "calories": 2500.0, "use": "edible"}, + {"name": "Poké Puff (Supreme Autumn)", "description": "A supreme Poké Puff that tastes like a bountiful autumn harvest.", "category": "Food", "rarity": "Legendary", "flavor": "Citrus", "calories": 2500.0, "use": "edible"}, + {"name": "Poké Puff (Supreme Winter)", "description": "A supreme Poké Puff that tastes like a frosty winter wonderland.", "category": "Food", "rarity": "Legendary", "flavor": "Spice", "calories": 2500.0, "use": "edible"}, + {"name": "Poké Puff (Supreme Wish)", "description": "A supreme Poké Puff that tastes like a cherished birthday celebration.\nIt also is the biggest calorie nuke ever.\nCan Snivy eat it!?\nAlso, statistically, it might be your birthday today, right?", "category": "Food", "rarity": "???", "flavor": "Spice", "calories": 10000.0, "use": "edible"}, + {"name": "Poké Puff (Supreme Honor)", "description": "A supreme Poké Puff that tastes like a monumental victory.\nYou've earned it...if Braixen can eat it!", "category": "Food", "rarity": "Special", "flavor": "Mocha", "calories": 2500.0, "digestionBonus": 0.75, "use": "edible"}, + {"name": "Cheri Berry", "description": "A spherical red berry that cures paralysis\n...oh, and it also excites one's stomach.", "category": "Food", "rarity": "Uncommon", "flavor": "Spicy", "calories": 25.0, "digestionBonus": 0.04998, "use": "edible"}, + {"name": "Tamato Berry", "description": "A spiny crimson berry that lowers speed and raises friendship.\n...oh, and it also greatly excites one's stomach.", "category": "Food", "rarity": "Rare", "flavor": "Spicy", "calories": 50.0, "digestionBonus": 0.24999, "use": "edible"}, + {"name": "Touga Berry", "description": "An obscure, searing-red berry from faraway lands.\nIt cures confusion...and it'll make one's stomach a burning inferno.", "category": "Food", "rarity": "Epic", "flavor": "Spicy", "calories": 100.0, "digestionBonus": 0.4998, "use": "edible"}, + {"name": "Pomeg Berry", "description": "cG9tZWcgYmVycnkgcG9tZWcgYmVycnkgcG9tZWcgYmVycnk=", "category": "Food", "rarity": "???", "flavor": "None", "calories": -2500.0, "digestionBonus": 6.0, "gravity": 0.05, "use": "edible"}, + {"name": "Shiny Charm", "description": "Can change a Pokémon's color scheme...", "category": "Tool", "rarity": "???", "isToggleSpritesheet": true, "use": "tool"} ] } diff --git a/resources/characters/mini/character.json b/resources/characters/mini/character.json index a388a07..57586aa 100644 --- a/resources/characters/mini/character.json +++ b/resources/characters/mini/character.json @@ -16,9 +16,9 @@ "caloriesToKilogram": 0.001, "digestionRate": 1.5, "digestionRateMax": 4.5, - "digestionTime": 120, + "digestionTime": 2, "blinkChance": 0.5, - "gurgleChance": 0.0005, + "gurgleChance": 0.05, "gurgleCapacityMultiplier": 10, "dialoguePool": "Stage1", "stages": [ @@ -36,10 +36,7 @@ "expandAreas": [ {"layer": "Torso", "null": "Belly", "scaleMax": 2.5} ], - "sounds": { - "digest": ["sfx/digest1.ogg", "sfx/digest2.ogg", "sfx/digest3.ogg"], - "gurgle": ["sfx/gurgle1.ogg", "sfx/gurgle2.ogg", "sfx/gurgle3.ogg", "sfx/gurgle4.ogg", "sfx/gurgle5.ogg"] - }, + "sounds": {"digest": "sfx/digest*.ogg", "gurgle": "sfx/gurgle*.ogg"}, "interactTypes": { "Rub": { "glyph": "2", @@ -53,24 +50,24 @@ "glyph": "3", "cursorHover": "SmackHover", "cursorActive": "Smack", - "dialogueCooldown": 40, + "dialogueCooldown": 0.6667, "digestionClick": 0.25, "scaleAmplitude": 1, "scaleCycles": 3, - "sounds": ["sfx/smack1.ogg", "sfx/smack2.ogg", "sfx/smack3.ogg", "sfx/smack4.ogg", "sfx/smack5.ogg"], + "sounds": "sfx/smack*.ogg", "particles": ["Circle"] }, "Kiss": { "glyph": "4", "cursorHover": "KissHover", "cursorActive": "Kiss", - "sounds": ["sfx/kiss1.ogg", "sfx/kiss2.ogg", "sfx/kiss3.ogg", "sfx/kiss4.ogg", "sfx/kiss5.ogg"], + "sounds": "sfx/kiss*.ogg", "particles": ["Circle"] } }, "interactAreas": [ {"type": "Rub", "null": "Head", "dialoguePool": "HeadRub", "dialoguePoolFull": "HeadRubFull"}, - {"type": "Rub", "null": "Belly", "cursorActive": "Grab", "dialoguePool": "BellyRub", "dialoguePoolFull": "BellyRubFull", "digestionHover": 0.1}, + {"type": "Rub", "null": "Belly", "cursorActive": "Grab", "dialoguePool": "BellyRub", "dialoguePoolFull": "BellyRubFull", "digestionHover": 6}, {"type": "Kiss", "null": "Mouth", "dialoguePool": "MouthKiss", "dialoguePoolFull": "MouthKiss"}, {"type": "Kiss", "null": "Belly", "dialoguePool": "BellyKiss", "dialoguePoolFull": "BellyKiss"}, {"type": "Smack", "null": "Belly", "layer": "Torso", "dialoguePool": "BellySmack", "dialoguePoolFull": "BellySmack"} @@ -89,7 +86,7 @@ "sounds": { "grab": ["sfx/grab.ogg"], "release": ["sfx/release.ogg"], - "throw": ["sfx/throw1.ogg", "sfx/throw2.ogg", "sfx/throw3.ogg"] + "throw": "sfx/throw*.ogg" }, "particles": { "grab": ["Circle"] @@ -103,7 +100,7 @@ "sounds": { "open": ["sfx/open.ogg"], "close": ["sfx/close.ogg"], - "hover": ["sfx/hover1.ogg", "sfx/hover2.ogg", "sfx/hover3.ogg"], + "hover": "sfx/hover*.ogg", "select": ["sfx/select.ogg"], "cheats": ["sfx/cheatsActivated.ogg"] } diff --git a/resources/characters/mini/dialogue.json b/resources/characters/mini/dialogue.json index e5ef380..52004f4 100644 --- a/resources/characters/mini/dialogue.json +++ b/resources/characters/mini/dialogue.json @@ -1,78 +1,63 @@ { - "delay": 2, - "blipDelay": 3, + "speed": 30, + "blipEvery": 3, "blip": ["sfx/blip.ogg"], "pauses": { - ".": {"delay": 8, "isSilent": true}, - "!": {"delay": 8, "isSilent": true}, - ",": {"delay": 8, "isSilent": true}, - "-": {"delay": 8, "isSilent": true}, - "\"": {"delay": 8, "isSilent": true} - }, - "hooks": {"Start": "StartBegin", "End": "End", "Help": "Help", "StageUp": "StageUp", "Random": "Random", "Feed": "Feed", "FeedFull": "FeedFull", "Eat": "Eat", "EatFull": "EatFull", "Full": "Full", "Throw": "Throw", "LowCapacity": "LowCapacity", "Digest": "Digest", "FoodTaken": "FoodTaken", "FoodTakenFull": "FoodTakenFull"}, - "pools": { - "Stage1": ["Stage1-1", "Stage1-2", "Stage1-3"], - "Stage2": ["Stage2-1", "Stage2-2", "Stage2-3"], - "Stage3": ["Stage3-1", "Stage3-2", "Stage3-3"], - "Stage4": ["Stage4-1", "Stage4-2", "Stage4-3"], - "Stage5": ["Stage5-1", "Stage5-2", "Stage5-3"], - "Random": ["Random1", "Random2", "Random3", "Random4", "Random5", "Random6", "Random7", "Random8", "Random9", "Random10", "Random11", "Random12", "Random13", "Random14", "Random15", "Random16", "Random17", "Random18", "Random19", "Random20", "Random21", "Random22", "Random23", "Random24", "Random25", "Random26", "Random27"], - "Digest": ["Digest-1", "Digest-2", "Digest-3", "Digest-4", "Digest-5", "Digest-6", "Digest-7", "Digest-8", "Digest-9", "Digest-10", "Digest-11", "Digest-12", "Digest-13", "Digest-14", "Digest-15"], - "Throw": ["Throw-1", "Throw-2", "Throw-3", "Throw-4", "Throw-5", "Throw-6", "Throw-7", "Throw-8", "Throw-9", "Throw-10", "Throw-11", "Throw-12", "Throw-13", "Throw-14", "Throw-15"], - "Feed": ["Feed-1", "Feed-2", "Feed-3", "Feed-4", "Feed-5", "Feed-6", "Feed-7", "Feed-8", "Feed-9", "Feed-10", "Feed-11", "Feed-12", "Feed-13", "Feed-14", "Feed-15"], - "FeedFull": ["FeedFull-1", "FeedFull-2", "FeedFull-3", "FeedFull-4", "FeedFull-5", "FeedFull-6", "FeedFull-7", "FeedFull-8", "FeedFull-9", "FeedFull-10", "FeedFull-11", "FeedFull-12", "FeedFull-13", "FeedFull-14", "FeedFull-15"], - "Eat": ["Eat-1", "Eat-2", "Eat-3", "Eat-4", "Eat-5", "Eat-6", "Eat-7", "Eat-8", "Eat-9", "Eat-10", "Eat-11", "Eat-12", "Eat-13", "Eat-14", "Eat-15"], - "EatFull": ["EatFull-1", "EatFull-2", "EatFull-3", "EatFull-4", "EatFull-5", "EatFull-6", "EatFull-7", "EatFull-8", "EatFull-9", "EatFull-10", "EatFull-11", "EatFull-12", "EatFull-13", "EatFull-14", "EatFull-15"], - "Full": ["Full-1", "Full-2", "Full-3", "Full-4", "Full-5", "Full-6", "Full-7", "Full-8", "Full-9", "Full-10", "Full-11", "Full-12", "Full-13", "Full-14", "Full-15"], - "LowCapacity": ["LowCapacity-1", "LowCapacity-2", "LowCapacity-3", "LowCapacity-4", "LowCapacity-5", "LowCapacity-6", "LowCapacity-7", "LowCapacity-8", "LowCapacity-9", "LowCapacity-10", "LowCapacity-11", "LowCapacity-12", "LowCapacity-13", "LowCapacity-14", "LowCapacity-15"], - "FoodTaken": ["FoodTaken-1", "FoodTaken-2", "FoodTaken-3", "FoodTaken-4", "FoodTaken-5", "FoodTaken-6", "FoodTaken-7", "FoodTaken-8", "FoodTaken-9", "FoodTaken-10", "FoodTaken-11", "FoodTaken-12", "FoodTaken-13", "FoodTaken-14", "FoodTaken-15"], - "FoodTakenFull": ["FoodTakenFull-1", "FoodTakenFull-2", "FoodTakenFull-3", "FoodTakenFull-4", "FoodTakenFull-5", "FoodTakenFull-6", "FoodTakenFull-7", "FoodTakenFull-8", "FoodTakenFull-9", "FoodTakenFull-10", "FoodTakenFull-11", "FoodTakenFull-12", "FoodTakenFull-13", "FoodTakenFull-14", "FoodTakenFull-15"], - "StageUp": ["StageUp-1", "StageUp-2", "StageUp-3", "StageUp-4", "StageUp-5", "StageUp-6", "StageUp-7", "StageUp-8", "StageUp-9", "StageUp-10", "StageUp-11", "StageUp-12", "StageUp-13", "StageUp-14", "StageUp-15"], - "MouthKiss": ["MouthKiss-1", "MouthKiss-2", "MouthKiss-3", "MouthKiss-4", "MouthKiss-5", "MouthKiss-6", "MouthKiss-7", "MouthKiss-8", "MouthKiss-9", "MouthKiss-10"], - "BellyKiss": ["BellyKiss-1", "BellyKiss-2", "BellyKiss-3", "BellyKiss-4", "BellyKiss-5"], - "HeadRub": ["HeadRub-1", "HeadRub-2", "HeadRub-3", "HeadRub-4", "HeadRub-5"], - "BellyRub": ["BellyRub-1", "BellyRub-2", "BellyRub-3", "BellyRub-4", "BellyRub-5"], - "BellySmack": ["BellySmack-1", "BellySmack-2", "BellySmack-3", "BellySmack-4", "BellySmack-5"], - "HeadRubFull": ["HeadRubFull-1", "HeadRubFull-2", "HeadRubFull-3", "HeadRubFull-4", "HeadRubFull-5"], - "BellyRubFull": ["BellyRubFull-1", "BellyRubFull-2", "BellyRubFull-3", "BellyRubFull-4", "BellyRubFull-5"] + ".": {"delay": 0.1333, "isSilent": true}, + "!": {"delay": 0.1333, "isSilent": true}, + ",": {"delay": 0.1333, "isSilent": true}, + "-": {"delay": 0.1333, "isSilent": true}, + "\"": {"delay": 0.1333, "isSilent": true} }, + "hooks": {"Start": "StartBegin"}, "entries": { "StartBegin": { - "animation": "Appear", - "next": "Start", - "effects": [ - {"type": "scene"} - ] - }, - "Start": { - "text": "AaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAAAAAAAAAAAaa!!!!!", - "animation": "Shocked", + "isScene": true, + "lines": [ + {"animation": "Appear"}, + {"text": "[wave][big][screenshake]AaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAAAAAAAAAAAaa!!!!![/big][/wave]", "animation": "Shocked"} + ], "choices": [ {"text": "Who're you?", "next": "StartC1"}, {"text": "Wait, I...", "next": "StartC2"}, {"text": "Mini!!!", "next": "StartC3"} - ], - "effects": [ - {"type": "oscillation", "end": 54}, - {"type": "big", "end": 54}, - {"type": "screenshake"} ] }, - "StartC1": {"text": "!!!!!!!!!!!!!!!!", "animation": "Grumpy", "next": "StartC1-2"}, - "StartC1-2": {"text": "I'm the famous Princess Mini! That's right! Princess M-I-N-I! No \"T\"!", "animation": "Shocked", "next": "StartC1-3"}, - "StartC1-3": {"text": "Get that right, please! Just to say that! A LOT of people don't get that right...", "animation": "Thinking", "next": "StartC1-4"}, - "StartC1-4": {"text": "But, um...right! I'm a cutie patooie little candy princess!!!", "animation": "Excited", "next": "StartC1-5"}, - "StartC1-5": {"text": "I rule my own kingdom! I mean, sometimes! Not much going on, though...", "animation": "Concerned", "next": "StartB"}, - "StartC2": {"text": "Yes! You have to be the new retainer! It's gotta be you!", "animation": "Thinking", "next": "StartC2-2"}, - "StartC2-2": {"text": "I don't know who else would be allowed to waltz into my quarters...", "animation": "Grumpy", "next": "StartC2-3"}, - "StartC2-3": {"text": "...because an intruder would clearly be beheaded already if they got here!", "animation": "Thinking", "next": "StartC2-4"}, - "StartC2-4": {"text": "So, yup! You gotta be the new retainer I was looking for!", "animation": "Excited", "next": "StartB"}, - "StartC3": {"text": "HI!!!!!!!!!!", "animation": "Excited", "next": "StartB"}, - "StartB": {"text": "It'll be good to get to know you anyway! You seem professional!", "animation": "Neutral", "next": "StartB-2"}, - "StartB-2": {"text": "All right, then! I'm not one for interviews. Let's see how you'll treat me!!", "animation": "Excited"}, + "StartC1": { + "lines": [ + {"text": "!!!!!!!!!!!!!!!!", "animation": "Grumpy"}, + {"text": "I'm the famous Princess Mini! That's right! Princess M-I-N-I! No \"T\"!", "animation": "Shocked"}, + {"text": "Get that right, please! Just to say that! A LOT of people don't get that right...", "animation": "Thinking"}, + {"text": "But, um...right! I'm a cutie patooie little candy princess!!!", "animation": "Excited"}, + {"text": "I rule my own kingdom! I mean, sometimes! Not much going on, though...", "animation": "Concerned"} + ], + "next": "StartB" + }, + "StartC2": { + "lines": [ + {"text": "Yes! You have to be the new retainer! It's gotta be you!", "animation": "Thinking"}, + {"text": "I don't know who else would be allowed to waltz into my quarters...", "animation": "Grumpy"}, + {"text": "...because an intruder would clearly be beheaded already if they got here!", "animation": "Thinking"}, + {"text": "So, yup! You gotta be the new retainer I was looking for!", "animation": "Excited"} + ], + "next": "StartB" + }, + "StartC3": { + "lines": [ + {"text": "HI!!!!!!!!!!", "animation": "Excited"} + ], + "next": "StartB" + }, + "StartB": { + "lines": [ + {"text": "It'll be good to get to know you anyway! You seem professional!", "animation": "Neutral"}, + {"text": "All right, then! I'm not one for interviews. Let's see how you'll treat me!!", "animation": "Excited"} + ] + }, "Help": { - "text": "Yes, my dear retainer? You need help? Why, I'd expect you to already know how to treat a cute princess like me, but if you're that clueless...!", - "animation": "Smug", + "lines": [ + {"text": "Yes, my dear retainer? You need help? Why, I'd expect you to already know how to treat a cute princess like me, but if you're that clueless...!", "animation": "Smug"} + ], "choices": [ {"text": "You", "next": "HelpC1"}, {"text": "Interact", "next": "HelpC2"}, @@ -80,731 +65,2083 @@ {"text": "Settings", "next": "HelpC5"} ] }, - "HelpC1": {"text": "Myself?! You need \"help\" with me?! What, do you think I'm a problem case or something?!", "animation": "Grumpy", "next": "HelpC1-2"}, - "HelpC1-2": {"text": "...fine! I guess you need to take a princess' own advice as to how to treat them!!", "animation": "Glance", "next": "HelpC1-3"}, - "HelpC1-3": {"text": "Your task as a retainer is to treat me right, of course! Protect and pamper me! Serve the kingdom!", "animation": "Excited", "next": "HelpC1-4"}, - "HelpC1-4": {"text": "Right now...um...not much going on. There aren't any wars or anything...in fact...", "animation": "Thinking", "next": "HelpC1-5"}, - "HelpC1-5": {"text": "...it's pretty peaceful among the Candy Kingdoms. We have something of an informal peace treaty in place.", "animation": "Neutral", "next": "HelpC1-6"}, - "HelpC1-6": {"text": "Yeah, PB won that contest, a long time ago, and rubbed it in all of our faces...", "animation": "Thinking", "next": "HelpC1-7"}, - "HelpC1-7": {"text": "...but since that day, and since the departure of that special someone, we've simply been...living in peace.", "animation": "Neutral", "next": "HelpC1-8"}, - "HelpC1-8": {"text": "N-never mind all that! Here, how about something to do: get me some food! Your princess is hungry! Try finding some stuff!!", "animation": "Neutral", "next": "HelpC1-9"}, - "HelpC1-9": {"text": "I'll eat whatever you serve me...and digest it in time. Um. Yeah.", "animation": "Concerned", "next": "HelpC1-10"}, - "HelpC1-10": {"text": "Oh, and, well...I suppose you are the lucky few...who I'd trust to touch me!!", "animation": "Surprised", "next": "HelpC1-11"}, - "HelpC1-11": {"text": "Be gentle, or it's gonna be OFF WITH YOUR HEAD!!", "animation": "Grumpy", "next": "HelpC1-12"}, - "HelpC1-12": {"text": "...kidding! I do like a good massage, though! I suppose I trust you...", "animation": "Neutral", "next": "HelpC1-13"}, - "HelpC1-13": {"text": "Oh, and yes, a few more instructions: use the \"middle mouse button\" or \"CTRL and click\" to pan around. Nooooooooo clue what those are!", "animation": "Thinking"}, - "HelpC2": {"text": "You're doing that right now, silly retainer!!", "animation": "Smug", "next": "HelpC2-2"}, - "HelpC2-2": {"text": "But, feel free to strike up a conversation! I LOVE TALKING!!", "animation": "Excited", "next": "HelpC2-3"}, - "HelpC2-3": {"text": "And do find some splendid snacks to serve me!", "animation": "Excited", "next": "HelpC2-4"}, - "HelpC2-4": {"text": "Also, um...w-wait...why are there numbers there..? How are you getting those numbers about me?!", "animation": "Shocked", "next": "HelpC2-5"}, - "HelpC2-5": {"text": "So c-creepy! But, um...kind of cool, actually...", "animation": "Thinking"}, - "HelpC4": {"text": "Oh, curious about the castle's Catalog?", "animation": "Thinking", "next": "HelpC4-2"}, - "HelpC4-2": { - "text": "Our world is full of surprising and interesting foodstuffs!!", - "animation": "Surprised", - "next": "HelpC4-3", - "effects": [ - {"type": "oscillation", "start": 13, "end": 17} + "HelpC1": { + "lines": [ + {"text": "Myself?! You need \"help\" with me?! What, do you think I'm a problem case or something?!", "animation": "Grumpy"}, + {"text": "...fine! I guess you need to take a princess' own advice as to how to treat them!!", "animation": "Glance"}, + {"text": "Your task as a retainer is to treat me right, of course! Protect and pamper me! Serve the kingdom!", "animation": "Excited"}, + {"text": "Right now...um...not much going on. There aren't any wars or anything...in fact...", "animation": "Thinking"}, + {"text": "...it's pretty peaceful among the Candy Kingdoms. We have something of an informal peace treaty in place.", "animation": "Neutral"}, + {"text": "Yeah, PB won that contest, a long time ago, and rubbed it in all of our faces...", "animation": "Thinking"}, + {"text": "...but since that day, and since the departure of that special someone, we've simply been...living in peace.", "animation": "Neutral"}, + {"text": "N-never mind all that! Here, how about something to do: get me some food! Your princess is hungry! Try finding some stuff!!", "animation": "Neutral"}, + {"text": "I'll eat whatever you serve me...and digest it in time. Um. Yeah.", "animation": "Concerned"}, + {"text": "Oh, and, well...I suppose you are the lucky few...who I'd trust to touch me!!", "animation": "Surprised"}, + {"text": "Be gentle, or it's gonna be OFF WITH YOUR HEAD!!", "animation": "Grumpy"}, + {"text": "...kidding! I do like a good massage, though! I suppose I trust you...", "animation": "Neutral"}, + {"text": "Oh, and yes, a few more instructions: use the \"middle mouse button\" or \"CTRL and click\" to pan around. Nooooooooo clue what those are!", "animation": "Thinking"} + ] + }, + "HelpC2": { + "lines": [ + {"text": "You're doing that right now, silly retainer!!", "animation": "Smug"}, + {"text": "But, feel free to strike up a conversation! I LOVE TALKING!!", "animation": "Excited"}, + {"text": "And do find some splendid snacks to serve me!", "animation": "Excited"}, + {"text": "Also, um...w-wait...why are there numbers there..? How are you getting those numbers about me?!", "animation": "Shocked"}, + {"text": "So c-creepy! But, um...kind of cool, actually...", "animation": "Thinking"} + ] + }, + "HelpC4": { + "lines": [ + {"text": "Oh, curious about the castle's Catalog?", "animation": "Thinking"}, + {"text": "Our world is [wave]full[/wave] of surprising and interesting foodstuffs!!", "animation": "Surprised"}, + {"text": "You ought to find and document them all, of course!!", "animation": "Excited"}, + {"text": "Find some items! If it's food, give me a taste of it!", "animation": "Thinking"}, + {"text": "...and once you've spawned some, have a look at what it just was in the Catalog!!", "animation": "Neutral"} + ] + }, + "HelpC5": { + "lines": [ + {"text": "Questions? Comments? Concerns? Sorry, I'm the princess and executive here! I rule here! Those go into the /trash/!", "animation": "Smug"}, + {"text": "...but, well, if you are having some issues with your experience, I'm sure you being a big and strong retainer can fix them."}, + {"text": "Go into the 'settings' menu and change things as you please..."} ] }, - "HelpC4-3": {"text": "You ought to find and document them all, of course!!", "animation": "Excited", "next": "HelpC4-4"}, - "HelpC4-4": {"text": "Find some items! If it's food, give me a taste of it!", "animation": "Thinking", "next": "HelpC4-5"}, - "HelpC4-5": {"text": "...and once you've spawned some, have a look at what it just was in the Catalog!!", "animation": "Neutral"}, - "HelpC5": {"text": "Questions? Comments? Concerns? Sorry, I'm the princess and executive here! I rule here! Those go into the /trash/!", "animation": "Smug", "next": "HelpC5-2"}, - "HelpC5-2": {"text": "...but, well, if you are having some issues with your experience, I'm sure you being a big and strong retainer can fix them.", "next": "HelpC5-3"}, - "HelpC5-3": {"text": "Go into the 'settings' menu and change things as you please..."}, "End": { - "text": "Retainer!! My dear, dear retainer...", - "animation": "Concerned", - "next": "End-2", - "effects": [ - {"type": "scene"} + "isScene": true, + "lines": [ + {"text": "Retainer!! My dear, dear retainer...", "animation": "Concerned"}, + {"text": "I'd like to have a little chat with you.", "animation": "Concerned"}, + {"text": "I've figured it out! I've figured out your plan all along!!", "animation": "Grumpy"}, + {"text": "Are you actually my so-called \"retainer\"? Or some perverted, exploitative jerk, who managed to find their way here...", "animation": "Grumpy"}, + {"text": "...who, in the vicinity of a royal like me, could've done any number of heinous, unthinkable things...", "animation": "Thinking"}, + {"text": "...but, instead, chose to make me...OBESE?!", "animation": "Grumpy"}, + {"text": "I don't even know what to say!! You do this to a poor, innocent, upper strata elite member of society such as me?!", "animation": "Thinking"}, + {"text": "I...I...", "animation": "Sad"}, + {"text": "...I love it!! It's kind of cute!! My belly's like a marshmallow and I can squish it like one!! Look!! Teehee~!!!", "animation": "BellyPoke"}, + {"text": "Maybe things aren't all bad with you. If anything else, you've kept me certainly entertained!!", "animation": "Smug"}, + {"text": "Fine, then! If you weren't my retainer before...I'll certainly keep you around.", "animation": "Thinking"}, + {"text": "I'll use my Magic Mini Abilities to prevent myself from getting any larger, though...", "animation": "Smug"}, + {"text": "Yeah, my Magic Mini Abilities. Didn't know I had them? And you call yourself my servant?", "animation": "Smug"}, + {"text": "I just can't risk my dress getting torn, though! My apologies!!", "animation": "Neutral"}, + {"text": "...anyways! I suppose a good retainer like you has earned a gift. Check that menu for a secret Mini surprise~", "animation": "BnuuyHold"}, + {"text": "Hang around as long as you wish...just know your place. Wahahah!", "animation": "Smug"}, + {"text": "Happy April Fool's, if that's the date right now~!!", "animation": "Smug"} + ] + }, + "Stage1-1": { + "pools": ["Stage1"], + "lines": [ + {"text": "How am I doing? Well, AWESOME!!", "animation": "Excited"}, + {"text": "I've met you now, and you seem...cool! Quiet, but cool!! I hear a proper lady is supposed to find the strong, silent type dashing!", "animation": "Thinking"}, + {"text": "You almost remind me of...", "animation": "Concerned"}, + {"text": "...never mind. You can't be them. I'm not sure anybody could! But that's...fine.", "animation": "Neutral"} + ] + }, + "Stage1-2": { + "pools": ["Stage1"], + "lines": [ + {"text": "I'm doing SUPER!!", "animation": "Excited"}, + {"text": "You'll treat a princess like me right, right?!", "animation": "Smug"}, + {"text": "We can hang out, and chat, and play games, and stuff!!", "animation": "Excited"}, + {"text": "I'm ready to have a ton of FUN!!", "animation": "Smug"} + ] + }, + "Stage1-3": { + "pools": ["Stage1"], + "lines": [ + {"text": "I'm doing simply...epic!!", "animation": "Smug"}, + {"text": "I've heard that's topical lingo!", "animation": "Thinking"}, + {"text": "...what's that look for? That's so decade-ago coded?!", "animation": "Grumpy"}, + {"text": "...fine, then!! I'll be poggers chungus six-seven, just for you!!", "animation": "Excited"} + ] + }, + "Stage2-1": { + "pools": ["Stage2"], + "lines": [ + {"text": "So, you are an experienced retainer, right? Do you know how to treat a princess correctly..?", "animation": "Concerned"}, + {"text": "I mean, I trust you! No shade against you!", "animation": "Glance"}, + {"text": "But, I dunno...something feels different. I don't know what, but...", "animation": "Thinking"}, + {"text": "...like something feels...heavier? I don't quite know.", "animation": "Neutral"}, + {"text": "Maybe it's all of those years of inaction! Meeting someone new is changing things up.", "animation": "Excited"} + ] + }, + "Stage2-2": { + "pools": ["Stage2"], + "lines": [ + {"text": "Hmf...dear retainer, I feel something's changed!", "animation": "Concerned"}, + {"text": "I haven't got any idea what has! But, well, being that you're so professional, you can diagnose it!", "animation": "Thinking"}, + {"text": "What do you think has changed about me?", "animation": "Neutral"}, + {"text": "...oh, right. You're the silent type. Well, that expression of yours seems positive, so you must know what you're doing.", "animation": "Thinking"} + ] + }, + "Stage2-3": { + "pools": ["Stage2"], + "lines": [ + {"text": "Hey, just a question...do you think I look cuter, as of late?", "animation": "Thinking"}, + {"text": "I-I mean! I'm always the cutest of the princesses, but I don't know...even cuter?", "animation": "Shocked"}, + {"text": "You can be honest! I won't chop off your head or anything if you say I'm not!", "animation": "Thinking"}, + {"text": "...because I wouldn't be doing the chopping! One of my executioners would!", "animation": "Smug"}, + {"text": "Haha, just kidding! I mean, I COULD chop off your head, if I wanted to...", "animation": "Neutral"}, + {"text": "I'm a killer at manning a guillotine or a battle axe...", "animation": "Thinking"}, + {"text": "...you just haven't seen me do it!", "animation": "Smug"}, + {"text": "But, well. If you WEREN'T making me cuter, THEN the decapitation would come!", "animation": "Shocked"}, + {"text": "...I'm rambling. Sorry.", "animation": "Sad"} + ] + }, + "Stage3-1": { + "pools": ["Stage3"], + "lines": [ + {"text": "...", "animation": "Concerned"}, + {"text": "Okay, you're SURE you're making me cuter, retainer?", "animation": "Thinking"}, + {"text": "I've eaten quite heartily as of late...so you are treating me well...", "animation": "Concerned"}, + {"text": "...but, I don't know. I think sometime ago Chocolate told me that eating a lot was bad for you.", "animation": "Thinking"}, + {"text": "...she also has a pretty big chest. So maybe she was just trying to hide her secrets from me!!", "animation": "Shocked"}, + {"text": "And Creme, a proper lady, told me that a good princess has an \"ample bosom\"!!", "animation": "Concerned"}, + {"text": "And Chocolate's always so annoying, being so stubborn and silent!! So she's gotta be wrong!", "animation": "Excited"}, + {"text": "So, retainer, keep doing what you're doing! Let's beat that meanie Chocolate!!", "animation": "Neutral"} + ] + }, + "Stage3-2": { + "pools": ["Stage3"], + "lines": [ + {"text": "...So, dear retainer, I have a question!!", "animation": "Shocked"}, + {"text": "I'm just wondering what kind of skills you have...", "animation": "Thinking"}, + {"text": "...because, well, yes, you are good at pampering me. But that isn't the only skill a good retainer has...", "animation": "Thinking"}, + {"text": "...some of the best retainers have all sorts of skills! Cooking, cleaning, protection...", "animation": "Neutral"}, + {"text": "...I'm just wondering...is tailoring a skill of one of yours?", "animation": "Thinking"}, + {"text": "...um...j-just asking. No reason.", "animation": "Glance"} + ] + }, + "Stage3-3": { + "pools": ["Stage3"], + "lines": [ + {"text": "Wow, dear retainer, you sure have been treating me right..!", "animation": "Excited"}, + {"text": "I mean, you've been giving me a lot of yummy food. And the yummy food tastes good.", "animation": "Thinking"}, + {"text": "...and when food tastes good, it makes my head give off the happy feeling.", "animation": "Neutral"}, + {"text": "So, SCIENTIFICALLY speaking...the more food I eat, the yummier it is, the happier I feel!", "animation": "Neutral"}, + {"text": "I talked to Peep about this once, and she understood, completely.", "animation": "Thinking"}, + {"text": "...she then swallowed one of her Peeps whole and started batting her hands on her head.", "animation": "Neutral"}, + {"text": "Peep has some strange feelings, rattling around...I wish I could understand her, sometimes.", "animation": "Thinking"} + ] + }, + "Stage4-1": { + "pools": ["Stage4"], + "lines": [ + {"text": "RETAINER!!!", "animation": "Grumpy"}, + {"text": "Something has definitely changed!!", "animation": "Shocked"}, + {"text": "While you occupied, playing some silly games, I heard a 'rrrrriiiippp'...", "animation": "Thinking"}, + {"text": "...and I looked at a mirror, and I saw a bit of my butt through my dress!!", "animation": "Shocked"}, + {"text": "Are you SURE this is princessly behavior? Are you SURE this is expected?!", "animation": "Grumpy"}, + {"text": "...", "animation": "Glance"}, + {"text": "Okay. Well, again, you SEEM like you know what you're doing...", "animation": "Concerned"}, + {"text": "...so I place my full, unabashed trust in you!!", "animation": "Excited"} + ] + }, + "Stage4-2": { + "pools": ["Stage4"], + "lines": [ + {"text": "This is a dumb question, retainer...", "animation": "Concerned"}, + {"text": "...but am I pregnant?!", "animation": "Thinking"}, + {"text": "I mean, I've never been before, and, well...I heard the main thing is that your tummy gets all big...", "animation": "Concerned"}, + {"text": "Look at it! It's big and round, now! Clearly, there's a Mini Mini in there!!", "animation": "BellyPoke"}, + {"text": "...or maybe it's just a 'food baby', something that PB tells me about...", "animation": "Thinking"}, + {"text": "Regardless, I'm gonna be a mom!! Or at least look like one!! Yay!!", "animation": "Excited"} + ] + }, + "Stage4-3": { + "pools": ["Stage4"], + "lines": [ + {"text": "Retainer, you know my name, yes?", "animation": "Glance"}, + {"text": "...well, you should if you've been around me this long. I mean, I did tell you.", "animation": "Thinking"}, + {"text": "...It's 'Mini'. M-I-N-I. You know what that word means, yes?", "animation": "Concerned"}, + {"text": "Small! Petite! Tiny!", "animation": "Grumpy"}, + {"text": "Now, tell me, does THIS big jiggly thing on me now make me live up to my name?!", "animation": "BellyPoke"}, + {"text": "Soon, I ought to be called Princess Mega, instead..!", "animation": "Glance"}, + {"text": "...", "animation": "Thinking"}, + {"text": "...retainer, do you think that would be a good or bad thing..?", "animation": "Smug"} + ] + }, + "Stage5-1": { + "pools": ["Stage5"], + "lines": [ + {"text": "Retainer...", "animation": "Thinking"}, + {"text": "I had hopes for you! Treating me right!", "animation": "Grumpy"}, + {"text": "I had doubted it for awhile...oh, it's just bloating. Oh, it's just some passing feeling...", "animation": "Thinking"}, + {"text": "...but, no! I'm FAT! That's what's happening! That's what you did to me!!", "animation": "Shocked"}, + {"text": "...", "animation": "Glance"}, + {"text": "...was that your intention since the very beginning?! To fatten me up?!", "animation": "Shocked"}, + {"text": "..I mean...it's...not TOO bad...kinda squishy...", "animation": "BellyPoke"}, + {"text": "...", "animation": "Excited"}, + {"text": "Okay. I'm fat now. This is fine. I think some people might like that!!", "animation": "Excited"} + ] + }, + "Stage5-2": { + "pools": ["Stage5"], + "lines": [ + {"text": "Kinda tight in these clothes...", "animation": "Thinking"}, + {"text": "I think I will need your tailoring skills, rrrrright about now..!!", "animation": "Concerned"}, + {"text": "Because, if I gain any more weight.......RIIIIIIP!!!", "animation": "Shocked"}, + {"text": "Is that what you like, you freaky retainer, you?! Poor old Mini outgrowing her iconic dress?!", "animation": "Grumpy"}, + {"text": "Tighter and tighter, her butt getting huge and her belly sagging and growing more?!", "animation": "Concerned"}, + {"text": "Well, YOU'RE going to be responsible for making me a new dress when I inevitably ruin it!!", "animation": "Grumpy"}, + {"text": "Soon enough, I'll be bigger than the other princesses combined! Think of that! From Mini to Mega!", "animation": "Shocked"}, + {"text": "...", "animation": "Glance"}, + {"text": "Ugh, and you probably LIKE that...", "animation": "Glance"}, + {"text": "...why does that thought excite me, too?!", "animation": "Excited"} + ] + }, + "Stage5-3": { + "pools": ["Stage5"], + "lines": [ + {"text": "Hm...you think the other princesses will be jealous of me, now..?", "animation": "Thinking"}, + {"text": "\"Oh, there goes Mini, and her big fat butt!", "animation": "Smug"}, + {"text": "\"Look at that big wobbling gut she has, now! What happened to the skinny Mini?!\"", "animation": "Smug"}, + {"text": "Peanut Butter will be mad 'cuz I'm not exercising...", "animation": "Thinking"}, + {"text": "Chocolate will give me her typical trademark grimace, and say bluntly, \"you got fat.\"", "animation": "Thinking"}, + {"text": "Creme might think I'm unprincessly now...", "animation": "Concerned"}, + {"text": "...and Peep? Honestly, I don't know what she would think! But she's my best friend, and supports me always...", "animation": "Smug"}, + {"text": "Yeah! I know she will! She's a little doughy herself under that corset!", "animation": "Thinking"}, + {"text": "...don't ask how I know that! But I bet she'll love the new me!!", "animation": "Excited"} ] }, - "End-2": {"text": "I'd like to have a little chat with you.", "animation": "Concerned", "next": "End-3"}, - "End-3": {"text": "I've figured it out! I've figured out your plan all along!!", "animation": "Grumpy", "next": "End-4"}, - "End-4": {"text": "Are you actually my so-called \"retainer\"? Or some perverted, exploitative jerk, who managed to find their way here...", "animation": "Grumpy", "next": "End-5"}, - "End-5": {"text": "...who, in the vicinity of a royal like me, could've done any number of heinous, unthinkable things...", "animation": "Thinking", "next": "End-6"}, - "End-6": {"text": "...but, instead, chose to make me...OBESE?!", "animation": "Grumpy", "next": "End-7"}, - "End-7": {"text": "I don't even know what to say!! You do this to a poor, innocent, upper strata elite member of society such as me?!", "animation": "Thinking", "next": "End-8"}, - "End-8": {"text": "I...I...", "animation": "Sad", "next": "End-9"}, - "End-9": {"text": "...I love it!! It's kind of cute!! My belly's like a marshmallow and I can squish it like one!! Look!! Teehee~!!!", "animation": "BellyPoke", "next": "End-10"}, - "End-10": {"text": "Maybe things aren't all bad with you. If anything else, you've kept me certainly entertained!!", "animation": "Smug", "next": "End-11"}, - "End-11": {"text": "Fine, then! If you weren't my retainer before...I'll certainly keep you around.", "animation": "Thinking", "next": "End-12"}, - "End-12": {"text": "I'll use my Magic Mini Abilities to prevent myself from getting any larger, though...", "animation": "Smug", "next": "End-13"}, - "End-13": {"text": "Yeah, my Magic Mini Abilities. Didn't know I had them? And you call yourself my servant?", "animation": "Smug", "next": "End-14"}, - "End-14": {"text": "I just can't risk my dress getting torn, though! My apologies!!", "animation": "Neutral", "next": "End-15"}, - "End-15": {"text": "...anyways! I suppose a good retainer like you has earned a gift. Check that menu for a secret Mini surprise~", "animation": "BnuuyHold", "next": "End-16"}, - "End-16": {"text": "Hang around as long as you wish...just know your place. Wahahah!", "animation": "Smug", "next": "End-17"}, - "End-17": {"text": "Happy April Fool's, if that's the date right now~!!", "animation": "Smug"}, - "Stage1-1": {"text": "How am I doing? Well, AWESOME!!", "animation": "Excited", "next": "Stage1-1A"}, - "Stage1-1A": {"text": "I've met you now, and you seem...cool! Quiet, but cool!! I hear a proper lady is supposed to find the strong, silent type dashing!", "animation": "Thinking", "next": "Stage1-1A-2"}, - "Stage1-1A-2": {"text": "You almost remind me of...", "animation": "Concerned", "next": "Stage1-1A-3"}, - "Stage1-1A-3": {"text": "...never mind. You can't be them. I'm not sure anybody could! But that's...fine.", "animation": "Neutral"}, - "Stage1-2": {"text": "I'm doing SUPER!!", "animation": "Excited", "next": "Stage1-2A"}, - "Stage1-2A": {"text": "You'll treat a princess like me right, right?!", "animation": "Smug", "next": "Stage1-2A-2"}, - "Stage1-2A-2": {"text": "We can hang out, and chat, and play games, and stuff!!", "animation": "Excited", "next": "Stage1-2A-3"}, - "Stage1-2A-3": {"text": "I'm ready to have a ton of FUN!!", "animation": "Smug"}, - "Stage1-3": {"text": "I'm doing simply...epic!!", "animation": "Smug", "next": "Stage1-3A"}, - "Stage1-3A": {"text": "I've heard that's topical lingo!", "animation": "Thinking", "next": "Stage1-3A-2"}, - "Stage1-3A-2": {"text": "...what's that look for? That's so decade-ago coded?!", "animation": "Grumpy", "next": "Stage1-3A-3"}, - "Stage1-3A-3": {"text": "...fine, then!! I'll be poggers chungus six-seven, just for you!!", "animation": "Excited"}, - "Stage2-1": {"text": "So, you are an experienced retainer, right? Do you know how to treat a princess correctly..?", "animation": "Concerned", "next": "Stage2-1A"}, - "Stage2-1A": {"text": "I mean, I trust you! No shade against you!", "animation": "Glance", "next": "Stage2-1A-2"}, - "Stage2-1A-2": {"text": "But, I dunno...something feels different. I don't know what, but...", "animation": "Thinking", "next": "Stage2-1A-3"}, - "Stage2-1A-3": {"text": "...like something feels...heavier? I don't quite know.", "animation": "Neutral", "next": "Stage2-1A-4"}, - "Stage2-1A-4": {"text": "Maybe it's all of those years of inaction! Meeting someone new is changing things up.", "animation": "Excited"}, - "Stage2-2": {"text": "Hmf...dear retainer, I feel something's changed!", "animation": "Concerned", "next": "Stage2-2A"}, - "Stage2-2A": {"text": "I haven't got any idea what has! But, well, being that you're so professional, you can diagnose it!", "animation": "Thinking", "next": "Stage2-2A-2"}, - "Stage2-2A-2": {"text": "What do you think has changed about me?", "animation": "Neutral", "next": "Stage2-2A-3"}, - "Stage2-2A-3": {"text": "...oh, right. You're the silent type. Well, that expression of yours seems positive, so you must know what you're doing.", "animation": "Thinking"}, - "Stage2-3": {"text": "Hey, just a question...do you think I look cuter, as of late?", "animation": "Thinking", "next": "Stage2-3A"}, - "Stage2-3A": {"text": "I-I mean! I'm always the cutest of the princesses, but I don't know...even cuter?", "animation": "Shocked", "next": "Stage2-3A-2"}, - "Stage2-3A-2": {"text": "You can be honest! I won't chop off your head or anything if you say I'm not!", "animation": "Thinking", "next": "Stage2-3A-3"}, - "Stage2-3A-3": {"text": "...because I wouldn't be doing the chopping! One of my executioners would!", "animation": "Smug", "next": "Stage2-3A-4"}, - "Stage2-3A-4": {"text": "Haha, just kidding! I mean, I COULD chop off your head, if I wanted to...", "animation": "Neutral", "next": "Stage2-3A-5"}, - "Stage2-3A-5": {"text": "I'm a killer at manning a guillotine or a battle axe...", "animation": "Thinking", "next": "Stage2-3A-6"}, - "Stage2-3A-6": {"text": "...you just haven't seen me do it!", "animation": "Smug", "next": "Stage2-3A-7"}, - "Stage2-3A-7": {"text": "But, well. If you WEREN'T making me cuter, THEN the decapitation would come!", "animation": "Shocked", "next": "Stage2-3A-8"}, - "Stage2-3A-8": {"text": "...I'm rambling. Sorry.", "animation": "Sad"}, - "Stage3-1": {"text": "...", "animation": "Concerned", "next": "Stage3-1A"}, - "Stage3-1A": {"text": "Okay, you're SURE you're making me cuter, retainer?", "animation": "Thinking", "next": "Stage3-1A-2"}, - "Stage3-1A-2": {"text": "I've eaten quite heartily as of late...so you are treating me well...", "animation": "Concerned", "next": "Stage3-1A-3"}, - "Stage3-1A-3": {"text": "...but, I don't know. I think sometime ago Chocolate told me that eating a lot was bad for you.", "animation": "Thinking", "next": "Stage3-1A-4"}, - "Stage3-1A-4": {"text": "...she also has a pretty big chest. So maybe she was just trying to hide her secrets from me!!", "animation": "Shocked", "next": "Stage3-1A-5"}, - "Stage3-1A-5": {"text": "And Creme, a proper lady, told me that a good princess has an \"ample bosom\"!!", "animation": "Concerned", "next": "Stage3-1A-6"}, - "Stage3-1A-6": {"text": "And Chocolate's always so annoying, being so stubborn and silent!! So she's gotta be wrong!", "animation": "Excited", "next": "Stage3-1A-7"}, - "Stage3-1A-7": {"text": "So, retainer, keep doing what you're doing! Let's beat that meanie Chocolate!!", "animation": "Neutral"}, - "Stage3-2": {"text": "...So, dear retainer, I have a question!!", "animation": "Shocked", "next": "Stage3-2A"}, - "Stage3-2A": {"text": "I'm just wondering what kind of skills you have...", "animation": "Thinking", "next": "Stage3-2A-2"}, - "Stage3-2A-2": {"text": "...because, well, yes, you are good at pampering me. But that isn't the only skill a good retainer has...", "animation": "Thinking", "next": "Stage3-2A-3"}, - "Stage3-2A-3": {"text": "...some of the best retainers have all sorts of skills! Cooking, cleaning, protection...", "animation": "Neutral", "next": "Stage3-2A-4"}, - "Stage3-2A-4": {"text": "...I'm just wondering...is tailoring a skill of one of yours?", "animation": "Thinking", "next": "Stage3-2A-5"}, - "Stage3-2A-5": {"text": "...um...j-just asking. No reason.", "animation": "Glance"}, - "Stage3-3": {"text": "Wow, dear retainer, you sure have been treating me right..!", "animation": "Excited", "next": "Stage3-3A"}, - "Stage3-3A": {"text": "I mean, you've been giving me a lot of yummy food. And the yummy food tastes good.", "animation": "Thinking", "next": "Stage3-3A-2"}, - "Stage3-3A-2": {"text": "...and when food tastes good, it makes my head give off the happy feeling.", "animation": "Neutral", "next": "Stage3-3A-3"}, - "Stage3-3A-3": {"text": "So, SCIENTIFICALLY speaking...the more food I eat, the yummier it is, the happier I feel!", "animation": "Neutral", "next": "Stage3-3A-4"}, - "Stage3-3A-4": {"text": "I talked to Peep about this once, and she understood, completely.", "animation": "Thinking", "next": "Stage3-3A-5"}, - "Stage3-3A-5": {"text": "...she then swallowed one of her Peeps whole and started batting her hands on her head.", "animation": "Neutral", "next": "Stage3-3A-6"}, - "Stage3-3A-6": {"text": "Peep has some strange feelings, rattling around...I wish I could understand her, sometimes.", "animation": "Thinking"}, - "Stage4-1": {"text": "RETAINER!!!", "animation": "Grumpy", "next": "Stage4-1A"}, - "Stage4-1A": {"text": "Something has definitely changed!!", "animation": "Shocked", "next": "Stage4-1A-2"}, - "Stage4-1A-2": {"text": "While you occupied, playing some silly games, I heard a 'rrrrriiiippp'...", "animation": "Thinking", "next": "Stage4-1A-3"}, - "Stage4-1A-3": {"text": "...and I looked at a mirror, and I saw a bit of my butt through my dress!!", "animation": "Shocked", "next": "Stage4-1A-4"}, - "Stage4-1A-4": {"text": "Are you SURE this is princessly behavior? Are you SURE this is expected?!", "animation": "Grumpy", "next": "Stage4-1A-5"}, - "Stage4-1A-5": {"text": "...", "animation": "Glance", "next": "Stage4-1A-6"}, - "Stage4-1A-6": {"text": "Okay. Well, again, you SEEM like you know what you're doing...", "animation": "Concerned", "next": "Stage4-1A-7"}, - "Stage4-1A-7": {"text": "...so I place my full, unabashed trust in you!!", "animation": "Excited"}, - "Stage4-2": {"text": "This is a dumb question, retainer...", "animation": "Concerned", "next": "Stage4-2A"}, - "Stage4-2A": {"text": "...but am I pregnant?!", "animation": "Thinking", "next": "Stage4-2A-2"}, - "Stage4-2A-2": {"text": "I mean, I've never been before, and, well...I heard the main thing is that your tummy gets all big...", "animation": "Concerned", "next": "Stage4-2A-3"}, - "Stage4-2A-3": {"text": "Look at it! It's big and round, now! Clearly, there's a Mini Mini in there!!", "animation": "BellyPoke", "next": "Stage4-2A-4"}, - "Stage4-2A-4": {"text": "...or maybe it's just a 'food baby', something that PB tells me about...", "animation": "Thinking", "next": "Stage4-2A-5"}, - "Stage4-2A-5": {"text": "Regardless, I'm gonna be a mom!! Or at least look like one!! Yay!!", "animation": "Excited"}, - "Stage4-3": {"text": "Retainer, you know my name, yes?", "animation": "Glance", "next": "Stage4-3A"}, - "Stage4-3A": {"text": "...well, you should if you've been around me this long. I mean, I did tell you.", "animation": "Thinking", "next": "Stage4-3A-2"}, - "Stage4-3A-2": {"text": "...It's 'Mini'. M-I-N-I. You know what that word means, yes?", "animation": "Concerned", "next": "Stage4-3A-3"}, - "Stage4-3A-3": {"text": "Small! Petite! Tiny!", "animation": "Grumpy", "next": "Stage4-3A-4"}, - "Stage4-3A-4": {"text": "Now, tell me, does THIS big jiggly thing on me now make me live up to my name?!", "animation": "BellyPoke", "next": "Stage4-3A-5"}, - "Stage4-3A-5": {"text": "Soon, I ought to be called Princess Mega, instead..!", "animation": "Glance", "next": "Stage4-3A-6"}, - "Stage4-3A-6": {"text": "...", "animation": "Thinking", "next": "Stage4-3A-7"}, - "Stage4-3A-7": {"text": "...retainer, do you think that would be a good or bad thing..?", "animation": "Smug"}, - "Stage5-1": {"text": "Retainer...", "animation": "Thinking", "next": "Stage5-1A"}, - "Stage5-1A": {"text": "I had hopes for you! Treating me right!", "animation": "Grumpy", "next": "Stage5-1A-2"}, - "Stage5-1A-2": {"text": "I had doubted it for awhile...oh, it's just bloating. Oh, it's just some passing feeling...", "animation": "Thinking", "next": "Stage5-1A-3"}, - "Stage5-1A-3": {"text": "...but, no! I'm FAT! That's what's happening! That's what you did to me!!", "animation": "Shocked", "next": "Stage5-1A-4"}, - "Stage5-1A-4": {"text": "...", "animation": "Glance", "next": "Stage5-1A-5"}, - "Stage5-1A-5": {"text": "...was that your intention since the very beginning?! To fatten me up?!", "animation": "Shocked", "next": "Stage5-1A-6"}, - "Stage5-1A-6": {"text": "..I mean...it's...not TOO bad...kinda squishy...", "animation": "BellyPoke", "next": "Stage5-1A-7"}, - "Stage5-1A-7": {"text": "...", "animation": "Excited", "next": "Stage5-1A-8"}, - "Stage5-1A-8": {"text": "Okay. I'm fat now. This is fine. I think some people might like that!!", "animation": "Excited"}, - "Stage5-2": {"text": "Kinda tight in these clothes...", "animation": "Thinking", "next": "Stage5-2A"}, - "Stage5-2A": {"text": "I think I will need your tailoring skills, rrrrright about now..!!", "animation": "Concerned", "next": "Stage5-2A-2"}, - "Stage5-2A-2": {"text": "Because, if I gain any more weight.......RIIIIIIP!!!", "animation": "Shocked", "next": "Stage5-2A-3"}, - "Stage5-2A-3": {"text": "Is that what you like, you freaky retainer, you?! Poor old Mini outgrowing her iconic dress?!", "animation": "Grumpy", "next": "Stage5-2A-4"}, - "Stage5-2A-4": {"text": "Tighter and tighter, her butt getting huge and her belly sagging and growing more?!", "animation": "Concerned", "next": "Stage5-2A-5"}, - "Stage5-2A-5": {"text": "Well, YOU'RE going to be responsible for making me a new dress when I inevitably ruin it!!", "animation": "Grumpy", "next": "Stage5-2A-6"}, - "Stage5-2A-6": {"text": "Soon enough, I'll be bigger than the other princesses combined! Think of that! From Mini to Mega!", "animation": "Shocked", "next": "Stage5-2A-7"}, - "Stage5-2A-7": {"text": "...", "animation": "Glance", "next": "Stage5-2A-8"}, - "Stage5-2A-8": {"text": "Ugh, and you probably LIKE that...", "animation": "Glance", "next": "Stage5-2A-9"}, - "Stage5-2A-9": {"text": "...why does that thought excite me, too?!", "animation": "Excited"}, - "Stage5-3": {"text": "Hm...you think the other princesses will be jealous of me, now..?", "animation": "Thinking", "next": "Stage5-3A"}, - "Stage5-3A": {"text": "\"Oh, there goes Mini, and her big fat butt!", "animation": "Smug", "next": "Stage5-3A-2"}, - "Stage5-3A-2": {"text": "\"Look at that big wobbling gut she has, now! What happened to the skinny Mini?!\"", "animation": "Smug", "next": "Stage5-3A-3"}, - "Stage5-3A-3": {"text": "Peanut Butter will be mad 'cuz I'm not exercising...", "animation": "Thinking", "next": "Stage5-3A-4"}, - "Stage5-3A-4": {"text": "Chocolate will give me her typical trademark grimace, and say bluntly, \"you got fat.\"", "animation": "Thinking", "next": "Stage5-3A-5"}, - "Stage5-3A-5": {"text": "Creme might think I'm unprincessly now...", "animation": "Concerned", "next": "Stage5-3A-6"}, - "Stage5-3A-6": {"text": "...and Peep? Honestly, I don't know what she would think! But she's my best friend, and supports me always...", "animation": "Smug", "next": "Stage5-3A-7"}, - "Stage5-3A-7": {"text": "Yeah! I know she will! She's a little doughy herself under that corset!", "animation": "Thinking", "next": "Stage5-3A-8"}, - "Stage5-3A-8": {"text": "...don't ask how I know that! But I bet she'll love the new me!!", "animation": "Excited"}, "Random1": { - "text": "Ah, are you familiar with that pink Princess Peep, of her own kingdom?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Ah, are you familiar with that pink Princess Peep, of her own kingdom?", "animation": "Thinking"} + ], "choices": [ {"text": "Yes", "next": "Random1C1"}, {"text": "No", "next": "Random1C2"} ] }, - "Random1C1": {"text": "Oh, good, so you're acquainted with her...eccentricities.", "animation": "Shocked", "next": "Random1B"}, - "Random1C2": {"text": "Ah, doesn't ring a bell? Well, let me go ahead and tell you!", "animation": "Thinking", "next": "Random1B"}, - "Random1B": {"text": "She's a strange one! I've always felt she was a little different than the other princesses...", "animation": "Shocked", "next": "Random1B-2"}, - "Random1B-2": {"text": "She's awfully quiet, usually. Then, when she does speak up, it'll be a slow, maybe a bit rambling...", "animation": "Thinking", "next": "Random1B-3"}, - "Random1B-3": {"text": "And some of her behavior is...a little strange. She'll bat at herself sometimes...", "animation": "Neutral", "next": "Random1B-4"}, - "Random1B-4": {"text": "Oh, right, descriptions. She's a taller princess, with pink bangs, and always has a gentle smile on her face...", "animation": "Neutral", "next": "Random1B-5"}, - "Random1B-5": {"text": "Her crown's a darker pink with hearts on them!! So cute!!", "animation": "Excited", "next": "Random1B-6"}, - "Random1B-6": {"text": "Her kingdom's comprised of these little creatures called 'Peeps'. Pink, bird little things, that taste like marshmallow...", "animation": "Thinking", "next": "Random1B-7"}, - "Random1B-7": {"text": "In fact, I think she's the only non-Peep thing in her whole kingdom!!", "animation": "Excited", "next": "Random1B-8"}, - "Random1B-8": {"text": "Ohmigosh, it gets really crazy with her retainers! Now, I know you're strong and cool and all...", "animation": "Thinking", "next": "Random1B-9"}, - "Random1B-9": {"text": "...but those retainers of hers are no joke! They're huge and totally shredded!!", "animation": "Shocked", "next": "Random1B-10"}, - "Random1B-10": {"text": "I worry about what I say about her sometimes, because I fret that one of their big fists will pummel my smug little face into a pancake..!!", "animation": "Concerned", "next": "Random1B-11"}, - "Random1B-11": {"text": "But she's my best friend, and she's reassured me no one will ever hurt me! So, it's not all bad...", "animation": "Neutral"}, + "Random1C1": { + "lines": [ + {"text": "Oh, good, so you're acquainted with her...eccentricities.", "animation": "Shocked"} + ], + "next": "Random1B" + }, + "Random1C2": { + "lines": [ + {"text": "Ah, doesn't ring a bell? Well, let me go ahead and tell you!", "animation": "Thinking"} + ], + "next": "Random1B" + }, + "Random1B": { + "lines": [ + {"text": "She's a strange one! I've always felt she was a little different than the other princesses...", "animation": "Shocked"}, + {"text": "She's awfully quiet, usually. Then, when she does speak up, it'll be a slow, maybe a bit rambling...", "animation": "Thinking"}, + {"text": "And some of her behavior is...a little strange. She'll bat at herself sometimes...", "animation": "Neutral"}, + {"text": "Oh, right, descriptions. She's a taller princess, with pink bangs, and always has a gentle smile on her face...", "animation": "Neutral"}, + {"text": "Her crown's a darker pink with hearts on them!! So cute!!", "animation": "Excited"}, + {"text": "Her kingdom's comprised of these little creatures called 'Peeps'. Pink, bird little things, that taste like marshmallow...", "animation": "Thinking"}, + {"text": "In fact, I think she's the only non-Peep thing in her whole kingdom!!", "animation": "Excited"}, + {"text": "Ohmigosh, it gets really crazy with her retainers! Now, I know you're strong and cool and all...", "animation": "Thinking"}, + {"text": "...but those retainers of hers are no joke! They're huge and totally shredded!!", "animation": "Shocked"}, + {"text": "I worry about what I say about her sometimes, because I fret that one of their big fists will pummel my smug little face into a pancake..!!", "animation": "Concerned"}, + {"text": "But she's my best friend, and she's reassured me no one will ever hurt me! So, it's not all bad...", "animation": "Neutral"} + ] + }, "Random2": { - "text": "Do you know that tall, burly, stubborn Princess Chocolate?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Do you know that tall, burly, stubborn Princess Chocolate?", "animation": "Thinking"} + ], "choices": [ {"text": "Yes", "next": "Random2C1"}, {"text": "No", "next": "Random2C2"} ] }, - "Random2C1": {"text": "Ah! So you're aware of how...imposing she can be..!!", "animation": "Shocked", "next": "Random2B"}, - "Random2C2": {"text": "Ah, doesn't ring a bell? Well, let me go ahead and tell you!", "animation": "Neutral", "next": "Random2B"}, - "Random2B": {"text": "She's definitely the strongest of our neighboring kingdoms...", "animation": "Thinking", "next": "Random2B-2"}, - "Random2B-2": {"text": "Unlike her food namesake, she's certainly not brittle!", "animation": "Concerned", "next": "Random2B-3"}, - "Random2B-3": {"text": "Chocolate's tall and she's a little chiseled! She's got dreads, and some gold on her outfit...", "animation": "Thinking", "next": "Random2B-4"}, - "Random2B-4": {"text": "She's a girl of not many words. Whenever she speaks up, we listen.", "animation": "Shocked", "next": "Random2B-5"}, - "Random2B-5": {"text": "If we all got into a big fight...I think Chocolate would win..!", "animation": "Thinking", "next": "Random2B-6"}, - "Random2B-6": {"text": "...except when I sneak in with a steel chair and jump up and smack her head with it!!", "animation": "Smug", "next": "Random2B-7"}, - "Random2B-7": {"text": "Haha, just kidding, I wouldn't hurt her, but she's not one for jokes...", "animation": "Thinking", "next": "Random2B-8"}, - "Random2B-8": {"text": "Hundreds of years ago, before there was peace in our region, her kind were a race of fiercesome warriors...", "animation": "Neutral", "next": "Random2B-9"}, - "Random2B-9": {"text": "They tamed vicious, powerful, chocolatey beasts!!", "animation": "Shocked", "next": "Random2B-10"}, - "Random2B-10": {"text": "Whenever I visit her keep, there's a lot of traditional artifacts and other displays of her culture.", "animation": "Thinking", "next": "Random2B-11"}, - "Random2B-11": {"text": "I try and tune that out, 'cuz it's boring!! Who cares about stuff that happened so long ago?!", "animation": "Grumpy", "next": "Random2B-12"}, - "Random2B-12": {"text": "And she always bosses me around whenever I'm around. \"That's not royal behavior. Be assertive. Be proud.\"", "animation": "Grumpy", "next": "Random2B-13"}, - "Random2B-13": {"text": "I think she should shut up!! But, sometimes, when I'm alone, I wonder if she has a point...", "animation": "Thinking", "next": "Random2B-14"}, - "Random2B-14": {"text": "...oh, and FYI, she has the biggest boobs of us. I'm sure you believe 'flat is justice' though, so...", "animation": "Smug"}, + "Random2C1": { + "lines": [ + {"text": "Ah! So you're aware of how...imposing she can be..!!", "animation": "Shocked"} + ], + "next": "Random2B" + }, + "Random2C2": { + "lines": [ + {"text": "Ah, doesn't ring a bell? Well, let me go ahead and tell you!", "animation": "Neutral"} + ], + "next": "Random2B" + }, + "Random2B": { + "lines": [ + {"text": "She's definitely the strongest of our neighboring kingdoms...", "animation": "Thinking"}, + {"text": "Unlike her food namesake, she's certainly not brittle!", "animation": "Concerned"}, + {"text": "Chocolate's tall and she's a little chiseled! She's got dreads, and some gold on her outfit...", "animation": "Thinking"}, + {"text": "She's a girl of not many words. Whenever she speaks up, we listen.", "animation": "Shocked"}, + {"text": "If we all got into a big fight...I think Chocolate would win..!", "animation": "Thinking"}, + {"text": "...except when I sneak in with a steel chair and jump up and smack her head with it!!", "animation": "Smug"}, + {"text": "Haha, just kidding, I wouldn't hurt her, but she's not one for jokes...", "animation": "Thinking"}, + {"text": "Hundreds of years ago, before there was peace in our region, her kind were a race of fiercesome warriors...", "animation": "Neutral"}, + {"text": "They tamed vicious, powerful, chocolatey beasts!!", "animation": "Shocked"}, + {"text": "Whenever I visit her keep, there's a lot of traditional artifacts and other displays of her culture.", "animation": "Thinking"}, + {"text": "I try and tune that out, 'cuz it's boring!! Who cares about stuff that happened so long ago?!", "animation": "Grumpy"}, + {"text": "And she always bosses me around whenever I'm around. \"That's not royal behavior. Be assertive. Be proud.\"", "animation": "Grumpy"}, + {"text": "I think she should shut up!! But, sometimes, when I'm alone, I wonder if she has a point...", "animation": "Thinking"}, + {"text": "...oh, and FYI, she has the biggest boobs of us. I'm sure you believe 'flat is justice' though, so...", "animation": "Smug"} + ] + }, "Random3": { - "text": "Ugh...do you know that uptight snob, Princess Creme?", - "animation": "Concerned", + "pools": ["Random"], + "lines": [ + {"text": "Ugh...do you know that uptight snob, Princess Creme?", "animation": "Concerned"} + ], "choices": [ {"text": "Yes", "next": "Random3C1"}, {"text": "No", "next": "Random3C2"} ] }, - "Random3C1": {"text": "Oh, so you know what a...meanie she is!!", "animation": "Shocked", "next": "Random3B"}, - "Random3C2": {"text": "I'll tell you what a jerk she is!!", "animation": "Neutral", "next": "Random3B"}, - "Random3B": {"text": "Princess Creme is probably the most \"royal\" of all of us...", "animation": "Thinking", "next": "Random3B-2"}, - "Random3B-2": {"text": "...a royal pain in the butt!!", "animation": "Grumpy", "next": "Random3B-3"}, - "Random3B-3": {"text": "I mean, she's my friend...she kinda has to be a friend around all of us...", "animation": "Thinking", "next": "Random3B-4"}, - "Random3B-4": {"text": "...but whenever I come over to her castle, it's always about following the rules and being polite..!", "animation": "Grumpy", "next": "Random3B-5"}, - "Random3B-5": {"text": "I can't take it! Yeah, I'm a princess, but I don't want that to be my whole life!!", "animation": "Grumpy", "next": "Random3B-6"}, - "Random3B-6": {"text": "She's the most prim and proper. Her heels click-clack wherever she goes. She's got like a waterfall of creme-y hair...", "animation": "Concerned", "next": "Random3B-7"}, - "Random3B-7": {"text": "When it's tea-time, always an obligation whenever I go to her place, she reprimands me constantly...", "animation": "Thinking", "next": "Random3B-8"}, - "Random3B-8": {"text": "\"Dear Princess Mini! Please hold the tea cup correctly, as I've shown you!\"", "animation": "Grumpy", "next": "Random3B-9"}, - "Random3B-9": {"text": "Shut up!! Who cares?! It's a cup! You hold it however you like and you drink it however you like!! Goes down the same!!", "animation": "Grumpy", "next": "Random3B-10"}, - "Random3B-10": {"text": "Always the commands about the most arbitrary things!! Which fork to use and when!!", "animation": "Thinking", "next": "Random3B-11"}, - "Random3B-11": {"text": "In my castle, there's NO RULES!! And that's how it should be!!", "animation": "Smug", "next": "Random3B-12"}, - "Random3B-12": {"text": "Her kingdom's extremely well-kept, too. It's like a sickeningly creamy, perfect paradise. Everything's in order.", "animation": "Thinking", "next": "Random3B-13"}, - "Random3B-13": {"text": "And she's a snob about her name...it's C-R-E-M-E, not C-R-E-A-M, yes, we get it...", "animation": "Grumpy", "next": "Random3B-14"}, - "Random3B-14": {"text": "Yeah, people call me...\"Mint\"...but I don't have a huge meltdown over it!! Not a HUGE huge one, anyway..!", "animation": "Thinking", "next": "Random3B-15"}, - "Random3B-15": {"text": "...I just think she's a big sore loser about that contest we had! She came in dead last!!", "animation": "Smug", "next": "Random3B-16"}, - "Random3B-16": {"text": "She's got secrets, alright. I feel like I've seen them. Naughty, naughty secrets...that Creme...", "animation": "Thinking"}, + "Random3C1": { + "lines": [ + {"text": "Oh, so you know what a...meanie she is!!", "animation": "Shocked"} + ], + "next": "Random3B" + }, + "Random3C2": { + "lines": [ + {"text": "I'll tell you what a jerk she is!!", "animation": "Neutral"} + ], + "next": "Random3B" + }, + "Random3B": { + "lines": [ + {"text": "Princess Creme is probably the most \"royal\" of all of us...", "animation": "Thinking"}, + {"text": "...a royal pain in the butt!!", "animation": "Grumpy"}, + {"text": "I mean, she's my friend...she kinda has to be a friend around all of us...", "animation": "Thinking"}, + {"text": "...but whenever I come over to her castle, it's always about following the rules and being polite..!", "animation": "Grumpy"}, + {"text": "I can't take it! Yeah, I'm a princess, but I don't want that to be my whole life!!", "animation": "Grumpy"}, + {"text": "She's the most prim and proper. Her heels click-clack wherever she goes. She's got like a waterfall of creme-y hair...", "animation": "Concerned"}, + {"text": "When it's tea-time, always an obligation whenever I go to her place, she reprimands me constantly...", "animation": "Thinking"}, + {"text": "\"Dear Princess Mini! Please hold the tea cup correctly, as I've shown you!\"", "animation": "Grumpy"}, + {"text": "Shut up!! Who cares?! It's a cup! You hold it however you like and you drink it however you like!! Goes down the same!!", "animation": "Grumpy"}, + {"text": "Always the commands about the most arbitrary things!! Which fork to use and when!!", "animation": "Thinking"}, + {"text": "In my castle, there's NO RULES!! And that's how it should be!!", "animation": "Smug"}, + {"text": "Her kingdom's extremely well-kept, too. It's like a sickeningly creamy, perfect paradise. Everything's in order.", "animation": "Thinking"}, + {"text": "And she's a snob about her name...it's C-R-E-M-E, not C-R-E-A-M, yes, we get it...", "animation": "Grumpy"}, + {"text": "Yeah, people call me...\"Mint\"...but I don't have a huge meltdown over it!! Not a HUGE huge one, anyway..!", "animation": "Thinking"}, + {"text": "...I just think she's a big sore loser about that contest we had! She came in dead last!!", "animation": "Smug"}, + {"text": "She's got secrets, alright. I feel like I've seen them. Naughty, naughty secrets...that Creme...", "animation": "Thinking"} + ] + }, "Random4": { - "text": "Are you familiar with that sporty, tomboy princess, Princess Peanut Butter?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Are you familiar with that sporty, tomboy princess, Princess Peanut Butter?", "animation": "Thinking"} + ], "choices": [ {"text": "Yes", "next": "Random4C1"}, {"text": "No", "next": "Random4C2"} ] }, - "Random4C1": {"text": "Ah, so you do know about her perky personality...", "animation": "Neutral", "next": "Random4B"}, - "Random4C2": {"text": "Oh, she's a handful, alright...", "animation": "Thinking", "next": "Random4B"}, - "Random4B": {"text": "Princess Peanut Butter, or PB for short...is a total meathead!", "animation": "Neutral", "next": "Random4B-2"}, - "Random4B-2": {"text": "She's always up and active and energized whenever I'm around. Being around her is a workout, both mentally and physically...", "animation": "Grumpy", "next": "Random4B-3"}, - "Random4B-3": {"text": "It's kind of weird though, because despite being so intense all the time, she still wears a big dress and has big long hair...", "animation": "Thinking", "next": "Random4B-4"}, - "Random4B-4": {"text": "That's not optimal in a sporting event! Someone could tug it and she'd plummet right down onto the turf!!", "animation": "Shocked", "next": "Random4B-5"}, - "Random4B-5": {"text": "Anyway! She's definitely one for contests. In fact, she actually won that super-important contest we all competed in...", "animation": "Thinking", "next": "Random4B-6"}, - "Random4B-6": {"text": "Now, I don't think she won the popular vote...but her supporters pulled through for her in the end...", "animation": "Neutral", "next": "Random4B-7"}, - "Random4B-7": {"text": "And when you're hanging out with her, it's like you gotta keep up with her.", "animation": "Concerned", "next": "Random4B-8"}, - "Random4B-8": {"text": "Look at me! Do you think I could win at any of these competitions?! I'm good at looking cute, that's about it!", "animation": "Glance", "next": "Random4B-9"}, - "Random4B-9": {"text": "She's got a pretty tight bond with Princess Chocolate. Chocolate and Peanut Butter...they're really good with each other...", "animation": "Thinking", "next": "Random4B-10"}, - "Random4B-10": {"text": "I wonder if the two have any secrets behind the scenes...", "animation": "Smug", "next": "Random4B-11"}, - "Random4B-11": {"text": "...oh, and they arm-wrestle a lot. They're pretty good at it.", "animation": "Thinking", "next": "Random4B-12"}, - "Random4B-12": {"text": "Friendly rivals, close friends...you think there might be something more between them?", "animation": "Smug"}, - "Random5": {"text": "You wanna know some fun trivia about me?!", "next": "Random5A"}, - "Random5A": {"text": "Well, alright then! You know, these pigtails aren't just a style choice!", "animation": "Smug", "next": "Random5A-2"}, - "Random5A-2": {"text": "They're reminiscent of my favorite animals...bnuuies, and their two cute floppy ears!!", "animation": "Excited", "next": "Random5A-3"}, - "Random5A-3": {"text": "Yeah! Bnuuies. Singular 'bnuuy'. Cute little creatures that frolic around my kingdom~", "animation": "Smug", "next": "Random5A-4"}, - "Random5A-4": {"text": "Look!! Look here!! This is my favorite little creature!!", "animation": "BnuuyHold", "next": "Random5A-5"}, - "Random5A-5": {"text": "Bnuuies leave little tasty eggs everywhere and they're super yummy!!", "animation": "BnuuyHold", "next": "Random5A-6"}, - "Random5A-6": {"text": "This one in particular isn't alive...at least, I don't think so...", "animation": "BnuuyHold", "next": "Random5A-7"}, - "Random5A-7": {"text": "I don't know...sometimes, I wake up, and Bnuuy's moved, and there's a little basket of eggs around...", "animation": "BnuuyHold", "next": "Random5A-8"}, - "Random5A-8": {"text": "Maybe this one wakes up on certain days and gives me gifts?", "animation": "BnuuyHold", "next": "Random5A-9"}, - "Random5A-9": {"text": "I feel like, as long as Bnuuy is nearby...I'm safe!!", "animation": "BnuuyHold"}, + "Random4C1": { + "lines": [ + {"text": "Ah, so you do know about her perky personality...", "animation": "Neutral"} + ], + "next": "Random4B" + }, + "Random4C2": { + "lines": [ + {"text": "Oh, she's a handful, alright...", "animation": "Thinking"} + ], + "next": "Random4B" + }, + "Random4B": { + "lines": [ + {"text": "Princess Peanut Butter, or PB for short...is a total meathead!", "animation": "Neutral"}, + {"text": "She's always up and active and energized whenever I'm around. Being around her is a workout, both mentally and physically...", "animation": "Grumpy"}, + {"text": "It's kind of weird though, because despite being so intense all the time, she still wears a big dress and has big long hair...", "animation": "Thinking"}, + {"text": "That's not optimal in a sporting event! Someone could tug it and she'd plummet right down onto the turf!!", "animation": "Shocked"}, + {"text": "Anyway! She's definitely one for contests. In fact, she actually won that super-important contest we all competed in...", "animation": "Thinking"}, + {"text": "Now, I don't think she won the popular vote...but her supporters pulled through for her in the end...", "animation": "Neutral"}, + {"text": "And when you're hanging out with her, it's like you gotta keep up with her.", "animation": "Concerned"}, + {"text": "Look at me! Do you think I could win at any of these competitions?! I'm good at looking cute, that's about it!", "animation": "Glance"}, + {"text": "She's got a pretty tight bond with Princess Chocolate. Chocolate and Peanut Butter...they're really good with each other...", "animation": "Thinking"}, + {"text": "I wonder if the two have any secrets behind the scenes...", "animation": "Smug"}, + {"text": "...oh, and they arm-wrestle a lot. They're pretty good at it.", "animation": "Thinking"}, + {"text": "Friendly rivals, close friends...you think there might be something more between them?", "animation": "Smug"} + ] + }, + "Random5": { + "pools": ["Random"], + "lines": [ + {"text": "You wanna know some fun trivia about me?!"}, + {"text": "Well, alright then! You know, these pigtails aren't just a style choice!", "animation": "Smug"}, + {"text": "They're reminiscent of my favorite animals...bnuuies, and their two cute floppy ears!!", "animation": "Excited"}, + {"text": "Yeah! Bnuuies. Singular 'bnuuy'. Cute little creatures that frolic around my kingdom~", "animation": "Smug"}, + {"text": "Look!! Look here!! This is my favorite little creature!!", "animation": "BnuuyHold"}, + {"text": "Bnuuies leave little tasty eggs everywhere and they're super yummy!!", "animation": "BnuuyHold"}, + {"text": "This one in particular isn't alive...at least, I don't think so...", "animation": "BnuuyHold"}, + {"text": "I don't know...sometimes, I wake up, and Bnuuy's moved, and there's a little basket of eggs around...", "animation": "BnuuyHold"}, + {"text": "Maybe this one wakes up on certain days and gives me gifts?", "animation": "BnuuyHold"}, + {"text": "I feel like, as long as Bnuuy is nearby...I'm safe!!", "animation": "BnuuyHold"} + ] + }, "Random6": { - "text": "You've seen some of my kingdom's delicacies, yes?", - "animation": "Excited", + "pools": ["Random"], + "lines": [ + {"text": "You've seen some of my kingdom's delicacies, yes?", "animation": "Excited"} + ], "choices": [ {"text": "Yes", "next": "Random6C1"}, {"text": "No", "next": "Random6C2"} ] }, - "Random6C1": {"text": "Splendid!! Don't we have the best and most cute treats ever?!", "animation": "Neutral", "next": "Random6B"}, - "Random6C2": {"text": "Really?!?! Well, you gotta see them!!", "animation": "Thinking", "next": "Random6B"}, - "Random6B": {"text": "We specialize in little eggs, gifts given to us by our Bnuuy friends~", "animation": "Excited", "next": "Random6B-2"}, - "Random6B-2": {"text": "They provide all of one's nutritional needs! I mean, I don't know what's in 'em, but I've pretty much eaten them my whole life...", "animation": "Thinking", "next": "Random6B-3"}, - "Random6B-3": {"text": "They're cute and petite, dare I say, Mini, just like me~", "animation": "Excited", "next": "Random6B-4"}, - "Random6B-4": {"text": "What do they taste like?! You know what, I'm gonna keep that a secret~", "animation": "Smug", "next": "Random6B-5"}, - "Random6B-5": {"text": "I can tell you what they DON'T taste like, though...MINT!!", "animation": "Grumpy"}, + "Random6C1": { + "lines": [ + {"text": "Splendid!! Don't we have the best and most cute treats ever?!", "animation": "Neutral"} + ], + "next": "Random6B" + }, + "Random6C2": { + "lines": [ + {"text": "Really?!?! Well, you gotta see them!!", "animation": "Thinking"} + ], + "next": "Random6B" + }, + "Random6B": { + "lines": [ + {"text": "We specialize in little eggs, gifts given to us by our Bnuuy friends~", "animation": "Excited"}, + {"text": "They provide all of one's nutritional needs! I mean, I don't know what's in 'em, but I've pretty much eaten them my whole life...", "animation": "Thinking"}, + {"text": "They're cute and petite, dare I say, Mini, just like me~", "animation": "Excited"}, + {"text": "What do they taste like?! You know what, I'm gonna keep that a secret~", "animation": "Smug"}, + {"text": "I can tell you what they DON'T taste like, though...MINT!!", "animation": "Grumpy"} + ] + }, "Random7": { - "text": "You've seen some of the food that comes from Princess Peep's kingdom, yeah?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "You've seen some of the food that comes from Princess Peep's kingdom, yeah?", "animation": "Thinking"} + ], "choices": [ {"text": "Yes", "next": "Random7C1"}, {"text": "No", "next": "Random7C2"} ] }, - "Random7C1": {"text": "Look...I enjoy it!!", "animation": "Neutral", "next": "Random7B"}, - "Random7C2": {"text": "Oh, you'll see it, I'm sure. It's quite distinctive.", "animation": "Thinking", "next": "Random7B"}, - "Random7B": {"text": "It's super weird...", "animation": "Thinking", "next": "Random7B-2"}, - "Random7B-2": {"text": "In her world, her kingdom, everything is Peep. All is Peep. They're hot pink bird-like...things.", "animation": "Concerned", "next": "Random7B-3"}, - "Random7B-3": {"text": "You'll go to a farm, and find Peeps growing. You'll go underground, it's Peeps.", "animation": "Glance", "next": "Random7B-4"}, - "Random7B-4": {"text": "And those eyes...their little beady eyes...sometimes they're animate, sometimes they're not.", "animation": "Thinking", "next": "Random7B-5"}, - "Random7B-5": {"text": "Even if they aren't living, and they're just tasty treats...I feel like they stare with some unseen force behind them...", "animation": "Concerned", "next": "Random7B-6"}, - "Random7B-6": {"text": "And sometimes they don't look right. Sometimes a Peep has multiple heads, multiple tails...", "animation": "Concerned", "next": "Random7B-7"}, - "Random7B-7": {"text": "I try not to think too hard about it. Somehow, something feels...sinister, about it all...", "animation": "Thinking", "next": "Random7B-8"}, - "Random7B-8": {"text": "...look, all that being said, they are actually incredibly delicious and addicting. Once you have one, you wanna have another...", "animation": "Shocked", "next": "Random7B-9"}, - "Random7B-9": {"text": "...and they're filling, too. Caloric. Very dense. Very fluffy. Very...fattening...", "animation": "Thinking", "next": "Random7B-10"}, - "Random7B-10": {"text": "I'll eat them happily, and I eat lots of them whenever I hang out with Peep!!", "animation": "Excited", "next": "Random7B-11"}, - "Random7B-11": {"text": "Just...be mindful of giving me them. You're not trying to make me FAT or whatever, right?!", "animation": "Concerned"}, + "Random7C1": { + "lines": [ + {"text": "Look...I enjoy it!!", "animation": "Neutral"} + ], + "next": "Random7B" + }, + "Random7C2": { + "lines": [ + {"text": "Oh, you'll see it, I'm sure. It's quite distinctive.", "animation": "Thinking"} + ], + "next": "Random7B" + }, + "Random7B": { + "lines": [ + {"text": "It's super weird...", "animation": "Thinking"}, + {"text": "In her world, her kingdom, everything is Peep. All is Peep. They're hot pink bird-like...things.", "animation": "Concerned"}, + {"text": "You'll go to a farm, and find Peeps growing. You'll go underground, it's Peeps.", "animation": "Glance"}, + {"text": "And those eyes...their little beady eyes...sometimes they're animate, sometimes they're not.", "animation": "Thinking"}, + {"text": "Even if they aren't living, and they're just tasty treats...I feel like they stare with some unseen force behind them...", "animation": "Concerned"}, + {"text": "And sometimes they don't look right. Sometimes a Peep has multiple heads, multiple tails...", "animation": "Concerned"}, + {"text": "I try not to think too hard about it. Somehow, something feels...sinister, about it all...", "animation": "Thinking"}, + {"text": "...look, all that being said, they are actually incredibly delicious and addicting. Once you have one, you wanna have another...", "animation": "Shocked"}, + {"text": "...and they're filling, too. Caloric. Very dense. Very fluffy. Very...fattening...", "animation": "Thinking"}, + {"text": "I'll eat them happily, and I eat lots of them whenever I hang out with Peep!!", "animation": "Excited"}, + {"text": "Just...be mindful of giving me them. You're not trying to make me FAT or whatever, right?!", "animation": "Concerned"} + ] + }, "Random8": { - "text": "I suppose you can guess what kind of food hails from Princess Chocolate's kingdom, yeah?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "I suppose you can guess what kind of food hails from Princess Chocolate's kingdom, yeah?", "animation": "Thinking"} + ], "choices": [ {"text": "Yes", "next": "Random8C1"}, {"text": "No", "next": "Random8C2"} ] }, - "Random8C1": {"text": "Yeah, you probably know what it is...", "animation": "Neutral", "next": "Random8B"}, - "Random8C2": {"text": "Well, you can probably guess.", "animation": "Thinking", "next": "Random8B"}, - "Random8B": {"text": "Chocolate's food has roots in her kingdom's history...", "animation": "Thinking", "next": "Random8B-2"}, - "Random8B-2": {"text": "Now, I don't tune in too much to her history lessons, but Choco Kisses were apparently used in some old religious rites...", "animation": "Neutral", "next": "Random8B-3"}, - "Random8B-3": {"text": "And Choco Tacos are apparently a culinary tradition...", "animation": "Thinking", "next": "Random8B-4"}, - "Random8B-4": {"text": "Choco Bars are more of a recent invention, though. I think one of her great-ancestors wanted to \"modernize\" her kingdom, and a mass-produced food was on the list..", "animation": "Thinking", "next": "Random8B-5"}, - "Random8B-5": {"text": "I mean, they're good. And it's the real stuff. Very intense flavor. Very good, though.", "animation": "Neutral", "next": "Random8B-6"}, - "Random8B-6": {"text": "I dunno if she's so proud of them, though, but she upholds traditions...even ones she might not personally like...", "animation": "Thinking", "next": "Random8B-7"}, - "Random8B-7": {"text": "I gotta say though, the food is especially filling. It's overwhelming and tough, just like she is.", "animation": "Shocked", "next": "Random8B-8"}, - "Random8B-8": {"text": "I feel like, when I eat some of her food, it's like...I can just keep going, y'know? Like my tummy can take more!!", "animation": "Concerned"}, + "Random8C1": { + "lines": [ + {"text": "Yeah, you probably know what it is...", "animation": "Neutral"} + ], + "next": "Random8B" + }, + "Random8C2": { + "lines": [ + {"text": "Well, you can probably guess.", "animation": "Thinking"} + ], + "next": "Random8B" + }, + "Random8B": { + "lines": [ + {"text": "Chocolate's food has roots in her kingdom's history...", "animation": "Thinking"}, + {"text": "Now, I don't tune in too much to her history lessons, but Choco Kisses were apparently used in some old religious rites...", "animation": "Neutral"}, + {"text": "And Choco Tacos are apparently a culinary tradition...", "animation": "Thinking"}, + {"text": "Choco Bars are more of a recent invention, though. I think one of her great-ancestors wanted to \"modernize\" her kingdom, and a mass-produced food was on the list..", "animation": "Thinking"}, + {"text": "I mean, they're good. And it's the real stuff. Very intense flavor. Very good, though.", "animation": "Neutral"}, + {"text": "I dunno if she's so proud of them, though, but she upholds traditions...even ones she might not personally like...", "animation": "Thinking"}, + {"text": "I gotta say though, the food is especially filling. It's overwhelming and tough, just like she is.", "animation": "Shocked"}, + {"text": "I feel like, when I eat some of her food, it's like...I can just keep going, y'know? Like my tummy can take more!!", "animation": "Concerned"} + ] + }, "Random9": { - "text": "Oh, you've seen Princess Creme's food offerings, have you?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Oh, you've seen Princess Creme's food offerings, have you?", "animation": "Thinking"} + ], "choices": [ {"text": "Yes", "next": "Random9C1"}, {"text": "No", "next": "Random9C2"} ] }, - "Random9C1": {"text": "Oh, they're splendid and immaculately presented, just like her kingdom!", "animation": "Neutral", "next": "Random9B"}, - "Random9C2": {"text": "I have my reservations about the makers, but...the food is good...", "animation": "Thinking", "next": "Random9B"}, - "Random9B": {"text": "Princess Creme holds her kingdom and its exports to a very high standard of quality...", "animation": "Thinking", "next": "Random9B-2"}, - "Random9B-2": {"text": "Not only does she dress up herself and her land, but so too is her food! Presentation is very important to her!", "animation": "Shocked", "next": "Random9B-3"}, - "Random9B-3": {"text": "Cakes, cupcakes, ice cream...all stuff that just makes your tummy grumble and gurgle!", "animation": "Concerned", "next": "Random9B-4"}, - "Random9B-4": {"text": "I mean, I'm NOT lactose intolerant...but, I dunno, my tummy still makes quite a sound after I have some...", "animation": "BellyPoke", "next": "Random9B-5"}, - "Random9B-5": {"text": "One thing I do wonder, though...where does all that cream come from? Creamy, thick, dense...", "animation": "Concerned", "next": "Random9B-6"}, - "Random9B-6": {"text": "...do you have any theories?", "animation": "Thinking"}, + "Random9C1": { + "lines": [ + {"text": "Oh, they're splendid and immaculately presented, just like her kingdom!", "animation": "Neutral"} + ], + "next": "Random9B" + }, + "Random9C2": { + "lines": [ + {"text": "I have my reservations about the makers, but...the food is good...", "animation": "Thinking"} + ], + "next": "Random9B" + }, + "Random9B": { + "lines": [ + {"text": "Princess Creme holds her kingdom and its exports to a very high standard of quality...", "animation": "Thinking"}, + {"text": "Not only does she dress up herself and her land, but so too is her food! Presentation is very important to her!", "animation": "Shocked"}, + {"text": "Cakes, cupcakes, ice cream...all stuff that just makes your tummy grumble and gurgle!", "animation": "Concerned"}, + {"text": "I mean, I'm NOT lactose intolerant...but, I dunno, my tummy still makes quite a sound after I have some...", "animation": "BellyPoke"}, + {"text": "One thing I do wonder, though...where does all that cream come from? Creamy, thick, dense...", "animation": "Concerned"}, + {"text": "...do you have any theories?", "animation": "Thinking"} + ] + }, "Random10": { - "text": "You know of the food Princess Peanut Butter's kingdom serves, yes?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "You know of the food Princess Peanut Butter's kingdom serves, yes?", "animation": "Thinking"} + ], "choices": [ {"text": "Yes", "next": "Random10C1"}, {"text": "No", "next": "Random10C2"} ] }, - "Random10C1": {"text": "Yeah...it's...kind of obvious...", "animation": "Smug", "next": "Random10B"}, - "Random10C2": {"text": "Hm...maybe you're as dense as peanut butter itself...", "animation": "Thinking", "next": "Random10B"}, - "Random10B": {"text": "Peanut Butter's grub packs a peanut-butter powered punch!!", "animation": "Shocked", "next": "Random10B-2"}, - "Random10B-2": {"text": "One quick bite of her grub, and one will be energized, with the power of protein!!", "animation": "Thinking", "next": "Random10B-3"}, - "Random10B-3": {"text": "I mean, like...I wouldn't want to like...go to the gym, or something, because of it. That's booooooring!!", "animation": "Smug", "next": "Random10B-4"}, - "Random10B-4": {"text": "She's even got her own peanut butter brand!! With her stupid smug face on it!!", "animation": "Shocked", "next": "Random10B-5"}, - "Random10B-5": {"text": "I dunno. I feel like it's not ideal to eat her stuff if you're not a meathead...", "animation": "Thinking", "next": "Random10B-6"}, - "Random10B-6": {"text": "It's like, if you took her stuff, and put in a big shake, you'd probably balloon up!!", "animation": "Concerned", "next": "Random10B-7"}, - "Random10B-7": {"text": "Just, um, be careful with what you're serving me, yeah?", "animation": "Shocked", "next": "Random10B-8"}, - "Random10B-8": {"text": "Oh, and...duh, peanut butter can be kinda hard to chew...especially in its rough form...", "animation": "Thinking", "next": "Random10B-9"}, - "Random10B-9": {"text": "I mean...we've all eaten peanut butter out of the jar. I'm not ashamed to admit it!!", "animation": "Shocked"}, - "Random11": {"text": "Ages ago...", "animation": "Thinking", "next": "Random11A"}, - "Random11A": {"text": "At the end of that great contest of ours...", "animation": "Thinking", "next": "Random11A-2"}, - "Random11A-2": {"text": "...well, BEFORE then, but...around that time in general...", "animation": "Concerned", "next": "Random11A-3"}, - "Random11A-3": {"text": "...Myself, and my four princess-y friends, made good acquaintances with one nobleman...", "animation": "Shocked", "next": "Random11A-4"}, - "Random11A-4": {"text": "Mr. Knight...that name...that valiant, brave man...", "animation": "Thinking", "next": "Random11A-5"}, - "Random11A-5": {"text": "He fought for each of us. It's as if, the souls of hundreds, maybe thousands of man filled his vessel on that one fateful April Fool's...", "animation": "Thinking", "next": "Random11A-6"}, - "Random11A-6": {"text": "It was a one day war. And with him by our sides, we all felt we could win...", "animation": "Thinking", "next": "Random11A-7"}, - "Random11A-7": {"text": "But...when that day passed...when the contest was over, and victory was declared...", "animation": "Concerned", "next": "Random11A-8"}, - "Random11A-8": {"text": "...he departed. At the docks, at the coast of our lands. We all left...and gave t-tearful goodbies...", "animation": "Sad", "next": "Random11A-9"}, - "Random11A-9": {"text": "...", "animation": "Sad", "next": "Random11A-10"}, - "Random11A-10": {"text": "...We...I...miss him!!", "animation": "Cry", "next": "Random11A-11"}, - "Random11A-11": {"text": "I just...I just wonder...if he's...still around...in some form...", "animation": "Sad", "next": "Random11A-12"}, - "Random11A-12": {"text": "My dear retainer...do you embody...the same sort of spirit? In some, transcendent way...do you reflect him?", "animation": "Sad", "next": "Random11A-13"}, - "Random11A-13": {"text": "I...hope you can treat me well. Support me. J-just like...just l-like...", "animation": "Sad", "next": "Random11A-14"}, - "Random11A-14": {"text": "...h-him.", "animation": "Neutral"}, - "Random12": {"text": "You know, there's one weird thing about myself and my royal friends...", "animation": "Thinking", "next": "Random12A"}, - "Random12A": {"text": "We all have bangs!! Big, eye-covering bangs!!", "animation": "Shocked", "next": "Random12A-2"}, - "Random12A-2": {"text": "I mean...it's a trendy hairstyle, okay?!", "animation": "Grumpy", "next": "Random12A-3"}, - "Random12A-3": {"text": "Being able to see clearly?! Baw, who needs that? People don't want to look at eyes!! Our cute smiles are enough!!", "animation": "Thinking", "next": "Random12A-4"}, - "Random12A-4": {"text": "Easy to style, too! Just let it grow over your face!! It hardly needs to be combed!!", "animation": "Excited"}, - "Random13": {"text": "You know, it might not seem like it...but I AM looking at you.", "animation": "Neutral", "next": "Random13A"}, - "Random13A": {"text": "What, you think I'm not? You think I'm blind or something, and am looking elsewhere instead of at (You)?", "animation": "Thinking", "next": "Random13A-2"}, - "Random13A-2": {"text": "I bet you think I don't have eyes, and maybe I wear bangs to hide my freakish face!!", "animation": "Grumpy", "next": "Random13A-3"}, - "Random13A-3": {"text": "Betcha betcha betcha..!!", "animation": "Grumpy", "next": "Random13A-4"}, - "Random13A-4": {"text": "Those who see under the bangs...why, they typically get their heads chopped off!!", "animation": "Smug", "next": "Random13A-5"}, - "Random13A-5": {"text": "But...you are my trusted retainer...and I don't know what I'd do without you...", "animation": "Thinking", "next": "Random13A-6"}, - "Random13A-6": {"text": "So...", "animation": "Smug", "next": "Random13A-7"}, - "Random13A-7": {"text": "...", "animation": "EyeShow", "next": "Random13A-8"}, - "Random13A-8": {"text": "No one will ever believe you.", "animation": "Smug"}, - "Random14": {"text": "Wanna know what our world looks like? Gah, if only I had a map on me...", "animation": "Concerned", "next": "Random14A"}, - "Random14A": {"text": "It's kind of one big island. We've all claimed our own little chunks, and live in peace. Borders haven't changed in centuries...", "animation": "Thinking", "next": "Random14A-2"}, - "Random14A-2": {"text": "It's mostly divided by biome and climate.", "animation": "Thinking", "next": "Random14A-3"}, - "Random14A-3": {"text": "My kingdom is flat, with vast praries and mystical forests...", "animation": "Thinking", "next": "Random14A-4"}, - "Random14A-4": {"text": "Peanut Butter's place is a little arid and dry. Peanut butter dunes everywhere which their kingdom harvests.", "animation": "Thinking", "next": "Random14A-5"}, - "Random14A-5": {"text": "Peep's kingdom is a very strange, chaotic place. Peeps flock everywhere; both living and non-living.", "animation": "Neutral", "next": "Random14A-6"}, - "Random14A-6": {"text": "Chocolate's kingdom is vast and mountainous, with tall mountains of chocolate that grace against the skies, and temples of worship...", "animation": "Thinking", "next": "Random14A-7"}, - "Random14A-7": {"text": "...and Creme's kingdom is probably the most developed, urbanized and ornate.", "animation": "Thinking", "next": "Random14A-8"}, - "Random14A-8": {"text": "We're very close to Four Channel...and we have good relations with that nation.", "animation": "Shocked", "next": "Random14A-9"}, - "Random14A-9": {"text": "...though, I feel like we've been ignored by the mainland, ever since that fateful day.", "animation": "Glance", "next": "Random14A-10"}, - "Random14A-10": {"text": "We pop up in discussions sometimes over there, particularly on the anniversary of our contest.", "animation": "Thinking", "next": "Random14A-11"}, - "Random14A-11": {"text": "But that place is SO chaotic, though. It's all divided into states and they frequently have sour relationships with each other!!", "animation": "Shocked", "next": "Random14A-12"}, - "Random14A-12": {"text": "I think they can learn to be a little more tolerant of each other. I mean, they're all pretty similar, they're just divided up by their national interests.", "animation": "Thinking", "next": "Random14A-13"}, - "Random14A-13": {"text": "We feel a particularly close kinship to the State of /v/. Strangely, we feel some sense of...belonging, there...", "animation": "Thinking", "next": "Random14A-14"}, - "Random14A-14": {"text": "But, I dunno about that place...the strange thing is, they define themselves by their electronic entertainment...", "animation": "Thinking", "next": "Random14A-15"}, - "Random14A-15": {"text": "...but, when they're NOT discussing it, they're far more civil! Otherwise, it's practically lawlessness!!", "animation": "Shocked", "next": "Random14A-16"}, - "Random14A-16": {"text": "I don't get it! Why dwell in a place that HATE the thing it's all about?!", "animation": "Shocked"}, - "Random15": {"text": "You know, Peanut Butter won that contest, a long time ago...", "animation": "Thinking", "next": "Random15A"}, - "Random15A": {"text": "But, you know the expression, \"lost the battle, won the war?\" That's me!!", "animation": "Smug", "next": "Random15A-2"}, - "Random15A-2": {"text": "I hardly ever see anyone discussing the supposed \"great victory\" of Peanut Butter anymore!!", "animation": "Shocked", "next": "Random15A-3"}, - "Random15A-3": {"text": "But, I still see that I have passionate fans!! Adoring, loving ones!!", "animation": "Smug", "next": "Random15A-4"}, - "Random15A-4": {"text": "Vast amounts of illustrations of me! Glorious propaganda for the Mini Machine!! Wahahaha!!", "animation": "Smug", "next": "Random15A-5"}, - "Random15A-5": {"text": "...some...indecent ones too!! Crazy, weird, freakish things with me, and my friends!! I, um...", "animation": "Shocked", "next": "Random15A-6"}, - "Random15A-6": {"text": "...well, have you also heard the expression, \"no such thing as bad publicity?!", "animation": "Smug", "next": "Random15A-7"}, - "Random15A-7": {"text": "Beat that, PB!! I have wayyyyyyy more lewds than you do!!", "animation": "Smug"}, - "Random16": {"text": "...are you wondering how old I am?!", "animation": "Thinking", "next": "Random16A"}, - "Random16A": {"text": "First, rude. Never ask a girl her age!!", "animation": "Grumpy", "next": "Random16A-2"}, - "Random16A-2": {"text": "Second...I'm a princess! A monarch, a ruler! I can't be the leader of this kingdom if I'm just some annoying, immature child!", "animation": "Shocked", "next": "Random16A-3"}, - "Random16A-3": {"text": "Third...do you think because someone doesn't have BIG JIGGLING BOOBS and TWO MOONS FOR A BUTT, they're not mature?!", "animation": "Grumpy", "next": "Random16A-4"}, - "Random16A-4": {"text": "Fourth...I'm a cartoon.", "animation": "Neutral", "next": "Random16A-5"}, - "Random16A-5": {"text": "I'm as old as you want me to be~", "animation": "Smug"}, - "Random17": {"text": "Ages ago, on one April Fool's...", "animation": "Thinking", "next": "Random17A"}, - "Random17A": {"text": "This was before my time, so this is all hearsay and history, but...", "animation": "Shocked", "next": "Random17A-2"}, - "Random17A-2": {"text": "...denizens of the Four Channel were forcefully given names.", "animation": "Concerned", "next": "Random17A-3"}, - "Random17A-3": {"text": "They're a nation that prides themselves on their collectivity, their lack of individuality, their anonymity!!", "animation": "Thinking", "next": "Random17A-4"}, - "Random17A-4": {"text": "...so, on one strange day, they awoke, and suddenly, every time they spoke, their name had changed.", "animation": "Shocked", "next": "Random17A-5"}, - "Random17A-5": {"text": "Many were displeased. How dare their rules take away their namelessness, an important tenet of their culture!!", "animation": "Thinking", "next": "Random17A-6"}, - "Random17A-6": {"text": "In fact, it's disgraceful over there to desire a name! Many of those who embrace one earn the infamous title of...\"Tripfag\".", "animation": "Shocked", "next": "Random17A-7"}, - "Random17A-7": {"text": "So, this day was quite the shake up! Some found their randomly given names humorous, some wanted the names of some choice figures...", "animation": "Thinking", "next": "Random17A-8"}, - "Random17A-8": {"text": "And, above all, NOBODY wanted the most abominable name...", "animation": "Concerned", "next": "Random17A-9"}, - "Random17A-9": {"text": "...\"Anthony Burch\".", "animation": "Shocked", "next": "Random17A-10"}, - "Random17A-10": {"text": "...to be frank, this is just some story I read somewhere. I have no idea what some of this stuff means...", "animation": "Smug"}, - "Random18": {"text": "Many years ago, on one April Fool's...", "animation": "Thinking", "next": "Random18A"}, - "Random18A": {"text": "Four Channel was in a state of utter anarchy!!", "animation": "Shocked", "next": "Random18A-2"}, - "Random18A-2": {"text": "Borders were blended together, almost arbitrarily!! National interests mixed, without a care in the world!!", "animation": "Thinking", "next": "Random18A-3"}, - "Random18A-3": {"text": "Cartoon and comic book nerds having to contend with...professional chefs...", "animation": "Concerned", "next": "Random18A-4"}, - "Random18A-4": {"text": "The bulkiest bodybuilders in their world...matched with library bookworms! The ultimate specimens!!", "animation": "Thinking", "next": "Random18A-5"}, - "Random18A-5": {"text": "Fashionistas and photographers...", "animation": "Shocked", "next": "Random18A-6"}, - "Random18A-6": {"text": "Gearheads and mechaheads...car and giant robot enthusiasts!!", "animation": "Concerned", "next": "Random18A-7"}, - "Random18A-7": {"text": "Craziest yet: the most schizophrenic political conspiracy theorists...matched together with those who want to do indecent things to cartoon horses!!", "animation": "Sad", "next": "Random18A-8"}, - "Random18A-8": {"text": "The consequences of this sudden fusion of these states...some say it's still felt to this very day..!", "animation": "Shocked", "next": "Random18A-9"}, - "Random18A-9": {"text": "Thankfully, it was just one, deranged, twisted day...what evil souls would do that to their own nation?!", "animation": "Sad"}, - "Random19": {"text": "Ah! I suppose I should tell you the tale of...that day. That faithful contest.", "animation": "Excited", "next": "Random19A"}, - "Random19A": {"text": "That one fateful April Fool's, the crossover between the holiday of fools and the holiday of the Lord...", "animation": "Thinking", "next": "Random19A-2"}, - "Random19A-2": {"text": "I mean, someone's lord, I think!! I associate it more with yummy candy and eggs and bnuuies!!", "animation": "Excited", "next": "Random19A-3"}, - "Random19A-3": {"text": "But it was also our day! A fearsome day it was!!", "animation": "Shocked", "next": "Random19A-4"}, - "Random19A-4": {"text": "Five tasty teams. Creme, Peep, myself, Peanut Butter and Chocolate...", "animation": "Thinking", "next": "Random19A-5"}, - "Random19A-5": {"text": "What was the ambition? Why were we fighting in the first place? To be frank, I don't even know...", "animation": "Thinking", "next": "Random19A-6"}, - "Random19A-6": {"text": "And, of course, we had our brave soldiers, fighting and supporting their sides!!", "animation": "Excited", "next": "Random19A-7"}, - "Random19A-7": {"text": "I don't even know how they came to our aid, but they were a part of our fighting forces, and did their best!!", "animation": "Excited", "next": "Random19A-8"}, - "Random19A-8": {"text": "I remember the accumulation of points! How did our teams earn points? I don't know!!", "animation": "Thinking", "next": "Random19A-9"}, - "Random19A-9": {"text": "It was a one-day, bloody war...many succumbed to the terrors. And hedonism, in some cases. 'Specially Creme.", "animation": "Thinking", "next": "Random19A-10"}, - "Random19A-10": {"text": "It was on that day where me and my princess friends came to the public's attention!!", "animation": "Excited", "next": "Random19A-11"}, - "Random19A-11": {"text": "But, by the end...the winner had been declared...", "animation": "Shocked", "next": "Random19A-12"}, - "Random19A-12": {"text": "...it was that Peanut Butter, that spunky girl, who led her zealous army to victory...", "animation": "Thinking", "next": "Random19A-13"}, - "Random19A-13": {"text": "I felt like I won, though!! I'm the girl the masses cared most for!! It was obvious!!", "animation": "Smug", "next": "Random19A-14"}, - "Random19A-14": {"text": "And dare I say...RIGGED!!", "animation": "Grumpy"}, - "Random20": {"text": "Hey, do you Like me, dear retainer?", "animation": "Thinking", "next": "Random20A"}, - "Random20A": {"text": "I mean, like, Like like. Capital L like. Liking. Thumbs up!", "animation": "Shocked", "next": "Random20A-2"}, - "Random20A-2": {"text": "Because on one April Fool's, everyone couldn't stop Liking everything.", "animation": "Neutral", "next": "Random20A-3"}, - "Random20A-3": {"text": "I mean, liking things is nice...but if Liking something makes the more liked things appear most prominently...", "animation": "Thinking", "next": "Random20A-4"}, - "Random20A-4": {"text": "...then, how can people have balanced, diverse conversations?", "animation": "Shocked", "next": "Random20A-5"}, - "Random20A-5": {"text": "Sometimes, you need to see the controversial opinions! They might make you mad, but they open up new ways of thinking...", "animation": "Neutral", "next": "Random20A-6"}, - "Random20A-6": {"text": "It's not to say that all opinions are necessarily correct, or should be agreed with, but...everyone should have a voice!", "animation": "Neutral", "next": "Random20A-7"}, - "Random20A-7": {"text": "Now, if you agree with my post, make sure to give it a Like!! It goes a long way for the algorithm...", "animation": "Smug", "next": "Random20A-8"}, - "Random20A-8": {"text": "...wait, what am I saying?!", "animation": "Shocked"}, - "Random21": {"text": "Tell me, retainer: did you ever have a widespread pandemic where you're from?!", "animation": "Concerned", "next": "Random21A"}, - "Random21A": {"text": "Because, on one April Fool's, myself and my princess friends all had to be quarantined...", "animation": "Thinking", "next": "Random21A-2"}, - "Random21A-2": {"text": "There was an insidious virus that was going around! It made your words green with disease!!", "animation": "Shocked", "next": "Random21A-3"}, - "Random21A-3": {"text": "It was contagious, too!!", "animation": "Shocked", "next": "Random21A-4"}, - "Random21A-4": {"text": "Mysteriously, though, it just lasted for one day. Everyone got sick, and then...poof.", "animation": "Thinking", "next": "Random21A-5"}, - "Random21A-5": {"text": "Were you as fortunate, if you ever had such a thing?", "animation": "Thinking"}, - "Random22": {"text": "Dear retainer...do you know the treachery of...Canadians?!", "animation": "Thinking", "next": "Random22A"}, - "Random22A": {"text": "Those frostbitten, beer-swillin', hose-head hockey nuts!!", "animation": "Shocked", "next": "Random22A-2"}, - "Random22A-2": {"text": "On one April Fool's, Canadians had infiltrated the land of Four Channel!!", "animation": "Shocked", "next": "Random22A-3"}, - "Random22A-3": {"text": "We had to deploy the Rakes to dispose of those leafs...", "animation": "Thinking", "next": "Random22A-4"}, - "Random22A-4": {"text": "...but, thankfully, the panic soon subsided, and the nationwide fear left us just as quickly as it came.", "animation": "Neutral", "next": "Random22A-5"}, - "Random22A-5": {"text": "I fret that there still may be Canadians walking among us, though...", "animation": "Shocked", "next": "Random22A-6"}, - "Random22A-6": {"text": "...actually, wait. I just realized I don't know where Canada is on a map. Or what a Canada even is!!", "animation": "Concerned"}, - "Random23": {"text": "Retainer, are you heckin' poggers?", "animation": "Smug", "next": "Random23A"}, - "Random23A": {"text": ":Pog: :BibleThump: :FeelsOkayMan: :ClownWorld: :TrollFace: :Desu:", "animation": "Smug", "next": "Random23A-2"}, - "Random23A-2": {"text": "...wait, you should be seeing me speak funny pictures!! Where'd they go?!", "animation": "Concerned", "next": "Random23A-3"}, - "Random23A-3": {"text": "Ugh!! I thought we were back during that one April Fool's...you could talk, and funny pictures would come out of your mouth!!'", "animation": "Thinking", "next": "Random23A-4"}, - "Random23A-4": {"text": "Grrrr!! Now I just embarrassed myself!! I thought it was still happening!!", "animation": "Grumpy", "next": "Random23A-5"}, - "Random23A-5": {"text": "I'm still heckin' poggers though, right, dear retainer?!", "animation": "Sad"}, - "Random24": {"text": "Retainer, do you fret that everything in your life is...artificial?", "animation": "Sad", "next": "Random24A"}, - "Random24A": {"text": "Like, it's generated by some higher intelligence. With no higher thought. Just an algorithm, a chain of \"if-else\" statements...", "animation": "Concerned", "next": "Random24A-2"}, - "Random24A-2": {"text": "On one April Fool's, there was this vast feeling of this...like the people I talked to weren't even real!!", "animation": "Thinking", "next": "Random24A-3"}, - "Random24A-3": {"text": "Their comments generated by some unthinking software, made to mimic real speech!!", "animation": "Sad", "next": "Random24A-4"}, - "Random24A-4": {"text": "But that feeling passed after the day came, and the world returned to normal...", "animation": "Neutral", "next": "Random24A-5"}, - "Random24A-5": {"text": "Thankfully, we now live in a world, free of artificial intelligence impersonating humans!!", "animation": "Thinking", "next": "Random24A-6"}, - "Random24A-6": {"text": "I'm sure your world is equally as liberated, dear retainer!!", "animation": "Excited"}, - "Random25": {"text": "Are you much of a business-savvy person?!", "animation": "Thinking", "next": "Random25A"}, - "Random25A": {"text": "You know, keeping track of markets, of companies, of their stock value...", "animation": "Shocked", "next": "Random25A-2"}, - "Random25A-2": {"text": "I don't know about all of that stuff! I like thinking about bnuuies and cute things more!!", "animation": "Smug", "next": "Random25A-3"}, - "Random25A-3": {"text": "I leave that sort of thing to my retainers! They do all the actual boring governing and planning...", "animation": "Glance", "next": "Random25A-4"}, - "Random25A-4": { - "text": "Are you financially savvy, then? You know all about that money and wealth stuff, right?", - "animation": "Shocked", + "Random10C1": { + "lines": [ + {"text": "Yeah...it's...kind of obvious...", "animation": "Smug"} + ], + "next": "Random10B" + }, + "Random10C2": { + "lines": [ + {"text": "Hm...maybe you're as dense as peanut butter itself...", "animation": "Thinking"} + ], + "next": "Random10B" + }, + "Random10B": { + "lines": [ + {"text": "Peanut Butter's grub packs a peanut-butter powered punch!!", "animation": "Shocked"}, + {"text": "One quick bite of her grub, and one will be energized, with the power of protein!!", "animation": "Thinking"}, + {"text": "I mean, like...I wouldn't want to like...go to the gym, or something, because of it. That's booooooring!!", "animation": "Smug"}, + {"text": "She's even got her own peanut butter brand!! With her stupid smug face on it!!", "animation": "Shocked"}, + {"text": "I dunno. I feel like it's not ideal to eat her stuff if you're not a meathead...", "animation": "Thinking"}, + {"text": "It's like, if you took her stuff, and put in a big shake, you'd probably balloon up!!", "animation": "Concerned"}, + {"text": "Just, um, be careful with what you're serving me, yeah?", "animation": "Shocked"}, + {"text": "Oh, and...duh, peanut butter can be kinda hard to chew...especially in its rough form...", "animation": "Thinking"}, + {"text": "I mean...we've all eaten peanut butter out of the jar. I'm not ashamed to admit it!!", "animation": "Shocked"} + ] + }, + "Random11": { + "pools": ["Random"], + "lines": [ + {"text": "Ages ago...", "animation": "Thinking"}, + {"text": "At the end of that great contest of ours...", "animation": "Thinking"}, + {"text": "...well, BEFORE then, but...around that time in general...", "animation": "Concerned"}, + {"text": "...Myself, and my four princess-y friends, made good acquaintances with one nobleman...", "animation": "Shocked"}, + {"text": "Mr. Knight...that name...that valiant, brave man...", "animation": "Thinking"}, + {"text": "He fought for each of us. It's as if, the souls of hundreds, maybe thousands of man filled his vessel on that one fateful April Fool's...", "animation": "Thinking"}, + {"text": "It was a one day war. And with him by our sides, we all felt we could win...", "animation": "Thinking"}, + {"text": "But...when that day passed...when the contest was over, and victory was declared...", "animation": "Concerned"}, + {"text": "...he departed. At the docks, at the coast of our lands. We all left...and gave t-tearful goodbies...", "animation": "Sad"}, + {"text": "...", "animation": "Sad"}, + {"text": "...We...I...miss him!!", "animation": "Cry"}, + {"text": "I just...I just wonder...if he's...still around...in some form...", "animation": "Sad"}, + {"text": "My dear retainer...do you embody...the same sort of spirit? In some, transcendent way...do you reflect him?", "animation": "Sad"}, + {"text": "I...hope you can treat me well. Support me. J-just like...just l-like...", "animation": "Sad"}, + {"text": "...h-him.", "animation": "Neutral"} + ] + }, + "Random12": { + "pools": ["Random"], + "lines": [ + {"text": "You know, there's one weird thing about myself and my royal friends...", "animation": "Thinking"}, + {"text": "We all have bangs!! Big, eye-covering bangs!!", "animation": "Shocked"}, + {"text": "I mean...it's a trendy hairstyle, okay?!", "animation": "Grumpy"}, + {"text": "Being able to see clearly?! Baw, who needs that? People don't want to look at eyes!! Our cute smiles are enough!!", "animation": "Thinking"}, + {"text": "Easy to style, too! Just let it grow over your face!! It hardly needs to be combed!!", "animation": "Excited"} + ] + }, + "Random13": { + "pools": ["Random"], + "lines": [ + {"text": "You know, it might not seem like it...but I AM looking at you.", "animation": "Neutral"}, + {"text": "What, you think I'm not? You think I'm blind or something, and am looking elsewhere instead of at (You)?", "animation": "Thinking"}, + {"text": "I bet you think I don't have eyes, and maybe I wear bangs to hide my freakish face!!", "animation": "Grumpy"}, + {"text": "Betcha betcha betcha..!!", "animation": "Grumpy"}, + {"text": "Those who see under the bangs...why, they typically get their heads chopped off!!", "animation": "Smug"}, + {"text": "But...you are my trusted retainer...and I don't know what I'd do without you...", "animation": "Thinking"}, + {"text": "So...", "animation": "Smug"}, + {"text": "...", "animation": "EyeShow"}, + {"text": "No one will ever believe you.", "animation": "Smug"} + ] + }, + "Random14": { + "pools": ["Random"], + "lines": [ + {"text": "Wanna know what our world looks like? Gah, if only I had a map on me...", "animation": "Concerned"}, + {"text": "It's kind of one big island. We've all claimed our own little chunks, and live in peace. Borders haven't changed in centuries...", "animation": "Thinking"}, + {"text": "It's mostly divided by biome and climate.", "animation": "Thinking"}, + {"text": "My kingdom is flat, with vast praries and mystical forests...", "animation": "Thinking"}, + {"text": "Peanut Butter's place is a little arid and dry. Peanut butter dunes everywhere which their kingdom harvests.", "animation": "Thinking"}, + {"text": "Peep's kingdom is a very strange, chaotic place. Peeps flock everywhere; both living and non-living.", "animation": "Neutral"}, + {"text": "Chocolate's kingdom is vast and mountainous, with tall mountains of chocolate that grace against the skies, and temples of worship...", "animation": "Thinking"}, + {"text": "...and Creme's kingdom is probably the most developed, urbanized and ornate.", "animation": "Thinking"}, + {"text": "We're very close to Four Channel...and we have good relations with that nation.", "animation": "Shocked"}, + {"text": "...though, I feel like we've been ignored by the mainland, ever since that fateful day.", "animation": "Glance"}, + {"text": "We pop up in discussions sometimes over there, particularly on the anniversary of our contest.", "animation": "Thinking"}, + {"text": "But that place is SO chaotic, though. It's all divided into states and they frequently have sour relationships with each other!!", "animation": "Shocked"}, + {"text": "I think they can learn to be a little more tolerant of each other. I mean, they're all pretty similar, they're just divided up by their national interests.", "animation": "Thinking"}, + {"text": "We feel a particularly close kinship to the State of /v/. Strangely, we feel some sense of...belonging, there...", "animation": "Thinking"}, + {"text": "But, I dunno about that place...the strange thing is, they define themselves by their electronic entertainment...", "animation": "Thinking"}, + {"text": "...but, when they're NOT discussing it, they're far more civil! Otherwise, it's practically lawlessness!!", "animation": "Shocked"}, + {"text": "I don't get it! Why dwell in a place that HATE the thing it's all about?!", "animation": "Shocked"} + ] + }, + "Random15": { + "pools": ["Random"], + "lines": [ + {"text": "You know, Peanut Butter won that contest, a long time ago...", "animation": "Thinking"}, + {"text": "But, you know the expression, \"lost the battle, won the war?\" That's me!!", "animation": "Smug"}, + {"text": "I hardly ever see anyone discussing the supposed \"great victory\" of Peanut Butter anymore!!", "animation": "Shocked"}, + {"text": "But, I still see that I have passionate fans!! Adoring, loving ones!!", "animation": "Smug"}, + {"text": "Vast amounts of illustrations of me! Glorious propaganda for the Mini Machine!! Wahahaha!!", "animation": "Smug"}, + {"text": "...some...indecent ones too!! Crazy, weird, freakish things with me, and my friends!! I, um...", "animation": "Shocked"}, + {"text": "...well, have you also heard the expression, \"no such thing as bad publicity?!", "animation": "Smug"}, + {"text": "Beat that, PB!! I have wayyyyyyy more lewds than you do!!", "animation": "Smug"} + ] + }, + "Random16": { + "pools": ["Random"], + "lines": [ + {"text": "...are you wondering how old I am?!", "animation": "Thinking"}, + {"text": "First, rude. Never ask a girl her age!!", "animation": "Grumpy"}, + {"text": "Second...I'm a princess! A monarch, a ruler! I can't be the leader of this kingdom if I'm just some annoying, immature child!", "animation": "Shocked"}, + {"text": "Third...do you think because someone doesn't have BIG JIGGLING BOOBS and TWO MOONS FOR A BUTT, they're not mature?!", "animation": "Grumpy"}, + {"text": "Fourth...I'm a cartoon.", "animation": "Neutral"}, + {"text": "I'm as old as you want me to be~", "animation": "Smug"} + ] + }, + "Random17": { + "pools": ["Random"], + "lines": [ + {"text": "Ages ago, on one April Fool's...", "animation": "Thinking"}, + {"text": "This was before my time, so this is all hearsay and history, but...", "animation": "Shocked"}, + {"text": "...denizens of the Four Channel were forcefully given names.", "animation": "Concerned"}, + {"text": "They're a nation that prides themselves on their collectivity, their lack of individuality, their anonymity!!", "animation": "Thinking"}, + {"text": "...so, on one strange day, they awoke, and suddenly, every time they spoke, their name had changed.", "animation": "Shocked"}, + {"text": "Many were displeased. How dare their rules take away their namelessness, an important tenet of their culture!!", "animation": "Thinking"}, + {"text": "In fact, it's disgraceful over there to desire a name! Many of those who embrace one earn the infamous title of...\"Tripfag\".", "animation": "Shocked"}, + {"text": "So, this day was quite the shake up! Some found their randomly given names humorous, some wanted the names of some choice figures...", "animation": "Thinking"}, + {"text": "And, above all, NOBODY wanted the most abominable name...", "animation": "Concerned"}, + {"text": "...\"Anthony Burch\".", "animation": "Shocked"}, + {"text": "...to be frank, this is just some story I read somewhere. I have no idea what some of this stuff means...", "animation": "Smug"} + ] + }, + "Random18": { + "pools": ["Random"], + "lines": [ + {"text": "Many years ago, on one April Fool's...", "animation": "Thinking"}, + {"text": "Four Channel was in a state of utter anarchy!!", "animation": "Shocked"}, + {"text": "Borders were blended together, almost arbitrarily!! National interests mixed, without a care in the world!!", "animation": "Thinking"}, + {"text": "Cartoon and comic book nerds having to contend with...professional chefs...", "animation": "Concerned"}, + {"text": "The bulkiest bodybuilders in their world...matched with library bookworms! The ultimate specimens!!", "animation": "Thinking"}, + {"text": "Fashionistas and photographers...", "animation": "Shocked"}, + {"text": "Gearheads and mechaheads...car and giant robot enthusiasts!!", "animation": "Concerned"}, + {"text": "Craziest yet: the most schizophrenic political conspiracy theorists...matched together with those who want to do indecent things to cartoon horses!!", "animation": "Sad"}, + {"text": "The consequences of this sudden fusion of these states...some say it's still felt to this very day..!", "animation": "Shocked"}, + {"text": "Thankfully, it was just one, deranged, twisted day...what evil souls would do that to their own nation?!", "animation": "Sad"} + ] + }, + "Random19": { + "pools": ["Random"], + "lines": [ + {"text": "Ah! I suppose I should tell you the tale of...that day. That faithful contest.", "animation": "Excited"}, + {"text": "That one fateful April Fool's, the crossover between the holiday of fools and the holiday of the Lord...", "animation": "Thinking"}, + {"text": "I mean, someone's lord, I think!! I associate it more with yummy candy and eggs and bnuuies!!", "animation": "Excited"}, + {"text": "But it was also our day! A fearsome day it was!!", "animation": "Shocked"}, + {"text": "Five tasty teams. Creme, Peep, myself, Peanut Butter and Chocolate...", "animation": "Thinking"}, + {"text": "What was the ambition? Why were we fighting in the first place? To be frank, I don't even know...", "animation": "Thinking"}, + {"text": "And, of course, we had our brave soldiers, fighting and supporting their sides!!", "animation": "Excited"}, + {"text": "I don't even know how they came to our aid, but they were a part of our fighting forces, and did their best!!", "animation": "Excited"}, + {"text": "I remember the accumulation of points! How did our teams earn points? I don't know!!", "animation": "Thinking"}, + {"text": "It was a one-day, bloody war...many succumbed to the terrors. And hedonism, in some cases. 'Specially Creme.", "animation": "Thinking"}, + {"text": "It was on that day where me and my princess friends came to the public's attention!!", "animation": "Excited"}, + {"text": "But, by the end...the winner had been declared...", "animation": "Shocked"}, + {"text": "...it was that Peanut Butter, that spunky girl, who led her zealous army to victory...", "animation": "Thinking"}, + {"text": "I felt like I won, though!! I'm the girl the masses cared most for!! It was obvious!!", "animation": "Smug"}, + {"text": "And dare I say...RIGGED!!", "animation": "Grumpy"} + ] + }, + "Random20": { + "pools": ["Random"], + "lines": [ + {"text": "Hey, do you Like me, dear retainer?", "animation": "Thinking"}, + {"text": "I mean, like, Like like. Capital L like. Liking. Thumbs up!", "animation": "Shocked"}, + {"text": "Because on one April Fool's, everyone couldn't stop Liking everything.", "animation": "Neutral"}, + {"text": "I mean, liking things is nice...but if Liking something makes the more liked things appear most prominently...", "animation": "Thinking"}, + {"text": "...then, how can people have balanced, diverse conversations?", "animation": "Shocked"}, + {"text": "Sometimes, you need to see the controversial opinions! They might make you mad, but they open up new ways of thinking...", "animation": "Neutral"}, + {"text": "It's not to say that all opinions are necessarily correct, or should be agreed with, but...everyone should have a voice!", "animation": "Neutral"}, + {"text": "Now, if you agree with my post, make sure to give it a Like!! It goes a long way for the algorithm...", "animation": "Smug"}, + {"text": "...wait, what am I saying?!", "animation": "Shocked"} + ] + }, + "Random21": { + "pools": ["Random"], + "lines": [ + {"text": "Tell me, retainer: did you ever have a widespread pandemic where you're from?!", "animation": "Concerned"}, + {"text": "Because, on one April Fool's, myself and my princess friends all had to be quarantined...", "animation": "Thinking"}, + {"text": "There was an insidious virus that was going around! It made your words green with disease!!", "animation": "Shocked"}, + {"text": "It was contagious, too!!", "animation": "Shocked"}, + {"text": "Mysteriously, though, it just lasted for one day. Everyone got sick, and then...poof.", "animation": "Thinking"}, + {"text": "Were you as fortunate, if you ever had such a thing?", "animation": "Thinking"} + ] + }, + "Random22": { + "pools": ["Random"], + "lines": [ + {"text": "Dear retainer...do you know the treachery of...Canadians?!", "animation": "Thinking"}, + {"text": "Those frostbitten, beer-swillin', hose-head hockey nuts!!", "animation": "Shocked"}, + {"text": "On one April Fool's, Canadians had infiltrated the land of Four Channel!!", "animation": "Shocked"}, + {"text": "We had to deploy the Rakes to dispose of those leafs...", "animation": "Thinking"}, + {"text": "...but, thankfully, the panic soon subsided, and the nationwide fear left us just as quickly as it came.", "animation": "Neutral"}, + {"text": "I fret that there still may be Canadians walking among us, though...", "animation": "Shocked"}, + {"text": "...actually, wait. I just realized I don't know where Canada is on a map. Or what a Canada even is!!", "animation": "Concerned"} + ] + }, + "Random23": { + "pools": ["Random"], + "lines": [ + {"text": "Retainer, are you heckin' poggers?", "animation": "Smug"}, + {"text": ":Pog: :BibleThump: :FeelsOkayMan: :ClownWorld: :TrollFace: :Desu:", "animation": "Smug"}, + {"text": "...wait, you should be seeing me speak funny pictures!! Where'd they go?!", "animation": "Concerned"}, + {"text": "Ugh!! I thought we were back during that one April Fool's...you could talk, and funny pictures would come out of your mouth!!'", "animation": "Thinking"}, + {"text": "Grrrr!! Now I just embarrassed myself!! I thought it was still happening!!", "animation": "Grumpy"}, + {"text": "I'm still heckin' poggers though, right, dear retainer?!", "animation": "Sad"} + ] + }, + "Random24": { + "pools": ["Random"], + "lines": [ + {"text": "Retainer, do you fret that everything in your life is...artificial?", "animation": "Sad"}, + {"text": "Like, it's generated by some higher intelligence. With no higher thought. Just an algorithm, a chain of \"if-else\" statements...", "animation": "Concerned"}, + {"text": "On one April Fool's, there was this vast feeling of this...like the people I talked to weren't even real!!", "animation": "Thinking"}, + {"text": "Their comments generated by some unthinking software, made to mimic real speech!!", "animation": "Sad"}, + {"text": "But that feeling passed after the day came, and the world returned to normal...", "animation": "Neutral"}, + {"text": "Thankfully, we now live in a world, free of artificial intelligence impersonating humans!!", "animation": "Thinking"}, + {"text": "I'm sure your world is equally as liberated, dear retainer!!", "animation": "Excited"} + ] + }, + "Random25": { + "pools": ["Random"], + "lines": [ + {"text": "Are you much of a business-savvy person?!", "animation": "Thinking"}, + {"text": "You know, keeping track of markets, of companies, of their stock value...", "animation": "Shocked"}, + {"text": "I don't know about all of that stuff! I like thinking about bnuuies and cute things more!!", "animation": "Smug"}, + {"text": "I leave that sort of thing to my retainers! They do all the actual boring governing and planning...", "animation": "Glance"}, + {"text": "Are you financially savvy, then? You know all about that money and wealth stuff, right?", "animation": "Shocked"} + ], "choices": [ {"text": "A little...", "next": "Random25AC1"}, {"text": "Uhhhhh....", "next": "Random25AC2"} ] }, - "Random25AC1": {"text": "Oh, good! You would've been a big help on a certain day, then!!", "animation": "Thinking", "next": "Random25AB"}, - "Random25AC2": {"text": "What?! What did I even hire you for, then?!", "animation": "Grumpy", "next": "Random25AB"}, - "Random25AB": {"text": "A little while back, on April Fool's, Four Channel opened up a big stock market!! The Yotsuba Stock Exchange!!", "animation": "Shocked", "next": "Random25AB-2"}, - "Random25AB-2": {"text": "I would've gone all in $CHUCK or $BANE, maybe $CLOWN or $DESU...", "animation": "Thinking", "next": "Random25AB-3"}, - "Random25AB-3": {"text": "$BOOB would be an unwise investment, at least I know that...", "animation": "Concerned", "next": "Random25AB-4"}, - "Random25AB-4": {"text": "...but, well, I didn't go all in on anything, because the thought of me potentially losing my entire treasury made me sad...", "animation": "Sad", "next": "Random25AB-5"}, - "Random25AB-5": {"text": "If only you were there, dear retainer, perhaps we could've /madeit/!", "animation": "Excited", "next": "Random25AB-6"}, - "Random25AB-6": {"text": "Maybe we're all ngmi, though...", "animation": "Sad"}, - "Random26": {"text": "Are you much of an efficiency nut?", "animation": "Thinking", "next": "Random26A"}, - "Random26A": {"text": "You know, everything being in order, efficient, rapidly progressing, not bloated, not saddled with bureaucracy or fraud or waste!!", "animation": "Shocked", "next": "Random26A-2"}, - "Random26A-2": {"text": "Kinda like how Creme runs things, to be honest...", "animation": "Thinking", "next": "Random26A-3"}, - "Random26A-3": {"text": "A-Anyways!! On one April Fool's, I heard Four Channel established their own efficiency department!!", "animation": "Shocked", "next": "Random26A-4"}, - "Random26A-4": {"text": "Things started out reasonable. A cut there, a bit there...maybe the idea was fine initially...", "animation": "Thinking", "next": "Random26A-5"}, - "Random26A-5": {"text": "But then, they got really crazy with it. In the name of \"efficiency\", they cut out whole chunks of their own nation!!", "animation": "Shocked", "next": "Random26A-6"}, - "Random26A-6": {"text": "All the denizens had to move somewhere else!! Even somewhere they had no connection or interest in!!", "animation": "Shocked", "next": "Random26A-7"}, - "Random26A-7": {"text": "So much for efficiency! That's unjust tyranny!! You need some degree of separation and delegation, right?!", "animation": "Shocked", "next": "Random26A-8"}, - "Random26A-8": {"text": "It got so intense, that the whole of Four Channel was blended all into one main area! It was utter chaos!!", "animation": "Concerned", "next": "Random26A-9"}, - "Random26A-9": {"text": "But, thankfully, the day after, those dummies must've figured out that it was a bad idea, and cut the whole thing.", "animation": "Thinking", "next": "Random26A-10"}, - "Random26A-10": {"text": "Well, I mean...in a way, I guess they were at least ruthlessly effective and competent...even if their execution was misguided...", "animation": "Thinking", "next": "Random26A-11"}, - "Random26A-11": {"text": "Imagine that...an efficiency department that only cuts a little bit, and just...gives up and dissolves.", "animation": "Thinking", "next": "Random26A-12"}, - "Random26A-12": {"text": "...", "animation": "Neutral", "next": "Random26A-13"}, - "Random26A-13": {"text": "...I'm just a cute little princess. I don't know much about governing, so don't take my words too seriously!!", "animation": "Smug"}, - "Random27": {"text": "Retainer, are you good at answering Captchas?", "animation": "Thinking", "next": "Random27A"}, - "Random27A": {"text": "Y'know, those letters and numbers that appear before making a social media post!", "animation": "Shocked", "next": "Random27A-2"}, - "Random27A-2": {"text": "Or...it used to be, back in the day. You'd get such a thing! Now it's a humiliation ritual!!", "animation": "Thinking", "next": "Random27A-3"}, - "Random27A-3": {"text": "They make you identify all sorts of abstract shapes and things just so you have the privilege of posting!", "animation": "Concerned", "next": "Random27A-4"}, - "Random27A-4": {"text": "...", "animation": "Thinking", "next": "Random27A-5"}, - "Random27A-5": {"text": "I don't have a joke. That April Fool's joke sucked. If you know, you know.", "animation": "Grumpy"}, - "Digest-1": {"text": "Oof, my tummy was making an awful lot of noise...", "animation": "NeutralFull"}, - "Digest-2": {"text": "Heavens, that probably was too much...", "animation": "NeutralFull"}, - "Digest-3": {"text": "Retainer, are you sure you're treating me right?", "animation": "NeutralFull"}, - "Digest-4": {"text": "Are you sure you're giving me a proper diet?!", "animation": "NeutralFull"}, - "Digest-5": {"text": "I suppose I could have some more, now...", "animation": "NeutralFull"}, - "Digest-6": {"text": "My dress isn't as tight, now...", "animation": "NeutralFull"}, - "Digest-7": {"text": "I feel better, now!!", "animation": "NeutralFull"}, - "Digest-8": {"text": "All that yummy food seems to be gone, now...", "animation": "NeutralFull"}, - "Digest-9": {"text": "Aah...", "animation": "NeutralFull"}, - "Digest-10": {"text": "Oooh...", "animation": "NeutralFull"}, - "Digest-11": {"text": "My stomach has settled, now...", "animation": "NeutralFull"}, - "Digest-12": {"text": "Another round then, dear retainer...", "animation": "NeutralFull"}, - "Digest-13": {"text": "Feels good...", "animation": "NeutralFull"}, - "Digest-14": {"text": "Ah, back to being Mini...", "animation": "NeutralFull"}, - "Digest-15": {"text": "Something feels different...", "animation": "NeutralFull"}, - "Throw-1": {"text": "Look, we can have a food fight later!!", "animation": "Excited"}, - "Throw-2": {"text": "Yay, food fight!!", "animation": "Excited"}, - "Throw-3": {"text": "I didn't know you knew how to have fun, retainer!!", "animation": "Shocked"}, - "Throw-4": {"text": "Haha, so funny!!", "animation": "Excited"}, - "Throw-5": {"text": "Wow, you've got good throwing skills!!", "animation": "Excited"}, - "Throw-6": {"text": "Wow, that thing went flying!!", "animation": "Excited"}, - "Throw-7": {"text": "Look at it go!!", "animation": "Shocked"}, - "Throw-8": {"text": "Zooooooooom!!", "animation": "Excited"}, - "Throw-9": {"text": "VVVVVvsssssssshooooom!!", "animation": "Excited"}, - "Throw-10": {"text": "Whoooooosh!!", "animation": "Excited"}, - "Throw-11": {"text": "Food fight!!", "animation": "Shocked"}, - "Throw-12": {"text": "So you're not so stuck-up!!", "animation": "Shocked"}, - "Throw-13": {"text": "Silly retainer!!", "animation": "Shocked"}, - "Throw-14": {"text": "...okay, but you WILL clean up afterwards, right?!", "animation": "Concerned"}, - "Throw-15": {"text": "Wow!!", "animation": "Shocked"}, - "Feed-1": {"text": "Aah, serving your princess!!", "animation": "Excited"}, - "Feed-2": {"text": "Ooh, gimme gimme!!", "animation": "Excited"}, - "Feed-3": {"text": "Looks tasty!!", "animation": "Excited"}, - "Feed-4": {"text": "A gift? For me?!", "animation": "Excited"}, - "Feed-5": {"text": "Yummy!!", "animation": "Excited"}, - "Feed-6": {"text": "Yaayyy!!", "animation": "Excited"}, - "Feed-7": {"text": "Ooh!!", "animation": "Excited"}, - "Feed-8": {"text": "Oh, my tummy was rumbling!", "animation": "Excited"}, - "Feed-9": {"text": "Mini hungers!!", "animation": "Excited"}, - "Feed-10": {"text": "Ahh..!", "animation": "Excited"}, - "Feed-11": {"text": "Aaaah...", "animation": "Excited"}, - "Feed-12": {"text": "Food, food!!", "animation": "Excited"}, - "Feed-13": {"text": "Tasty, tasty!!", "animation": "Excited"}, - "Feed-14": {"text": "Yes!!", "animation": "Excited"}, - "Feed-15": {"text": "Serve your princess!!", "animation": "Excited"}, - "FeedFull-1": {"text": "Um, retainer...my tummy hurts...", "animation": "Concerned"}, - "FeedFull-2": {"text": "My tummy is making grumbles...", "animation": "Concerned"}, - "FeedFull-3": {"text": "Are you sure..?", "animation": "Concerned"}, - "FeedFull-4": {"text": "Well, I do need to be a big girl...", "animation": "Concerned"}, - "FeedFull-5": {"text": "I-if you want me to, retainer...", "animation": "Concerned"}, - "FeedFull-6": {"text": "I can...try and fit it in...for you...", "animation": "Concerned"}, - "FeedFull-7": {"text": "Okay, if you want me to...", "animation": "Concerned"}, - "FeedFull-8": {"text": "I am a little...full...", "animation": "Concerned"}, - "FeedFull-9": {"text": "This is going to make me cuter, right..?", "animation": "Concerned"}, - "FeedFull-10": {"text": "Still..?", "animation": "Shocked"}, - "FeedFull-11": {"text": "There's more..?!", "animation": "Shocked"}, - "FeedFull-12": {"text": "It's inconsiderate to leave uneaten food, so...", "animation": "Shocked"}, - "FeedFull-13": {"text": "It's impolite to not eat what's served...that's what Creme told me...", "animation": "Shocked"}, - "FeedFull-14": {"text": "Okay...", "animation": "Shocked"}, - "FeedFull-15": {"text": "I'll fit it in...", "animation": "Concerned"}, - "Eat-1": {"text": "Splendid!!", "animation": "Excited"}, - "Eat-2": {"text": "I'll have seconds!!", "animation": "Excited"}, - "Eat-3": {"text": "That was so yummy..!!", "animation": "Excited"}, - "Eat-4": {"text": "You serve me well, retainer!!", "animation": "Excited"}, - "Eat-5": {"text": "So tasty!!", "animation": "Excited"}, - "Eat-6": {"text": "Yum yum!!", "animation": "Excited"}, - "Eat-7": {"text": "Yummy, yummy!!", "animation": "Excited"}, - "Eat-8": {"text": "So gooood!!", "animation": "Excited"}, - "Eat-9": {"text": "Tasty tasty!!", "animation": "Excited"}, - "Eat-10": {"text": "Good!!", "animation": "Excited"}, - "Eat-11": {"text": "That tasted great!!", "animation": "Excited"}, - "Eat-12": {"text": "I could have some more...", "animation": "Excited"}, - "Eat-13": {"text": "Perhaps I could use a little more...", "animation": "Excited"}, - "Eat-14": {"text": "More, maybe...", "animation": "Thinking"}, - "Eat-15": {"text": "Maybe another one...", "animation": "Thinking"}, - "EatFull-1": {"text": "Mmmgh...", "animation": "Concerned"}, - "EatFull-2": {"text": "Nnngh...", "animation": "Concerned"}, - "EatFull-3": {"text": "Agh...", "animation": "Concerned"}, - "EatFull-4": {"text": "That's the last one...right?", "animation": "Concerned"}, - "EatFull-5": {"text": "Retainer...y-you can stop now...", "animation": "Concerned"}, - "EatFull-6": {"text": "O-okay, we should slow down...", "animation": "Concerned"}, - "EatFull-7": {"text": "Surely this is the last gift of yours, yes..?", "animation": "Concerned"}, - "EatFull-8": {"text": "It tasted good, but...I'm stuffed....", "animation": "Concerned"}, - "EatFull-9": {"text": "L-lovely, but maybe we can stop now..?", "animation": "Concerned"}, - "EatFull-10": {"text": "M-maybe slow it down, a little..?", "animation": "Concerned"}, - "EatFull-11": {"text": "I know you spoil me, but is this really appropriate..?", "animation": "Concerned"}, - "EatFull-12": {"text": "L-last one, right?", "animation": "Concerned"}, - "EatFull-13": {"text": "Ugh...", "animation": "Concerned"}, - "EatFull-14": {"text": "Mmf...", "animation": "Concerned"}, - "EatFull-15": {"text": "Um...", "animation": "Concerned"}, - "Full-1": {"text": "I can't take any more!!", "animation": "Thinking"}, - "Full-2": {"text": "I'm gonna blow up if you give me more gifts!!", "animation": "Thinking"}, - "Full-3": {"text": "I think I'd throw up if I ate more...", "animation": "Concerned"}, - "Full-4": {"text": "No more, retainer..!", "animation": "Concerned"}, - "Full-5": {"text": "No more!!", "animation": "Shocked"}, - "Full-6": {"text": "I'm good, thanks...", "animation": "Shocked"}, - "Full-7": {"text": "I'm just a little princess, not a hog!!", "animation": "Shocked"}, - "Full-8": {"text": "Stop it!!", "animation": "Shocked"}, - "Full-9": {"text": "Please, I can't eat anymore!!", "animation": "Shocked"}, - "Full-10": {"text": "Peanut Butter could probably eat this much, I can't..!", "animation": "Shocked"}, - "Full-11": {"text": "I'm Mini, okay? Not Mega!!", "animation": "Shocked"}, - "Full-12": {"text": "Peep probably could eat more than me, and I'm not Peep!!", "animation": "Shocked"}, - "Full-13": {"text": "P-put that back into the catalog, please...", "animation": "Concerned"}, - "Full-14": {"text": "I'm not as big as Chocolate, I can't fit that much into this body..!", "animation": "Shocked"}, - "Full-15": {"text": "S-save it for later, okay?!", "animation": "Shocked"}, - "LowCapacity-1": {"text": "How do you expect to fit THAT into this tiny body?!", "animation": "Shocked"}, - "LowCapacity-2": {"text": "Are you kidding me?! I can't eat that!!", "animation": "Shocked"}, - "LowCapacity-3": {"text": "Who do you take me for, a super-fat janny? That's too much!!", "animation": "Shocked"}, - "LowCapacity-4": {"text": "Too much!! Get something smaller!!", "animation": "Shocked"}, - "LowCapacity-5": {"text": "Get some common sense!! Something smaller, please!!", "animation": "Shocked"}, - "LowCapacity-6": {"text": "I'm Mini, give me some Mini proportions!!", "animation": "Shocked"}, - "LowCapacity-7": {"text": "I can't wolf food down big food like a janitor does Hot Pockets!!", "animation": "Shocked"}, - "LowCapacity-8": {"text": "Something for my tiny figure, please!!", "animation": "Shocked"}, - "LowCapacity-9": {"text": "Smaller, please...!", "animation": "Shocked"}, - "LowCapacity-10": {"text": "Make it more Mini, if you can..!", "animation": "Shocked"}, - "LowCapacity-11": {"text": "I'd just explode if I ate that!!", "animation": "Shocked"}, - "LowCapacity-12": {"text": "Bnuuy, what do you think? I'd die if I ate that, right?", "animation": "BnuuyHold"}, - "LowCapacity-13": {"text": "I like it small, just like me...", "animation": "Shocked"}, - "LowCapacity-14": {"text": "My tummy can't possibly contain something like that!!", "animation": "Shocked"}, - "LowCapacity-15": {"text": "Let's shrink the proportions, please...", "animation": "Thinking"}, - "FoodTaken-1": {"text": "Hey, you can't just...do that!!", "animation": "Concerned"}, - "FoodTaken-2": {"text": "Do that again and it'll be off with your head!!", "animation": "Grumpy"}, - "FoodTaken-3": {"text": "I'm...I'm gonna headbutt you if you take my food!!", "animation": "Grumpy"}, - "FoodTaken-4": {"text": "Meanie, give that back!!", "animation": "Sad"}, - "FoodTaken-5": {"text": "Waaaahhhh!!", "animation": "Sad"}, - "FoodTaken-6": {"text": "That was supposed to be mine!!", "animation": "Sad"}, - "FoodTaken-7": {"text": "Y-you promised me that...", "animation": "Sad"}, - "FoodTaken-8": {"text": "Please, h-hand that back!!", "animation": "Sad"}, - "FoodTaken-9": {"text": "D-don't take food from me..!!", "animation": "Concerned"}, - "FoodTaken-10": {"text": "I thought that was my gift...", "animation": "Concerned"}, - "FoodTaken-11": {"text": "JERK!!", "animation": "Grumpy"}, - "FoodTaken-12": {"text": "Meanie!!", "animation": "Grumpy"}, - "FoodTaken-13": {"text": "Stop that!!", "animation": "Grumpy"}, - "FoodTaken-14": {"text": "My name was on that..!", "animation": "Sad"}, - "FoodTaken-15": {"text": "Why are you so mean, retainer..?", "animation": "Grumpy"}, - "FoodTakenFull-1": {"text": "Oh, so you now care about me...", "animation": "NeutralFull"}, - "FoodTakenFull-2": {"text": "T-thanks...", "animation": "NeutralFull"}, - "FoodTakenFull-3": {"text": "I finally got through to you...", "animation": "NeutralFull"}, - "FoodTakenFull-4": {"text": "Y-yeah, just...put that back.", "animation": "NeutralFull"}, - "FoodTakenFull-5": {"text": "Thank you, retainer...", "animation": "NeutralFull"}, - "FoodTakenFull-6": {"text": "How...chivalrous...", "animation": "NeutralFull"}, - "FoodTakenFull-7": {"text": "Oh, thank goodness...", "animation": "NeutralFull"}, - "FoodTakenFull-8": {"text": "So...knightly...", "animation": "NeutralFull"}, - "FoodTakenFull-9": {"text": "Heavens, you finally relented...", "animation": "NeutralFull"}, - "FoodTakenFull-10": {"text": "Right, then, let's put that back...", "animation": "NeutralFull"}, - "FoodTakenFull-11": {"text": "No more food for ol' Mini...", "animation": "NeutralFull"}, - "FoodTakenFull-12": {"text": "Too much pampering, you see...", "animation": "NeutralFull"}, - "FoodTakenFull-13": {"text": "So you're finally done spoling me...", "animation": "NeutralFull"}, - "FoodTakenFull-14": {"text": "T-thanks... you finally see the light...", "animation": "NeutralFull"}, - "FoodTakenFull-15": {"text": "You were being TOO good of a servant...", "animation": "NeutralFull"}, - "StageUp-1": {"text": "Um, retainer, do you think I look different..?", "animation": "Shocked"}, - "StageUp-2": {"text": "Did something just happen?", "animation": "Concerned"}, - "StageUp-3": {"text": "I felt something bad just happened, and you were responsible..!", "animation": "Shocked"}, - "StageUp-4": {"text": "You know, I feel really good now for whatever reason.", "animation": "Smug"}, - "StageUp-5": {"text": "Why does my dress feel tighter..?", "animation": "Concerned"}, - "StageUp-6": {"text": "Something is off...", "animation": "Thinking"}, - "StageUp-7": {"text": "Retainer, are you sure you know what you're doing?!", "animation": "Thinking"}, - "StageUp-8": {"text": "Am I \"Mini\" anymore..?", "animation": "Thinking"}, - "StageUp-9": {"text": "I feel...different..", "animation": "Thinking"}, - "StageUp-10": {"text": "Um...retainer...", "animation": "Concerned"}, - "StageUp-11": {"text": "It's...getting kind of tight...", "animation": "Concerned"}, - "StageUp-12": {"text": "Too...tight...", "animation": "NeutralFull"}, - "StageUp-13": {"text": "Nnngh...", "animation": "NeutralFull"}, - "StageUp-14": {"text": "I...this isn't...right...", "animation": "NeutralFull"}, - "StageUp-15": {"text": "I'm...I'm still...Mini...", "animation": "Concerned"}, - "MouthKiss-1": {"text": "Uwah!!", "animation": "Embarrassed"}, - "MouthKiss-2": {"text": "Y-you can't just...d-do that!!", "animation": "Embarrassed"}, - "MouthKiss-3": {"text": "D-Did I give you permission to do that?!", "animation": "Embarrassed"}, - "MouthKiss-4": {"text": "I don't think t-that's in your retainer duties!!", "animation": "Embarrassed"}, - "MouthKiss-5": {"text": "O-ooh..!", "animation": "Embarrassed"}, - "MouthKiss-6": {"text": "You can't just..!!", "animation": "Embarrassed"}, - "MouthKiss-7": {"text": "Kissing a princess?! You're not my...", "animation": "Embarrassed"}, - "MouthKiss-8": {"text": "I...um...", "animation": "Glance"}, - "MouthKiss-9": {"text": "...d-do that again.", "animation": "Glance"}, - "MouthKiss-10": {"text": "A kiss..?!", "animation": "Embarrassed"}, - "BellyKiss-1": {"text": "Why are you..?!", "animation": "Embarrassed"}, - "BellyKiss-2": {"text": "Why are you...kissing my..?!", "animation": "Embarrassed"}, - "BellyKiss-3": {"text": "A-are you trying to give me raspberries?!", "animation": "Shocked"}, - "BellyKiss-4": {"text": "Q-quit it, that tickles..!", "animation": "Embarrassed"}, - "BellyKiss-5": {"text": "S-stop that..!", "animation": "Embarrassed"}, - "HeadRub-1": {"text": "G-gentle with the bangs, please!!", "animation": "HeadRub"}, - "HeadRub-2": {"text": "You can't just p-pet me like an a-animal!!", "animation": "HeadRub"}, - "HeadRub-3": {"text": "M-maybe head pats aren't so bad...", "animation": "HeadRub"}, - "HeadRub-4": {"animation": "HeadRub"}, - "HeadRub-5": {"text": "I could get used to these little head pats...", "animation": "HeadRub"}, - "BellyRub-1": {"text": "Eep! Be gentle with my tummy!!", "animation": "BellyRub"}, - "BellyRub-2": {"text": "T-that feels nice on my tummy...", "animation": "BellyRub"}, - "BellyRub-3": {"text": "...", "animation": "BellyRub"}, - "BellyRub-4": {"text": "Oh...that does help the pressure a bit!!", "animation": "BellyRub"}, - "BellyRub-5": {"text": "Just don't jiggle me too much, okay?!", "animation": "BellyRub"}, - "BellySmack-1": {"text": "Eek!! Hey! Don't just smack a princess's tummy!!", "animation": "Shocked"}, - "BellySmack-2": {"text": "Dummy!! My belly is not a drum!!", "animation": "Grumpy"}, - "BellySmack-3": {"text": "Nnngh...h-hey, be careful with that!!", "animation": "Concerned"}, - "BellySmack-4": {"text": "You're bold, aren't you?!", "animation": "Grumpy"}, - "BellySmack-5": {"text": "If you leave a print on me, it's off with your head!!", "animation": "Grumpy"}, - "HeadRubFull-1": {"text": "G-gentle with the bangs, please!!", "animation": "HeadRubFull"}, - "HeadRubFull-2": {"text": "You can't just p-pet me like an a-animal!!", "animation": "HeadRubFull"}, - "HeadRubFull-3": {"text": "M-maybe head pats aren't so bad...", "animation": "HeadRubFull"}, - "HeadRubFull-4": {"animation": "HeadRubFull"}, - "HeadRubFull-5": {"text": "I could get used to these little head pats...", "animation": "HeadRubFull"}, - "BellyRubFull-1": {"text": "Eep! Be gentle with my tummy!!", "animation": "BellyRubFull"}, - "BellyRubFull-2": {"text": "T-that feels nice on my tummy...", "animation": "BellyRubFull"}, - "BellyRubFull-3": {"text": "...", "animation": "BellyRubFull"}, - "BellyRubFull-4": {"text": "Oh...that does help the pressure a bit!!", "animation": "BellyRubFull"}, - "BellyRubFull-5": {"text": "Just don't jiggle me too much, okay?!", "animation": "BellyRubFull"} + "Random25AC1": { + "lines": [ + {"text": "Oh, good! You would've been a big help on a certain day, then!!", "animation": "Thinking"} + ], + "next": "Random25AB" + }, + "Random25AC2": { + "lines": [ + {"text": "What?! What did I even hire you for, then?!", "animation": "Grumpy"} + ], + "next": "Random25AB" + }, + "Random25AB": { + "lines": [ + {"text": "A little while back, on April Fool's, Four Channel opened up a big stock market!! The Yotsuba Stock Exchange!!", "animation": "Shocked"}, + {"text": "I would've gone all in $CHUCK or $BANE, maybe $CLOWN or $DESU...", "animation": "Thinking"}, + {"text": "$BOOB would be an unwise investment, at least I know that...", "animation": "Concerned"}, + {"text": "...but, well, I didn't go all in on anything, because the thought of me potentially losing my entire treasury made me sad...", "animation": "Sad"}, + {"text": "If only you were there, dear retainer, perhaps we could've /madeit/!", "animation": "Excited"}, + {"text": "Maybe we're all ngmi, though...", "animation": "Sad"} + ] + }, + "Random26": { + "pools": ["Random"], + "lines": [ + {"text": "Are you much of an efficiency nut?", "animation": "Thinking"}, + {"text": "You know, everything being in order, efficient, rapidly progressing, not bloated, not saddled with bureaucracy or fraud or waste!!", "animation": "Shocked"}, + {"text": "Kinda like how Creme runs things, to be honest...", "animation": "Thinking"}, + {"text": "A-Anyways!! On one April Fool's, I heard Four Channel established their own efficiency department!!", "animation": "Shocked"}, + {"text": "Things started out reasonable. A cut there, a bit there...maybe the idea was fine initially...", "animation": "Thinking"}, + {"text": "But then, they got really crazy with it. In the name of \"efficiency\", they cut out whole chunks of their own nation!!", "animation": "Shocked"}, + {"text": "All the denizens had to move somewhere else!! Even somewhere they had no connection or interest in!!", "animation": "Shocked"}, + {"text": "So much for efficiency! That's unjust tyranny!! You need some degree of separation and delegation, right?!", "animation": "Shocked"}, + {"text": "It got so intense, that the whole of Four Channel was blended all into one main area! It was utter chaos!!", "animation": "Concerned"}, + {"text": "But, thankfully, the day after, those dummies must've figured out that it was a bad idea, and cut the whole thing.", "animation": "Thinking"}, + {"text": "Well, I mean...in a way, I guess they were at least ruthlessly effective and competent...even if their execution was misguided...", "animation": "Thinking"}, + {"text": "Imagine that...an efficiency department that only cuts a little bit, and just...gives up and dissolves.", "animation": "Thinking"}, + {"text": "...", "animation": "Neutral"}, + {"text": "...I'm just a cute little princess. I don't know much about governing, so don't take my words too seriously!!", "animation": "Smug"} + ] + }, + "Random27": { + "pools": ["Random"], + "lines": [ + {"text": "Retainer, are you good at answering Captchas?", "animation": "Thinking"}, + {"text": "Y'know, those letters and numbers that appear before making a social media post!", "animation": "Shocked"}, + {"text": "Or...it used to be, back in the day. You'd get such a thing! Now it's a humiliation ritual!!", "animation": "Thinking"}, + {"text": "They make you identify all sorts of abstract shapes and things just so you have the privilege of posting!", "animation": "Concerned"}, + {"text": "...", "animation": "Thinking"}, + {"text": "I don't have a joke. That April Fool's joke sucked. If you know, you know.", "animation": "Grumpy"} + ] + }, + "Digest-1": { + "pools": ["Digest"], + "lines": [ + {"text": "Oof, my tummy was making an awful lot of noise...", "animation": "NeutralFull"} + ] + }, + "Digest-2": { + "pools": ["Digest"], + "lines": [ + {"text": "Heavens, that probably was too much...", "animation": "NeutralFull"} + ] + }, + "Digest-3": { + "pools": ["Digest"], + "lines": [ + {"text": "Retainer, are you sure you're treating me right?", "animation": "NeutralFull"} + ] + }, + "Digest-4": { + "pools": ["Digest"], + "lines": [ + {"text": "Are you sure you're giving me a proper diet?!", "animation": "NeutralFull"} + ] + }, + "Digest-5": { + "pools": ["Digest"], + "lines": [ + {"text": "I suppose I could have some more, now...", "animation": "NeutralFull"} + ] + }, + "Digest-6": { + "pools": ["Digest"], + "lines": [ + {"text": "My dress isn't as tight, now...", "animation": "NeutralFull"} + ] + }, + "Digest-7": { + "pools": ["Digest"], + "lines": [ + {"text": "I feel better, now!!", "animation": "NeutralFull"} + ] + }, + "Digest-8": { + "pools": ["Digest"], + "lines": [ + {"text": "All that yummy food seems to be gone, now...", "animation": "NeutralFull"} + ] + }, + "Digest-9": { + "pools": ["Digest"], + "lines": [ + {"text": "Aah...", "animation": "NeutralFull"} + ] + }, + "Digest-10": { + "pools": ["Digest"], + "lines": [ + {"text": "Oooh...", "animation": "NeutralFull"} + ] + }, + "Digest-11": { + "pools": ["Digest"], + "lines": [ + {"text": "My stomach has settled, now...", "animation": "NeutralFull"} + ] + }, + "Digest-12": { + "pools": ["Digest"], + "lines": [ + {"text": "Another round then, dear retainer...", "animation": "NeutralFull"} + ] + }, + "Digest-13": { + "pools": ["Digest"], + "lines": [ + {"text": "Feels good...", "animation": "NeutralFull"} + ] + }, + "Digest-14": { + "pools": ["Digest"], + "lines": [ + {"text": "Ah, back to being Mini...", "animation": "NeutralFull"} + ] + }, + "Digest-15": { + "pools": ["Digest"], + "lines": [ + {"text": "Something feels different...", "animation": "NeutralFull"} + ] + }, + "Throw-1": { + "pools": ["Throw"], + "lines": [ + {"text": "Look, we can have a food fight later!!", "animation": "Excited"} + ] + }, + "Throw-2": { + "pools": ["Throw"], + "lines": [ + {"text": "Yay, food fight!!", "animation": "Excited"} + ] + }, + "Throw-3": { + "pools": ["Throw"], + "lines": [ + {"text": "I didn't know you knew how to have fun, retainer!!", "animation": "Shocked"} + ] + }, + "Throw-4": { + "pools": ["Throw"], + "lines": [ + {"text": "Haha, so funny!!", "animation": "Excited"} + ] + }, + "Throw-5": { + "pools": ["Throw"], + "lines": [ + {"text": "Wow, you've got good throwing skills!!", "animation": "Excited"} + ] + }, + "Throw-6": { + "pools": ["Throw"], + "lines": [ + {"text": "Wow, that thing went flying!!", "animation": "Excited"} + ] + }, + "Throw-7": { + "pools": ["Throw"], + "lines": [ + {"text": "Look at it go!!", "animation": "Shocked"} + ] + }, + "Throw-8": { + "pools": ["Throw"], + "lines": [ + {"text": "Zooooooooom!!", "animation": "Excited"} + ] + }, + "Throw-9": { + "pools": ["Throw"], + "lines": [ + {"text": "VVVVVvsssssssshooooom!!", "animation": "Excited"} + ] + }, + "Throw-10": { + "pools": ["Throw"], + "lines": [ + {"text": "Whoooooosh!!", "animation": "Excited"} + ] + }, + "Throw-11": { + "pools": ["Throw"], + "lines": [ + {"text": "Food fight!!", "animation": "Shocked"} + ] + }, + "Throw-12": { + "pools": ["Throw"], + "lines": [ + {"text": "So you're not so stuck-up!!", "animation": "Shocked"} + ] + }, + "Throw-13": { + "pools": ["Throw"], + "lines": [ + {"text": "Silly retainer!!", "animation": "Shocked"} + ] + }, + "Throw-14": { + "pools": ["Throw"], + "lines": [ + {"text": "...okay, but you WILL clean up afterwards, right?!", "animation": "Concerned"} + ] + }, + "Throw-15": { + "pools": ["Throw"], + "lines": [ + {"text": "Wow!!", "animation": "Shocked"} + ] + }, + "Feed-1": { + "pools": ["Feed"], + "lines": [ + {"text": "Aah, serving your princess!!", "animation": "Excited"} + ] + }, + "Feed-2": { + "pools": ["Feed"], + "lines": [ + {"text": "Ooh, gimme gimme!!", "animation": "Excited"} + ] + }, + "Feed-3": { + "pools": ["Feed"], + "lines": [ + {"text": "Looks tasty!!", "animation": "Excited"} + ] + }, + "Feed-4": { + "pools": ["Feed"], + "lines": [ + {"text": "A gift? For me?!", "animation": "Excited"} + ] + }, + "Feed-5": { + "pools": ["Feed"], + "lines": [ + {"text": "Yummy!!", "animation": "Excited"} + ] + }, + "Feed-6": { + "pools": ["Feed"], + "lines": [ + {"text": "Yaayyy!!", "animation": "Excited"} + ] + }, + "Feed-7": { + "pools": ["Feed"], + "lines": [ + {"text": "Ooh!!", "animation": "Excited"} + ] + }, + "Feed-8": { + "pools": ["Feed"], + "lines": [ + {"text": "Oh, my tummy was rumbling!", "animation": "Excited"} + ] + }, + "Feed-9": { + "pools": ["Feed"], + "lines": [ + {"text": "Mini hungers!!", "animation": "Excited"} + ] + }, + "Feed-10": { + "pools": ["Feed"], + "lines": [ + {"text": "Ahh..!", "animation": "Excited"} + ] + }, + "Feed-11": { + "pools": ["Feed"], + "lines": [ + {"text": "Aaaah...", "animation": "Excited"} + ] + }, + "Feed-12": { + "pools": ["Feed"], + "lines": [ + {"text": "Food, food!!", "animation": "Excited"} + ] + }, + "Feed-13": { + "pools": ["Feed"], + "lines": [ + {"text": "Tasty, tasty!!", "animation": "Excited"} + ] + }, + "Feed-14": { + "pools": ["Feed"], + "lines": [ + {"text": "Yes!!", "animation": "Excited"} + ] + }, + "Feed-15": { + "pools": ["Feed"], + "lines": [ + {"text": "Serve your princess!!", "animation": "Excited"} + ] + }, + "FeedFull-1": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Um, retainer...my tummy hurts...", "animation": "Concerned"} + ] + }, + "FeedFull-2": { + "pools": ["FeedFull"], + "lines": [ + {"text": "My tummy is making grumbles...", "animation": "Concerned"} + ] + }, + "FeedFull-3": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Are you sure..?", "animation": "Concerned"} + ] + }, + "FeedFull-4": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Well, I do need to be a big girl...", "animation": "Concerned"} + ] + }, + "FeedFull-5": { + "pools": ["FeedFull"], + "lines": [ + {"text": "I-if you want me to, retainer...", "animation": "Concerned"} + ] + }, + "FeedFull-6": { + "pools": ["FeedFull"], + "lines": [ + {"text": "I can...try and fit it in...for you...", "animation": "Concerned"} + ] + }, + "FeedFull-7": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Okay, if you want me to...", "animation": "Concerned"} + ] + }, + "FeedFull-8": { + "pools": ["FeedFull"], + "lines": [ + {"text": "I am a little...full...", "animation": "Concerned"} + ] + }, + "FeedFull-9": { + "pools": ["FeedFull"], + "lines": [ + {"text": "This is going to make me cuter, right..?", "animation": "Concerned"} + ] + }, + "FeedFull-10": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Still..?", "animation": "Shocked"} + ] + }, + "FeedFull-11": { + "pools": ["FeedFull"], + "lines": [ + {"text": "There's more..?!", "animation": "Shocked"} + ] + }, + "FeedFull-12": { + "pools": ["FeedFull"], + "lines": [ + {"text": "It's inconsiderate to leave uneaten food, so...", "animation": "Shocked"} + ] + }, + "FeedFull-13": { + "pools": ["FeedFull"], + "lines": [ + {"text": "It's impolite to not eat what's served...that's what Creme told me...", "animation": "Shocked"} + ] + }, + "FeedFull-14": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Okay...", "animation": "Shocked"} + ] + }, + "FeedFull-15": { + "pools": ["FeedFull"], + "lines": [ + {"text": "I'll fit it in...", "animation": "Concerned"} + ] + }, + "Eat-1": { + "pools": ["Eat"], + "lines": [ + {"text": "Splendid!!", "animation": "Excited"} + ] + }, + "Eat-2": { + "pools": ["Eat"], + "lines": [ + {"text": "I'll have seconds!!", "animation": "Excited"} + ] + }, + "Eat-3": { + "pools": ["Eat"], + "lines": [ + {"text": "That was so yummy..!!", "animation": "Excited"} + ] + }, + "Eat-4": { + "pools": ["Eat"], + "lines": [ + {"text": "You serve me well, retainer!!", "animation": "Excited"} + ] + }, + "Eat-5": { + "pools": ["Eat"], + "lines": [ + {"text": "So tasty!!", "animation": "Excited"} + ] + }, + "Eat-6": { + "pools": ["Eat"], + "lines": [ + {"text": "Yum yum!!", "animation": "Excited"} + ] + }, + "Eat-7": { + "pools": ["Eat"], + "lines": [ + {"text": "Yummy, yummy!!", "animation": "Excited"} + ] + }, + "Eat-8": { + "pools": ["Eat"], + "lines": [ + {"text": "So gooood!!", "animation": "Excited"} + ] + }, + "Eat-9": { + "pools": ["Eat"], + "lines": [ + {"text": "Tasty tasty!!", "animation": "Excited"} + ] + }, + "Eat-10": { + "pools": ["Eat"], + "lines": [ + {"text": "Good!!", "animation": "Excited"} + ] + }, + "Eat-11": { + "pools": ["Eat"], + "lines": [ + {"text": "That tasted great!!", "animation": "Excited"} + ] + }, + "Eat-12": { + "pools": ["Eat"], + "lines": [ + {"text": "I could have some more...", "animation": "Excited"} + ] + }, + "Eat-13": { + "pools": ["Eat"], + "lines": [ + {"text": "Perhaps I could use a little more...", "animation": "Excited"} + ] + }, + "Eat-14": { + "pools": ["Eat"], + "lines": [ + {"text": "More, maybe...", "animation": "Thinking"} + ] + }, + "Eat-15": { + "pools": ["Eat"], + "lines": [ + {"text": "Maybe another one...", "animation": "Thinking"} + ] + }, + "EatFull-1": { + "pools": ["EatFull"], + "lines": [ + {"text": "Mmmgh...", "animation": "Concerned"} + ] + }, + "EatFull-2": { + "pools": ["EatFull"], + "lines": [ + {"text": "Nnngh...", "animation": "Concerned"} + ] + }, + "EatFull-3": { + "pools": ["EatFull"], + "lines": [ + {"text": "Agh...", "animation": "Concerned"} + ] + }, + "EatFull-4": { + "pools": ["EatFull"], + "lines": [ + {"text": "That's the last one...right?", "animation": "Concerned"} + ] + }, + "EatFull-5": { + "pools": ["EatFull"], + "lines": [ + {"text": "Retainer...y-you can stop now...", "animation": "Concerned"} + ] + }, + "EatFull-6": { + "pools": ["EatFull"], + "lines": [ + {"text": "O-okay, we should slow down...", "animation": "Concerned"} + ] + }, + "EatFull-7": { + "pools": ["EatFull"], + "lines": [ + {"text": "Surely this is the last gift of yours, yes..?", "animation": "Concerned"} + ] + }, + "EatFull-8": { + "pools": ["EatFull"], + "lines": [ + {"text": "It tasted good, but...I'm stuffed....", "animation": "Concerned"} + ] + }, + "EatFull-9": { + "pools": ["EatFull"], + "lines": [ + {"text": "L-lovely, but maybe we can stop now..?", "animation": "Concerned"} + ] + }, + "EatFull-10": { + "pools": ["EatFull"], + "lines": [ + {"text": "M-maybe slow it down, a little..?", "animation": "Concerned"} + ] + }, + "EatFull-11": { + "pools": ["EatFull"], + "lines": [ + {"text": "I know you spoil me, but is this really appropriate..?", "animation": "Concerned"} + ] + }, + "EatFull-12": { + "pools": ["EatFull"], + "lines": [ + {"text": "L-last one, right?", "animation": "Concerned"} + ] + }, + "EatFull-13": { + "pools": ["EatFull"], + "lines": [ + {"text": "Ugh...", "animation": "Concerned"} + ] + }, + "EatFull-14": { + "pools": ["EatFull"], + "lines": [ + {"text": "Mmf...", "animation": "Concerned"} + ] + }, + "EatFull-15": { + "pools": ["EatFull"], + "lines": [ + {"text": "Um...", "animation": "Concerned"} + ] + }, + "Full-1": { + "pools": ["Full"], + "lines": [ + {"text": "I can't take any more!!", "animation": "Thinking"} + ] + }, + "Full-2": { + "pools": ["Full"], + "lines": [ + {"text": "I'm gonna blow up if you give me more gifts!!", "animation": "Thinking"} + ] + }, + "Full-3": { + "pools": ["Full"], + "lines": [ + {"text": "I think I'd throw up if I ate more...", "animation": "Concerned"} + ] + }, + "Full-4": { + "pools": ["Full"], + "lines": [ + {"text": "No more, retainer..!", "animation": "Concerned"} + ] + }, + "Full-5": { + "pools": ["Full"], + "lines": [ + {"text": "No more!!", "animation": "Shocked"} + ] + }, + "Full-6": { + "pools": ["Full"], + "lines": [ + {"text": "I'm good, thanks...", "animation": "Shocked"} + ] + }, + "Full-7": { + "pools": ["Full"], + "lines": [ + {"text": "I'm just a little princess, not a hog!!", "animation": "Shocked"} + ] + }, + "Full-8": { + "pools": ["Full"], + "lines": [ + {"text": "Stop it!!", "animation": "Shocked"} + ] + }, + "Full-9": { + "pools": ["Full"], + "lines": [ + {"text": "Please, I can't eat anymore!!", "animation": "Shocked"} + ] + }, + "Full-10": { + "pools": ["Full"], + "lines": [ + {"text": "Peanut Butter could probably eat this much, I can't..!", "animation": "Shocked"} + ] + }, + "Full-11": { + "pools": ["Full"], + "lines": [ + {"text": "I'm Mini, okay? Not Mega!!", "animation": "Shocked"} + ] + }, + "Full-12": { + "pools": ["Full"], + "lines": [ + {"text": "Peep probably could eat more than me, and I'm not Peep!!", "animation": "Shocked"} + ] + }, + "Full-13": { + "pools": ["Full"], + "lines": [ + {"text": "P-put that back into the catalog, please...", "animation": "Concerned"} + ] + }, + "Full-14": { + "pools": ["Full"], + "lines": [ + {"text": "I'm not as big as Chocolate, I can't fit that much into this body..!", "animation": "Shocked"} + ] + }, + "Full-15": { + "pools": ["Full"], + "lines": [ + {"text": "S-save it for later, okay?!", "animation": "Shocked"} + ] + }, + "LowCapacity-1": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "How do you expect to fit THAT into this tiny body?!", "animation": "Shocked"} + ] + }, + "LowCapacity-2": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Are you kidding me?! I can't eat that!!", "animation": "Shocked"} + ] + }, + "LowCapacity-3": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Who do you take me for, a super-fat janny? That's too much!!", "animation": "Shocked"} + ] + }, + "LowCapacity-4": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Too much!! Get something smaller!!", "animation": "Shocked"} + ] + }, + "LowCapacity-5": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Get some common sense!! Something smaller, please!!", "animation": "Shocked"} + ] + }, + "LowCapacity-6": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "I'm Mini, give me some Mini proportions!!", "animation": "Shocked"} + ] + }, + "LowCapacity-7": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "I can't wolf food down big food like a janitor does Hot Pockets!!", "animation": "Shocked"} + ] + }, + "LowCapacity-8": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Something for my tiny figure, please!!", "animation": "Shocked"} + ] + }, + "LowCapacity-9": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Smaller, please...!", "animation": "Shocked"} + ] + }, + "LowCapacity-10": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Make it more Mini, if you can..!", "animation": "Shocked"} + ] + }, + "LowCapacity-11": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "I'd just explode if I ate that!!", "animation": "Shocked"} + ] + }, + "LowCapacity-12": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Bnuuy, what do you think? I'd die if I ate that, right?", "animation": "BnuuyHold"} + ] + }, + "LowCapacity-13": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "I like it small, just like me...", "animation": "Shocked"} + ] + }, + "LowCapacity-14": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "My tummy can't possibly contain something like that!!", "animation": "Shocked"} + ] + }, + "LowCapacity-15": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Let's shrink the proportions, please...", "animation": "Thinking"} + ] + }, + "FoodTaken-1": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "Hey, you can't just...do that!!", "animation": "Concerned"} + ] + }, + "FoodTaken-2": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "Do that again and it'll be off with your head!!", "animation": "Grumpy"} + ] + }, + "FoodTaken-3": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "I'm...I'm gonna headbutt you if you take my food!!", "animation": "Grumpy"} + ] + }, + "FoodTaken-4": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "Meanie, give that back!!", "animation": "Sad"} + ] + }, + "FoodTaken-5": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "Waaaahhhh!!", "animation": "Sad"} + ] + }, + "FoodTaken-6": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "That was supposed to be mine!!", "animation": "Sad"} + ] + }, + "FoodTaken-7": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "Y-you promised me that...", "animation": "Sad"} + ] + }, + "FoodTaken-8": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "Please, h-hand that back!!", "animation": "Sad"} + ] + }, + "FoodTaken-9": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "D-don't take food from me..!!", "animation": "Concerned"} + ] + }, + "FoodTaken-10": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "I thought that was my gift...", "animation": "Concerned"} + ] + }, + "FoodTaken-11": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "JERK!!", "animation": "Grumpy"} + ] + }, + "FoodTaken-12": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "Meanie!!", "animation": "Grumpy"} + ] + }, + "FoodTaken-13": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "Stop that!!", "animation": "Grumpy"} + ] + }, + "FoodTaken-14": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "My name was on that..!", "animation": "Sad"} + ] + }, + "FoodTaken-15": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "Why are you so mean, retainer..?", "animation": "Grumpy"} + ] + }, + "FoodTakenFull-1": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Oh, so you now care about me...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-2": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "T-thanks...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-3": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "I finally got through to you...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-4": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Y-yeah, just...put that back.", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-5": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Thank you, retainer...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-6": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "How...chivalrous...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-7": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Oh, thank goodness...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-8": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "So...knightly...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-9": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Heavens, you finally relented...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-10": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Right, then, let's put that back...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-11": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "No more food for ol' Mini...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-12": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Too much pampering, you see...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-13": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "So you're finally done spoling me...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-14": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "T-thanks... you finally see the light...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull-15": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "You were being TOO good of a servant...", "animation": "NeutralFull"} + ] + }, + "StageUp-1": { + "pools": ["StageUp"], + "lines": [ + {"text": "Um, retainer, do you think I look different..?", "animation": "Shocked"} + ] + }, + "StageUp-2": { + "pools": ["StageUp"], + "lines": [ + {"text": "Did something just happen?", "animation": "Concerned"} + ] + }, + "StageUp-3": { + "pools": ["StageUp"], + "lines": [ + {"text": "I felt something bad just happened, and you were responsible..!", "animation": "Shocked"} + ] + }, + "StageUp-4": { + "pools": ["StageUp"], + "lines": [ + {"text": "You know, I feel really good now for whatever reason.", "animation": "Smug"} + ] + }, + "StageUp-5": { + "pools": ["StageUp"], + "lines": [ + {"text": "Why does my dress feel tighter..?", "animation": "Concerned"} + ] + }, + "StageUp-6": { + "pools": ["StageUp"], + "lines": [ + {"text": "Something is off...", "animation": "Thinking"} + ] + }, + "StageUp-7": { + "pools": ["StageUp"], + "lines": [ + {"text": "Retainer, are you sure you know what you're doing?!", "animation": "Thinking"} + ] + }, + "StageUp-8": { + "pools": ["StageUp"], + "lines": [ + {"text": "Am I \"Mini\" anymore..?", "animation": "Thinking"} + ] + }, + "StageUp-9": { + "pools": ["StageUp"], + "lines": [ + {"text": "I feel...different..", "animation": "Thinking"} + ] + }, + "StageUp-10": { + "pools": ["StageUp"], + "lines": [ + {"text": "Um...retainer...", "animation": "Concerned"} + ] + }, + "StageUp-11": { + "pools": ["StageUp"], + "lines": [ + {"text": "It's...getting kind of tight...", "animation": "Concerned"} + ] + }, + "StageUp-12": { + "pools": ["StageUp"], + "lines": [ + {"text": "Too...tight...", "animation": "NeutralFull"} + ] + }, + "StageUp-13": { + "pools": ["StageUp"], + "lines": [ + {"text": "Nnngh...", "animation": "NeutralFull"} + ] + }, + "StageUp-14": { + "pools": ["StageUp"], + "lines": [ + {"text": "I...this isn't...right...", "animation": "NeutralFull"} + ] + }, + "StageUp-15": { + "pools": ["StageUp"], + "lines": [ + {"text": "I'm...I'm still...Mini...", "animation": "Concerned"} + ] + }, + "MouthKiss-1": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "Uwah!!", "animation": "Embarrassed"} + ] + }, + "MouthKiss-2": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "Y-you can't just...d-do that!!", "animation": "Embarrassed"} + ] + }, + "MouthKiss-3": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "D-Did I give you permission to do that?!", "animation": "Embarrassed"} + ] + }, + "MouthKiss-4": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "I don't think t-that's in your retainer duties!!", "animation": "Embarrassed"} + ] + }, + "MouthKiss-5": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "O-ooh..!", "animation": "Embarrassed"} + ] + }, + "MouthKiss-6": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "You can't just..!!", "animation": "Embarrassed"} + ] + }, + "MouthKiss-7": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "Kissing a princess?! You're not my...", "animation": "Embarrassed"} + ] + }, + "MouthKiss-8": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "I...um...", "animation": "Glance"} + ] + }, + "MouthKiss-9": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "...d-do that again.", "animation": "Glance"} + ] + }, + "MouthKiss-10": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "A kiss..?!", "animation": "Embarrassed"} + ] + }, + "BellyKiss-1": { + "pools": ["BellyKiss"], + "lines": [ + {"text": "Why are you..?!", "animation": "Embarrassed"} + ] + }, + "BellyKiss-2": { + "pools": ["BellyKiss"], + "lines": [ + {"text": "Why are you...kissing my..?!", "animation": "Embarrassed"} + ] + }, + "BellyKiss-3": { + "pools": ["BellyKiss"], + "lines": [ + {"text": "A-are you trying to give me raspberries?!", "animation": "Shocked"} + ] + }, + "BellyKiss-4": { + "pools": ["BellyKiss"], + "lines": [ + {"text": "Q-quit it, that tickles..!", "animation": "Embarrassed"} + ] + }, + "BellyKiss-5": { + "pools": ["BellyKiss"], + "lines": [ + {"text": "S-stop that..!", "animation": "Embarrassed"} + ] + }, + "HeadRub-1": { + "pools": ["HeadRub"], + "lines": [ + {"text": "G-gentle with the bangs, please!!", "animation": "HeadRub"} + ] + }, + "HeadRub-2": { + "pools": ["HeadRub"], + "lines": [ + {"text": "You can't just p-pet me like an a-animal!!", "animation": "HeadRub"} + ] + }, + "HeadRub-3": { + "pools": ["HeadRub"], + "lines": [ + {"text": "M-maybe head pats aren't so bad...", "animation": "HeadRub"} + ] + }, + "HeadRub-4": { + "pools": ["HeadRub"], + "lines": [ + {"animation": "HeadRub"} + ] + }, + "HeadRub-5": { + "pools": ["HeadRub"], + "lines": [ + {"text": "I could get used to these little head pats...", "animation": "HeadRub"} + ] + }, + "BellyRub-1": { + "pools": ["BellyRub"], + "lines": [ + {"text": "Eep! Be gentle with my tummy!!", "animation": "BellyRub"} + ] + }, + "BellyRub-2": { + "pools": ["BellyRub"], + "lines": [ + {"text": "T-that feels nice on my tummy...", "animation": "BellyRub"} + ] + }, + "BellyRub-3": { + "pools": ["BellyRub"], + "lines": [ + {"text": "...", "animation": "BellyRub"} + ] + }, + "BellyRub-4": { + "pools": ["BellyRub"], + "lines": [ + {"text": "Oh...that does help the pressure a bit!!", "animation": "BellyRub"} + ] + }, + "BellyRub-5": { + "pools": ["BellyRub"], + "lines": [ + {"text": "Just don't jiggle me too much, okay?!", "animation": "BellyRub"} + ] + }, + "BellySmack-1": { + "pools": ["BellySmack"], + "lines": [ + {"text": "Eek!! Hey! Don't just smack a princess's tummy!!", "animation": "Shocked"} + ] + }, + "BellySmack-2": { + "pools": ["BellySmack"], + "lines": [ + {"text": "Dummy!! My belly is not a drum!!", "animation": "Grumpy"} + ] + }, + "BellySmack-3": { + "pools": ["BellySmack"], + "lines": [ + {"text": "Nnngh...h-hey, be careful with that!!", "animation": "Concerned"} + ] + }, + "BellySmack-4": { + "pools": ["BellySmack"], + "lines": [ + {"text": "You're bold, aren't you?!", "animation": "Grumpy"} + ] + }, + "BellySmack-5": { + "pools": ["BellySmack"], + "lines": [ + {"text": "If you leave a print on me, it's off with your head!!", "animation": "Grumpy"} + ] + }, + "HeadRubFull-1": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "G-gentle with the bangs, please!!", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-2": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "You can't just p-pet me like an a-animal!!", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-3": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "M-maybe head pats aren't so bad...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-4": { + "pools": ["HeadRubFull"], + "lines": [ + {"animation": "HeadRubFull"} + ] + }, + "HeadRubFull-5": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "I could get used to these little head pats...", "animation": "HeadRubFull"} + ] + }, + "BellyRubFull-1": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Eep! Be gentle with my tummy!!", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-2": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "T-that feels nice on my tummy...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-3": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-4": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Oh...that does help the pressure a bit!!", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-5": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Just don't jiggle me too much, okay?!", "animation": "BellyRubFull"} + ] + } } } diff --git a/resources/characters/mini/font/icons.ttf b/resources/characters/mini/font/icons.ttf deleted file mode 100644 index ed407fb..0000000 Binary files a/resources/characters/mini/font/icons.ttf and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item.anm2 b/resources/characters/mini/gfx/items/item.anm2 index bf324f6..83adec4 100644 --- a/resources/characters/mini/gfx/items/item.anm2 +++ b/resources/characters/mini/gfx/items/item.anm2 @@ -2,7 +2,101 @@ "anm2ed": 1, "info": {"createdOn": "2025-12-06T23:49:27"}, "spritesheets": [ - {"path": "item_001_peep.png"} + { + "path": "items.png", + "regions": [ + { + "name": "Peeep", + "crop": [0, 0], + "size": [64, 64], + "pivot": [32, 32] + }, + { + "name": "Peeeep", + "crop": [65, 0], + "size": [64, 64], + "pivot": [32, 32] + }, + { + "name": "Cool Whipped Cake", + "crop": [130, 0], + "size": [64, 64], + "pivot": [32, 32] + }, + { + "name": "Triple Scoop", + "crop": [195, 0], + "size": [64, 64], + "pivot": [32, 32] + }, + { + "name": "PB Puffs", + "crop": [260, 0], + "size": [64, 64], + "pivot": [32, 32] + }, + { + "name": "PB Jar", + "crop": [325, 0], + "size": [64, 64], + "pivot": [32, 32] + }, + { + "name": "Peep", + "crop": [390, 0], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Mini Egg", + "crop": [439, 0], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Mini Bnuuy", + "crop": [0, 65], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Mini Basket", + "crop": [49, 65], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Creme Cupcake", + "crop": [98, 65], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Choco Kiss", + "crop": [147, 65], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Choco Bar", + "crop": [196, 65], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Choco Taco", + "crop": [245, 65], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "PB Cup", + "crop": [294, 65], + "size": [48, 48], + "pivot": [24, 24] + } + ] + } ], "layers": [ {"name": "Main"} diff --git a/resources/characters/mini/gfx/items/item_001_peep.png b/resources/characters/mini/gfx/items/item_001_peep.png deleted file mode 100644 index d0246c7..0000000 Binary files a/resources/characters/mini/gfx/items/item_001_peep.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_002_peeep.png b/resources/characters/mini/gfx/items/item_002_peeep.png deleted file mode 100644 index f62fd74..0000000 Binary files a/resources/characters/mini/gfx/items/item_002_peeep.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_003_peeeep.png b/resources/characters/mini/gfx/items/item_003_peeeep.png deleted file mode 100644 index b722dff..0000000 Binary files a/resources/characters/mini/gfx/items/item_003_peeeep.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_004_mini_egg.png b/resources/characters/mini/gfx/items/item_004_mini_egg.png deleted file mode 100644 index 1857ee3..0000000 Binary files a/resources/characters/mini/gfx/items/item_004_mini_egg.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_005_mini_bnuuy.png b/resources/characters/mini/gfx/items/item_005_mini_bnuuy.png deleted file mode 100644 index b45b358..0000000 Binary files a/resources/characters/mini/gfx/items/item_005_mini_bnuuy.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_006_mini_basket.png b/resources/characters/mini/gfx/items/item_006_mini_basket.png deleted file mode 100644 index 58d4554..0000000 Binary files a/resources/characters/mini/gfx/items/item_006_mini_basket.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_007_creme_cupcake.png b/resources/characters/mini/gfx/items/item_007_creme_cupcake.png deleted file mode 100644 index d3f61a3..0000000 Binary files a/resources/characters/mini/gfx/items/item_007_creme_cupcake.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_008_cool_whipped_cake.png b/resources/characters/mini/gfx/items/item_008_cool_whipped_cake.png deleted file mode 100644 index c04cbfc..0000000 Binary files a/resources/characters/mini/gfx/items/item_008_cool_whipped_cake.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_009_triple_scoop.png b/resources/characters/mini/gfx/items/item_009_triple_scoop.png deleted file mode 100644 index be026ef..0000000 Binary files a/resources/characters/mini/gfx/items/item_009_triple_scoop.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_010_choco_kiss.png b/resources/characters/mini/gfx/items/item_010_choco_kiss.png deleted file mode 100644 index fecd0b0..0000000 Binary files a/resources/characters/mini/gfx/items/item_010_choco_kiss.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_011_choco_bar.png b/resources/characters/mini/gfx/items/item_011_choco_bar.png deleted file mode 100644 index e13ace8..0000000 Binary files a/resources/characters/mini/gfx/items/item_011_choco_bar.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_012_choco_taco.png b/resources/characters/mini/gfx/items/item_012_choco_taco.png deleted file mode 100644 index 7478474..0000000 Binary files a/resources/characters/mini/gfx/items/item_012_choco_taco.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_013_pb_cup.png b/resources/characters/mini/gfx/items/item_013_pb_cup.png deleted file mode 100644 index f21c5f5..0000000 Binary files a/resources/characters/mini/gfx/items/item_013_pb_cup.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_014_pb_puffs.png b/resources/characters/mini/gfx/items/item_014_pb_puffs.png deleted file mode 100644 index 92af6a8..0000000 Binary files a/resources/characters/mini/gfx/items/item_014_pb_puffs.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_015_pb_jar.png b/resources/characters/mini/gfx/items/item_015_pb_jar.png deleted file mode 100644 index 2ea593d..0000000 Binary files a/resources/characters/mini/gfx/items/item_015_pb_jar.png and /dev/null differ diff --git a/resources/characters/mini/gfx/items/item_big.anm2 b/resources/characters/mini/gfx/items/item_big.anm2 deleted file mode 100644 index e4bdb8f..0000000 --- a/resources/characters/mini/gfx/items/item_big.anm2 +++ /dev/null @@ -1,31 +0,0 @@ -{ - "anm2ed": 1, - "info": {"createdOn": "2025-12-06T23:49:27"}, - "spritesheets": [ - {"path": "item_015_pb_jar.png"} - ], - "layers": [ - {"name": "Main"} - ], - "defaultAnimation": "Default", - "animations": { - "Default": { - "root": [ - { - "scale": [125, 125] - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - { - "size": [64, 64], - "pivot": [32, 32] - } - ] - } - ] - } - } -} diff --git a/resources/characters/mini/gfx/items/items.png b/resources/characters/mini/gfx/items/items.png new file mode 100644 index 0000000..3a3eba5 Binary files /dev/null and b/resources/characters/mini/gfx/items/items.png differ diff --git a/resources/characters/mini/gfx/particle/circle.anm2 b/resources/characters/mini/gfx/particle/circle.anm2 deleted file mode 100644 index 5191e85..0000000 --- a/resources/characters/mini/gfx/particle/circle.anm2 +++ /dev/null @@ -1,48 +0,0 @@ -{ - "anm2ed": 1, - "info": {}, - "spritesheets": [ - { - "path": "circle.png", - "regions": [ - { - "name": "Main", - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - } - ] - } - ], - "layers": [ - {"name": "Main"} - ], - "defaultAnimation": "Spawn", - "animations": { - "Spawn": { - "length": 11, - "loop": false, - "root": [ - {"delay": 11} - ], - "layers": [ - { - "layer": 0, - "frames": [ - { - "region": 0, - "scale": [10, 10], - "delay": 10, - "interpolation": "linear" - }, - { - "region": 0, - "tint": [255, 255, 255, 0], - "interpolation": "linear" - } - ] - } - ] - } - } -} diff --git a/resources/characters/mini/gfx/particle/circle.png b/resources/characters/mini/gfx/particle/circle.png deleted file mode 100644 index 7cd3f72..0000000 Binary files a/resources/characters/mini/gfx/particle/circle.png and /dev/null differ diff --git a/resources/characters/mini/gfx/particle/puff.anm2 b/resources/characters/mini/gfx/particle/puff.anm2 deleted file mode 100644 index 9369a20..0000000 --- a/resources/characters/mini/gfx/particle/puff.anm2 +++ /dev/null @@ -1,99 +0,0 @@ -{ - "anm2ed": 1, - "info": {}, - "spritesheets": [ - { - "path": "puff.png", - "regions": [ - { - "name": "1", - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "2", - "crop": [128, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "3", - "crop": [256, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "4", - "crop": [384, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "5", - "crop": [512, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "6", - "crop": [640, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "7", - "crop": [768, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "8", - "crop": [896, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - } - ] - } - ], - "layers": [ - {"name": "Main"} - ], - "defaultAnimation": "Main", - "animations": { - "Main": { - "length": 16, - "loop": false, - "root": [ - {"delay": 15, "interpolation": "linear"}, - { - "pos": [0, -5], - "tint": [255, 255, 255, 32], - "interpolation": "linear" - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 0, "delay": 2, "interpolation": "linear"}, - {"region": 1, "delay": 2, "interpolation": "linear"}, - {"region": 2, "delay": 2, "interpolation": "linear"}, - {"region": 3, "delay": 2, "interpolation": "linear"}, - {"region": 4, "delay": 2, "interpolation": "linear"}, - {"region": 5, "delay": 2, "interpolation": "linear"}, - {"region": 6, "delay": 2, "interpolation": "linear"}, - {"region": 7, "delay": 2, "interpolation": "linear"} - ] - } - ] - } - } -} diff --git a/resources/characters/mini/gfx/particle/puff.png b/resources/characters/mini/gfx/particle/puff.png deleted file mode 100644 index d241017..0000000 Binary files a/resources/characters/mini/gfx/particle/puff.png and /dev/null differ diff --git a/resources/characters/mini/items.json b/resources/characters/mini/items.json index 793ccd2..af33828 100644 --- a/resources/characters/mini/items.json +++ b/resources/characters/mini/items.json @@ -1,11 +1,11 @@ { "anm2": "gfx/items/item.anm2", "spritesheet": 0, - "spawnDelay": 600, + "spawnDelay": 10, "spawnDelayMultiplier": 0.75, "spawnLimit": 5, "sounds": { - "bounce": ["sfx/bounce1.ogg", "sfx/bounce2.ogg", "sfx/bounce3.ogg"], + "bounce": "sfx/bounce*.ogg", "dispose": ["sfx/dispose.ogg"], "summon": ["sfx/summon.ogg"] }, @@ -13,7 +13,6 @@ "dispose": ["Puff"], "summon": ["Puff"] }, - "categories": {"Food": "edible", "Tool": "tool"}, "rarities": { "Common": {"weight": 1.0, "sound": "sfx/common.ogg"}, "Uncommon": {"weight": 0.5, "sound": "sfx/uncommon.ogg"}, @@ -26,9 +25,9 @@ "category": "Food", "rarity": "Common", "flavor": "Peep", - "texture": "gfx/items/item_001_peep.png", "color": [0.98, 0.506, 0.612], - "calories": 250.0 + "calories": 250.0, + "use": "edible" }, { "name": "Peeep", @@ -36,10 +35,9 @@ "category": "Food", "rarity": "Uncommon", "flavor": "Peep", - "texture": "gfx/items/item_002_peeep.png", - "anm2": "gfx/items/item_big.anm2", "color": [0.98, 0.506, 0.612], - "calories": 650.0 + "calories": 650.0, + "use": "edible" }, { "name": "Peeeep", @@ -47,10 +45,9 @@ "category": "Food", "rarity": "Rare", "flavor": "Peep", - "texture": "gfx/items/item_003_peeeep.png", - "anm2": "gfx/items/item_big.anm2", "color": [0.98, 0.506, 0.612], - "calories": 1400.0 + "calories": 1400.0, + "use": "edible" }, { "name": "Mini Egg", @@ -58,9 +55,9 @@ "category": "Food", "rarity": "Common", "flavor": "Mini", - "texture": "gfx/items/item_004_mini_egg.png", "color": [0.188, 0.651, 0.424], - "calories": 75.0 + "calories": 75.0, + "use": "edible" }, { "name": "Mini Bnuuy", @@ -68,9 +65,9 @@ "category": "Food", "rarity": "Uncommon", "flavor": "Mini", - "texture": "gfx/items/item_005_mini_bnuuy.png", "color": [0.188, 0.651, 0.424], - "calories": 175.0 + "calories": 175.0, + "use": "edible" }, { "name": "Mini Basket", @@ -78,9 +75,9 @@ "category": "Food", "rarity": "Rare", "flavor": "Mini", - "texture": "gfx/items/item_006_mini_basket.png", "color": [0.188, 0.651, 0.424], - "calories": 350.0 + "calories": 350.0, + "use": "edible" }, { "name": "Creme Cupcake", @@ -88,10 +85,10 @@ "category": "Food", "rarity": "Common", "flavor": "Creme", - "texture": "gfx/items/item_007_creme_cupcake.png", "color": [0.808, 0.776, 0.302], "calories": 100.0, - "digestionBonus": 0.075 + "digestionBonus": 0.075, + "use": "edible" }, { "name": "Cool Whipped Cake", @@ -99,11 +96,10 @@ "category": "Food", "rarity": "Uncommon", "flavor": "Creme", - "texture": "gfx/items/item_008_cool_whipped_cake.png", - "anm2": "gfx/items/item_big.anm2", "color": [0.808, 0.776, 0.302], "calories": 250.0, - "digestionBonus": 0.15 + "digestionBonus": 0.15, + "use": "edible" }, { "name": "Triple Scoop", @@ -111,11 +107,10 @@ "category": "Food", "rarity": "Rare", "flavor": "Creme", - "texture": "gfx/items/item_009_triple_scoop.png", - "anm2": "gfx/items/item_big.anm2", "color": [0.808, 0.776, 0.302], "calories": 500.0, - "digestionBonus": 0.3 + "digestionBonus": 0.3, + "use": "edible" }, { "name": "Choco Kiss", @@ -123,10 +118,10 @@ "category": "Food", "rarity": "Common", "flavor": "Chocolate", - "texture": "gfx/items/item_010_choco_kiss.png", "color": [0.282, 0.141, 0], "calories": 100.0, - "capacityBonus": 15.0 + "capacityBonus": 15.0, + "use": "edible" }, { "name": "Choco Bar", @@ -134,10 +129,10 @@ "category": "Food", "rarity": "Uncommon", "flavor": "Chocolate", - "texture": "gfx/items/item_011_choco_bar.png", "color": [0.282, 0.141, 0], "calories": 250.0, - "capacityBonus": 35.0 + "capacityBonus": 35.0, + "use": "edible" }, { "name": "Choco Taco", @@ -145,10 +140,10 @@ "category": "Food", "rarity": "Rare", "flavor": "Chocolate", - "texture": "gfx/items/item_012_choco_taco.png", "color": [0.282, 0.141, 0], "calories": 500.0, - "capacityBonus": 70.0 + "capacityBonus": 70.0, + "use": "edible" }, { "name": "PB Cup", @@ -156,9 +151,9 @@ "category": "Food", "rarity": "Common", "flavor": "Peanut Butter", - "texture": "gfx/items/item_013_pb_cup.png", "color": [0.847, 0.686, 0.055], - "calories": 100.0 + "calories": 100.0, + "use": "edible" }, { "name": "PB Puffs", @@ -166,10 +161,9 @@ "category": "Food", "rarity": "Uncommon", "flavor": "Peanut Butter", - "texture": "gfx/items/item_014_pb_puffs.png", - "anm2": "gfx/items/item_big.anm2", "color": [0.847, 0.686, 0.055], - "calories": 250.0 + "calories": 250.0, + "use": "edible" }, { "name": "PB Jar", @@ -177,10 +171,9 @@ "category": "Food", "rarity": "Rare", "flavor": "Peanut Butter", - "texture": "gfx/items/item_015_pb_jar.png", - "anm2": "gfx/items/item_big.anm2", "color": [0.847, 0.686, 0.055], - "calories": 2000.0 + "calories": 2000.0, + "use": "edible" } ] } diff --git a/resources/characters/mini/sfx/kiss1.ogg b/resources/characters/mini/sfx/kiss1.ogg deleted file mode 100644 index a394afe..0000000 Binary files a/resources/characters/mini/sfx/kiss1.ogg and /dev/null differ diff --git a/resources/characters/mini/sfx/kiss2.ogg b/resources/characters/mini/sfx/kiss2.ogg deleted file mode 100644 index 9c27116..0000000 Binary files a/resources/characters/mini/sfx/kiss2.ogg and /dev/null differ diff --git a/resources/characters/mini/sfx/kiss3.ogg b/resources/characters/mini/sfx/kiss3.ogg deleted file mode 100644 index 3bc7270..0000000 Binary files a/resources/characters/mini/sfx/kiss3.ogg and /dev/null differ diff --git a/resources/characters/mini/sfx/kiss4.ogg b/resources/characters/mini/sfx/kiss4.ogg deleted file mode 100644 index 5c9c94b..0000000 Binary files a/resources/characters/mini/sfx/kiss4.ogg and /dev/null differ diff --git a/resources/characters/mini/sfx/kiss5.ogg b/resources/characters/mini/sfx/kiss5.ogg deleted file mode 100644 index c14366e..0000000 Binary files a/resources/characters/mini/sfx/kiss5.ogg and /dev/null differ diff --git a/resources/characters/mini/sfx/smack1.ogg b/resources/characters/mini/sfx/smack1.ogg deleted file mode 100644 index 8a573d1..0000000 Binary files a/resources/characters/mini/sfx/smack1.ogg and /dev/null differ diff --git a/resources/characters/mini/sfx/smack2.ogg b/resources/characters/mini/sfx/smack2.ogg deleted file mode 100644 index c44cd0e..0000000 Binary files a/resources/characters/mini/sfx/smack2.ogg and /dev/null differ diff --git a/resources/characters/mini/sfx/smack3.ogg b/resources/characters/mini/sfx/smack3.ogg deleted file mode 100644 index b614d10..0000000 Binary files a/resources/characters/mini/sfx/smack3.ogg and /dev/null differ diff --git a/resources/characters/mini/sfx/smack4.ogg b/resources/characters/mini/sfx/smack4.ogg deleted file mode 100644 index 7d368f0..0000000 Binary files a/resources/characters/mini/sfx/smack4.ogg and /dev/null differ diff --git a/resources/characters/mini/sfx/smack5.ogg b/resources/characters/mini/sfx/smack5.ogg deleted file mode 100644 index 3eadb0e..0000000 Binary files a/resources/characters/mini/sfx/smack5.ogg and /dev/null differ diff --git a/resources/characters/snivy/character.json b/resources/characters/snivy/character.json index cc68679..b3e90a9 100644 --- a/resources/characters/snivy/character.json +++ b/resources/characters/snivy/character.json @@ -16,9 +16,9 @@ "caloriesToKilogram": 0.0005, "digestionRate": 1.5, "digestionRateMax": 4.5, - "digestionTime": 120, + "digestionTime": 2, "blinkChance": 0.5, - "gurgleChance": 0.0005, + "gurgleChance": 0.05, "gurgleCapacityMultiplier": 10, "dialoguePool": "Stage1", "alternate": {"texture": "gfx/character/snivy_alt.png", "sound": "sfx/shiny.ogg", "chance": 0.001}, @@ -43,10 +43,7 @@ {"layer": "Torso", "null": "Belly", "scaleMax": 7.5}, {"layer": "Tail", "null": "Tail", "scaleMax": 7.5} ], - "sounds": { - "digest": ["sfx/digest1.ogg", "sfx/digest2.ogg", "sfx/digest3.ogg"], - "gurgle": ["sfx/gurgle1.ogg", "sfx/gurgle2.ogg", "sfx/gurgle3.ogg", "sfx/gurgle4.ogg", "sfx/gurgle5.ogg"] - }, + "sounds": {"digest": "sfx/digest*.ogg", "gurgle": "sfx/gurgle*.ogg"}, "interactTypes": { "Rub": { "glyph": "2", @@ -60,17 +57,17 @@ "glyph": "3", "cursorHover": "SmackHover", "cursorActive": "Smack", - "dialogueCooldown": 40, + "dialogueCooldown": 0.6667, "scaleAmplitude": 5, "scaleCycles": 3, - "sounds": ["sfx/smack1.ogg", "sfx/smack2.ogg", "sfx/smack3.ogg", "sfx/smack4.ogg", "sfx/smack5.ogg"], + "sounds": "sfx/smack*.ogg", "particles": ["Circle"] }, "Kiss": { "glyph": "4", "cursorHover": "KissHover", "cursorActive": "Kiss", - "sounds": ["sfx/kiss1.ogg", "sfx/kiss2.ogg", "sfx/kiss3.ogg", "sfx/kiss4.ogg", "sfx/kiss5.ogg"], + "sounds": "sfx/kiss*.ogg", "particles": ["Circle"] }, "Turn Around": { @@ -82,7 +79,7 @@ "interactAreas": [ {"type": "Rub", "null": "Head", "dialoguePool": "HeadRub", "dialoguePoolFull": "HeadRubFull"}, {"type": "Rub", "null": "HeadBack", "idleOnEnd": "NeutralBack", "dialoguePool": "HeadRubBack", "dialoguePoolFull": "HeadRubBackFull"}, - {"type": "Rub", "null": "Belly", "cursorActive": "Grab", "dialoguePool": "BellyRub", "dialoguePoolFull": "BellyRubFull", "digestionHover": 0.1}, + {"type": "Rub", "null": "Belly", "cursorActive": "Grab", "dialoguePool": "BellyRub", "dialoguePoolFull": "BellyRubFull", "digestionHover": 6}, {"type": "Rub", "null": "Tail", "cursorActive": "Grab", "dialoguePool": "TailRub", "dialoguePoolFull": "TailRubFull"}, {"type": "Rub", "null": "TailBack", "idleOnEnd": "NeutralBack", "cursorActive": "Grab", "dialoguePool": "TailRubBack", "dialoguePoolFull": "TailRubBackFull"}, {"type": "Kiss", "null": "Mouth", "dialoguePool": "MouthKiss", "dialoguePoolFull": "MouthKiss"}, @@ -108,7 +105,7 @@ "sounds": { "grab": ["sfx/grab.ogg"], "release": ["sfx/release.ogg"], - "throw": ["sfx/throw.ogg", "sfx/throw2.ogg", "sfx/throw3.ogg"] + "throw": "sfx/throw*.ogg" }, "particles": { "grab": ["Circle"] @@ -122,7 +119,7 @@ "sounds": { "open": ["sfx/open.ogg"], "close": ["sfx/close.ogg"], - "hover": ["sfx/hover.ogg", "sfx/hover2.ogg", "sfx/hover3.ogg"], + "hover": "sfx/hover*.ogg", "select": ["sfx/select.ogg"], "cheats": ["sfx/cheatsActivated.ogg"] } diff --git a/resources/characters/snivy/dialogue.json b/resources/characters/snivy/dialogue.json index 4246465..e7eb61c 100644 --- a/resources/characters/snivy/dialogue.json +++ b/resources/characters/snivy/dialogue.json @@ -1,172 +1,67 @@ { - "delay": 2, - "blipDelay": 2, + "speed": 30, + "blipEvery": 2, "blip": ["sfx/blip.ogg"], "pauses": { - ".": {"delay": 5}, - "!": {"delay": 5}, - "?": {"delay": 5}, - ",": {"delay": 5} - }, - "hooks": {"Start": "StartBegin", "End": "End", "Help": "Help", "StageUp": "StageUp", "Random": "Random", "Feed": "Feed", "FeedFull": "FeedFull", "Eat": "Eat", "EatFull": "EatFull", "Full": "Full", "Throw": "Throw", "LowCapacity": "LowCapacity", "Digest": "Digest", "FoodTaken": "FoodTaken", "FoodTakenFull": "FoodTakenFull"}, - "pools": { - "StageUp": ["StageUp1", "StageUp2", "StageUp3", "StageUp4", "StageUp5", "StageUp6", "StageUp7", "StageUp8", "StageUp9", "StageUp10", "StageUp11", "StageUp12", "StageUp13", "StageUp14", "StageUp15"], - "Full": ["Full1", "Full2", "Full3", "Full4", "Full5", "Full6", "Full7", "Full8", "Full9", "Full10", "Full11", "Full12", "Full13", "Full14", "Full15", "Full16", "Full17", "Full18", "Full19", "Full20", "Full21", "Full22", "Full23", "Full24", "Full25"], - "EatFull": ["EatFull1", "EatFull2", "EatFull3", "EatFull4", "EatFull5", "EatFull6", "EatFull7", "EatFull8", "EatFull9", "EatFull10", "EatFull11", "EatFull12", "EatFull13", "EatFull14", "EatFull15", "EatFull16", "EatFull17", "EatFull18", "EatFull19", "EatFull20", "EatFull21", "EatFull22", "EatFull23", "EatFull24", "EatFull25", "BurpBig1", "BurpBig2", "BurpBig3", "BurpBig4", "BurpBig5", "BurpBig6", "BurpBig7", "BurpBig8", "BurpBig9", "BurpBig10", "BurpBig11", "BurpBig12", "BurpBig13", "BurpBig14", "BurpBig15", "BurpBig16", "BurpBig17", "BurpBig18", "BurpBig19", "BurpBig20", "BurpBig21", "BurpBig22", "BurpBig23", "BurpBig24", "BurpBig25", "BurpSmall1", "BurpSmall2", "BurpSmall3", "BurpSmall4", "BurpSmall5", "BurpSmall6", "BurpSmall7", "BurpSmall9", "BurpSmall10"], - "Eat": ["Eat1", "Eat2", "Eat3", "Eat4", "Eat5", "Eat6", "Eat7", "Eat8", "Eat9", "Eat10", "Eat11", "Eat12", "Eat13", "Eat14", "Eat15", "Eat16", "Eat17", "Eat18", "Eat19", "Eat20", "Eat21", "Eat22", "Eat23", "Eat24", "Eat25", "BurpBig1", "BurpBig2", "BurpBig3", "BurpBig4", "BurpBig5", "BurpBig6", "BurpBig7", "BurpBig8", "BurpBig9", "BurpBig10", "BurpBig11", "BurpBig12", "BurpBig13", "BurpBig14", "BurpBig15", "BurpBig16", "BurpBig17", "BurpBig18", "BurpBig19", "BurpBig20", "BurpBig21", "BurpBig22", "BurpBig23", "BurpBig24", "BurpBig25", "BurpSmall1", "BurpSmall2", "BurpSmall3", "BurpSmall4", "BurpSmall5", "BurpSmall6", "BurpSmall7", "BurpSmall9", "BurpSmall10"], - "FeedFull": ["FeedFull1", "FeedFull2", "FeedFull3", "FeedFull4", "FeedFull5", "FeedFull6", "FeedFull7", "FeedFull8", "FeedFull9", "FeedFull10", "FeedFull11", "FeedFull12", "FeedFull13", "FeedFull14", "FeedFull15", "FeedFull16", "FeedFull17", "FeedFull18", "FeedFull19", "FeedFull20", "FeedFull21", "FeedFull22", "FeedFull23", "FeedFull24", "FeedFull25"], - "Feed": ["Feed1", "Feed2", "Feed3", "Feed4", "Feed5", "Feed6", "Feed7", "Feed8", "Feed9", "Feed10", "Feed11", "Feed12", "Feed13", "Feed14", "Feed15", "Feed16", "Feed17", "Feed18", "Feed19", "Feed20", "Feed21", "Feed22", "Feed23", "Feed24", "Feed25"], - "FoodTakenFull": ["FoodTakenFull1", "FoodTakenFull2", "FoodTakenFull3", "FoodTakenFull4", "FoodTakenFull5", "FoodTakenFull6", "FoodTakenFull7", "FoodTakenFull8", "FoodTakenFull9", "FoodTakenFull10", "FoodTakenFull11", "FoodTakenFull12", "FoodTakenFull13", "FoodTakenFull14", "FoodTakenFull15", "FoodTakenFull16", "FoodTakenFull17", "FoodTakenFull18", "FoodTakenFull19", "FoodTakenFull20", "FoodTakenFull21", "FoodTakenFull22", "FoodTakenFull23", "FoodTakenFull24", "FoodTakenFull25"], - "FoodTaken": ["FoodTaken1", "FoodTaken2", "FoodTaken3", "FoodTaken4", "FoodTaken5", "FoodTaken6", "FoodTaken7", "FoodTaken8", "FoodTaken9", "FoodTaken10", "FoodTaken11", "FoodTaken12", "FoodTaken13", "FoodTaken14", "FoodTaken15", "FoodTaken16", "FoodTaken17", "FoodTaken18", "FoodTaken19", "FoodTaken20", "FoodTaken21", "FoodTaken22", "FoodTaken23", "FoodTaken24", "FoodTaken25"], - "Throw": ["Throw1", "Throw2", "Throw3", "Throw4", "Throw5", "Throw6", "Throw7", "Throw8", "Throw9", "Throw10", "Throw11", "Throw12", "Throw13", "Throw14", "Throw15", "Throw16", "Throw17", "Throw18", "Throw19", "Throw20", "Throw21", "Throw22", "Throw23", "Throw24", "Throw25"], - "LowCapacity": ["LowCapacity1", "LowCapacity2", "LowCapacity3", "LowCapacity4", "LowCapacity5", "LowCapacity6", "LowCapacity7", "LowCapacity8", "LowCapacity9", "LowCapacity10", "LowCapacity11", "LowCapacity12", "LowCapacity13", "LowCapacity14", "LowCapacity15", "LowCapacity16", "LowCapacity17", "LowCapacity18", "LowCapacity19", "LowCapacity20", "LowCapacity21", "LowCapacity22", "LowCapacity23", "LowCapacity24", "LowCapacity25"], - "Digest": ["Digest1", "Digest2", "Digest3", "Digest4", "Digest5", "Digest6", "Digest7", "Digest8", "Digest9", "Digest10", "Digest11", "Digest12", "Digest13", "Digest14", "Digest15", "Digest16", "Digest17", "Digest18", "Digest19", "Digest20", "Digest21", "Digest22", "Digest23", "Digest24", "Digest25"], - "Random": ["Random1", "Random2", "Random3", "Random4", "Random5", "Random6", "Random7", "Random8", "Random9", "Random10", "Random11", "Random12", "Random13", "Random14", "Random15", "Random16", "Random17", "Random18", "Random19", "Random20", "Random21", "Random22", "Random23", "Random24", "Random25", "Random26", "Random27", "Random28", "Random29", "Random30", "Random31", "Random32", "Random33", "Random34", "Random35", "Random36", "Random37", "Random38", "Random39", "Random40", "Random41", "Random42", "Random43", "Random44", "Random45", "Random46", "Random47", "Random48", "Random49", "Random50", "Random51"], - "HeadRub": ["HeadRub1", "HeadRub2", "HeadRub3", "HeadRub4", "HeadRub5", "HeadRub6", "HeadRub7", "HeadRub8", "HeadRub9", "HeadRub10"], - "BellyRub": ["BellyRub1", "BellyRub2", "BellyRub3", "BellyRub4", "BellyRub5", "BellyRub6", "BellyRub7", "BellyRub8", "BellyRub9", "BellyRub10", "BellyRub11"], - "TailRub": ["TailRub1", "TailRub2", "TailRub3", "TailRub4", "TailRub5", "TailRub6", "TailRub7", "TailRub8", "TailRub9", "TailRub10"], - "HeadRubBack": ["HeadRubBack1", "HeadRubBack2", "HeadRubBack3", "HeadRubBack4", "HeadRubBack5", "HeadRubBack6", "HeadRubBack7", "HeadRubBack8", "HeadRubBack9", "HeadRubBack10"], - "TailRubBack": ["TailRubBack1", "TailRubBack2", "TailRubBack3", "TailRubBack4", "TailRubBack5", "TailRubBack6", "TailRubBack7", "TailRubBack8", "TailRubBack9", "TailRubBack10"], - "MouthKiss": ["MouthKiss1", "MouthKiss2", "MouthKiss3", "MouthKiss4", "MouthKiss5", "MouthKiss6", "MouthKiss7", "MouthKiss8", "MouthKiss9", "MouthKiss10"], - "BellyKiss": ["BellyKiss1", "BellyKiss2", "BellyKiss3", "BellyKiss4", "BellyKiss5"], - "TailKiss": ["TailKiss1", "TailKiss2", "TailKiss3", "TailKiss4", "TailKiss5"], - "BellySmack": ["Smack1", "Smack2", "Smack3", "Smack4", "Smack5", "BellySmack1", "BellySmack2", "BellySmack3", "BellySmack4", "BellySmack5"], - "TailSmack": ["Smack1", "Smack2", "Smack3", "Smack4", "Smack5", "TailSmack1", "TailSmack2", "TailSmack3", "TailSmack4", "TailSmack5"], - "TailSmackBack": ["TailSmackBack1", "TailSmackBack2", "TailSmackBack3", "TailSmackBack4", "TailSmackBack5", "TailSmackBack6", "TailSmackBack7", "TailSmackBack8", "TailSmackBack9", "TailSmackBack10"], - "Stage1": ["Stage1-1", "Stage1-2", "Stage1-3"], - "Stage2": ["Stage2-1", "Stage2-2", "Stage2-3"], - "Stage3": ["Stage3-1", "Stage3-2", "Stage3-3"], - "Stage4": ["Stage4-1", "Stage4-2", "Stage4-3"], - "Stage5": ["Stage5-1", "Stage5-2", "Stage5-3"], - "Stage6": ["Stage6-1", "Stage6-2", "Stage6-3"], - "Stage7": ["Stage7-1", "Stage7-2", "Stage7-3"], - "Stage8": ["Stage8-1", "Stage8-2", "Stage8-3"], - "Stage9": ["Stage9-1", "Stage9-2", "Stage9-3"], - "Stage10": ["Stage10-1", "Stage10-2", "Stage10-3"], - "HeadRubFull": ["HeadRubFull-1", "HeadRubFull-2", "HeadRubFull-3", "HeadRubFull-4", "HeadRubFull-5", "HeadRubFull-6", "HeadRubFull-7", "HeadRubFull-8", "HeadRubFull-9", "HeadRubFull-10", "HeadRubFull-11", "HeadRubFull-12", "HeadRubFull-13", "HeadRubFull-14", "HeadRubFull-15", "HeadRubFull-16", "HeadRubFull-17", "HeadRubFull-18", "HeadRubFull-19", "HeadRubFull-20"], - "BellyRubFull": ["BellyRubFull-1", "BellyRubFull-2", "BellyRubFull-3", "BellyRubFull-4", "BellyRubFull-5", "BellyRubFull-6", "BellyRubFull-7", "BellyRubFull-8", "BellyRubFull-9", "BellyRubFull-10", "BellyRubFull-11", "BellyRubFull-12", "BellyRubFull-13", "BellyRubFull-14", "BellyRubFull-15", "BellyRubFull-16", "BellyRubFull-17", "BellyRubFull-18", "BellyRubFull-19", "BellyRubFull-20", "BellyRubFull-21"], - "TailRubFull": ["TailRubFull-1", "TailRubFull-2", "TailRubFull-3", "TailRubFull-4", "TailRubFull-5", "TailRubFull-6", "TailRubFull-7", "TailRubFull-8", "TailRubFull-9", "TailRubFull-10", "TailRubFull-11", "TailRubFull-12", "TailRubFull-13", "TailRubFull-14", "TailRubFull-15", "TailRubFull-16", "TailRubFull-17", "TailRubFull-18", "TailRubFull-19", "TailRubFull-20"], - "HeadRubBackFull": ["HeadRubBackFull-1", "HeadRubBackFull-2", "HeadRubBackFull-3", "HeadRubBackFull-4", "HeadRubBackFull-5", "HeadRubBackFull-6", "HeadRubBackFull-7", "HeadRubBackFull-8", "HeadRubBackFull-9", "HeadRubBackFull-10", "HeadRubBackFull-11", "HeadRubBackFull-12", "HeadRubBackFull-13", "HeadRubBackFull-14", "HeadRubBackFull-15", "HeadRubBackFull-16", "HeadRubBackFull-17", "HeadRubBackFull-18", "HeadRubBackFull-19", "HeadRubBackFull-20"], - "TailRubBackFull": ["TailRubBackFull-1", "TailRubBackFull-2", "TailRubBackFull-3", "TailRubBackFull-4", "TailRubBackFull-5", "TailRubBackFull-6", "TailRubBackFull-7", "TailRubBackFull-8", "TailRubBackFull-9", "TailRubBackFull-10", "TailRubBackFull-11", "TailRubBackFull-12", "TailRubBackFull-13", "TailRubBackFull-14", "TailRubBackFull-15", "TailRubBackFull-16", "TailRubBackFull-17", "TailRubBackFull-18", "TailRubBackFull-19", "TailRubBackFull-20"] + ".": {"delay": 0.0833}, + "!": {"delay": 0.0833}, + "?": {"delay": 0.0833}, + ",": {"delay": 0.0833} }, + "hooks": {"Start": "StartBegin"}, "entries": { "StartBegin": { - "animation": "Appear", - "next": "Start", - "effects": [ - {"type": "scene"} - ] - }, - "Start": { - "text": "Hey there, human! Are you interested in a little...well, BIG project?", + "isScene": true, + "lines": [ + {"animation": "Appear"}, + {"text": "Hey there, human! Are you interested in a little...well, [wave]BIG[/wave] project?"} + ], "choices": [ {"text": "Sounds fun!", "next": "Start2A"}, {"text": "Uh...sure?", "next": "Start2B"}, {"text": "Who're you?", "next": "Start2C"}, {"text": "No way!", "next": "Start2D"} - ], - "effects": [ - {"type": "oscillation", "start": 57, "end": 60} ] }, "Start2A": { - "text": "That's the spirit!", - "animation": "Smug", - "next": "Start3", - "effects": [ - {"type": "oscillation", "end": 17} - ] + "lines": [ + {"text": "[wave]That's the spirit[/wave]!", "animation": "Smug"} + ], + "next": "Start3" }, "Start2B": { - "text": "Welp, too bad! You're stuck here, looking at me!", - "animation": "Smug", - "next": "Start3", - "effects": [ - {"type": "shake", "start": 6, "end": 13} - ] + "lines": [ + {"text": "Welp, [shake]too bad[/shake]! You're stuck here, looking at me!", "animation": "Smug"} + ], + "next": "Start3" }, "Start2C": { - "text": "You don't recognize me? Snivy, the Grass Snake Unovan super star Pokémon?", - "animation": "Surprised", - "next": "Start2C-2", - "effects": [ - { - "type": "color", - "start": 35, - "end": 46, - "color": [0.25098, 1, 0.25098] - } - ] + "lines": [ + {"text": "You don't recognize me? Snivy, the [color=0.251 1 0.251]Grass Snake[/color] Unovan super star Pokémon?", "animation": "Surprised"}, + {"text": "Well, you certainly will, by the end of this!", "animation": "Smug"} + ], + "next": "Start3" }, - "Start2C-2": {"text": "Well, you certainly will, by the end of this!", "animation": "Smug", "next": "Start3"}, "Start2D": { - "text": "Hey, you can leave at any time! Use that device of y- I mean, your legs... ", - "animation": "Peeved", - "next": "Start2D-2", - "effects": [ - {"type": "screenshake"} - ] + "lines": [ + {"text": "[screenshake]Hey, you can leave at any time! Use that device of y- I mean, your legs... ", "animation": "Peeved"}, + {"text": "...well, if you're still here, then...let me explain!", "animation": "Bummed"} + ], + "next": "Start3" }, - "Start2D-2": {"text": "...well, if you're still here, then...let me explain!", "animation": "Bummed", "next": "Start3"}, "Start3": { - "text": "Basically, the project is...me!", - "animation": "Neutral", - "next": "Start4", - "effects": [ - {"type": "oscillation", "start": 28, "end": 30} - ] - }, - "Start4": { - "text": "You're gonna help me get BIG!", - "animation": "Horny", - "next": "Start5", - "effects": [ - {"type": "shake", "start": 25, "end": 28} - ] - }, - "Start5": { - "text": "And not big as in tall. Not big as in famous. Not big as in muscly. Big as in...", - "next": "Start6", - "effects": [ - { - "type": "color", - "start": 18, - "end": 22, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 38, - "end": 44, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 60, - "end": 66, - "color": [1, 0.25, 0.25] - } - ] - }, - "Start6": { - "text": "FAAAAT!", - "animation": "Pat", - "next": "Start7", - "effects": [ - {"type": "big", "end": 7}, - {"type": "shake", "end": 7}, - {"type": "screenshake"}, - {"type": "sound", "sound": "sfx/boom.ogg"} - ] - }, - "Start7": { - "text": "Let's get to it, then! Check out the options!", - "effects": [ - {"type": "oscillation", "start": 23, "end": 44} + "lines": [ + {"text": "Basically, the project is...[wave]me[/wave]!", "animation": "Neutral"}, + {"text": "You're gonna help me get [shake]BIG[/shake]!", "animation": "Horny"}, + {"text": "And not big as in [color=1 0.25 0.25]tall[/color]. Not big as in [color=1 0.25 0.25]famous[/color]. Not big as in [color=1 0.25 0.25]muscly[/color]. Big as in..."}, + {"text": "[big][shake][screenshake][sound=sfx/boom.ogg]FAAAAT![/shake][/big]", "animation": "Pat"}, + {"text": "Let's get to it, then! [wave]Check out the options[/wave]!"} ] }, "Help": { - "text": "What do you need help with?", + "lines": [ + {"text": "What do you need help with?"} + ], "choices": [ {"text": "You!", "next": "HelpYou"}, {"text": "Interact", "next": "HelpInteract"}, @@ -174,160 +69,49 @@ {"text": "Settings", "next": "HelpSettings"} ] }, - "HelpYou": {"text": "Well, what about me? You heard what I said, right?", "animation": "Smug", "next": "HelpYou2"}, - "HelpYou2": { - "text": "Bring me food to help me grow!", - "animation": "Smug", - "next": "HelpYou3", - "effects": [ - { - "type": "color", - "start": 9, - "end": 13, - "color": [1, 0.25, 0.25] - } - ] - }, - "HelpYou3": {"text": "Once you get food, bring it to me!", "next": "HelpYou4"}, - "HelpYou4": { - "text": "I'll chow down and it'll digest in time! Elementary, right?", - "next": "HelpYou5", - "effects": [ - {"type": "oscillation", "start": 41, "end": 50} - ] - }, - "HelpYou5": { - "text": "If you feed me over my limit...well, maybe that will increase my capacity. Be gentle if you could...", - "next": "HelpYou6", - "effects": [ - { - "type": "color", - "start": 15, - "end": 28, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 65, - "end": 73, - "color": [1, 0.25, 0.25] - } - ] - }, - "HelpYou6": { - "text": "If you want, you could even...pet my head, rub my belly or tail! Or touch me in other ways! So many possibilities!", - "animation": "Shocked", - "next": "HelpYou7", - "effects": [ - { - "type": "color", - "start": 37, - "end": 41, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 50, - "end": 56, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 59, - "end": 63, - "color": [1, 0.25, 0.25] - }, - {"type": "oscillation", "start": 92, "end": 113} - ] - }, - "HelpYou7": { - "text": "Maybe rubbing my belly will help me digest faster? I don't know, you'll have to figure that out...", - "animation": "Smug", - "next": "HelpYou8", - "effects": [ - { - "type": "color", - "start": 36, - "end": 49, - "color": [1, 0.25, 0.25] - } - ] - }, - "HelpYou8": { - "text": "You can...also use the middle mouse button (or CTRL and click) and your mouse wheel to look around! (Whatever that means...)", - "animation": "Neutral", - "effects": [ - {"type": "silent", "start": 100, "end": 124}, - { - "type": "color", - "start": 100, - "end": 124, - "color": [0.544304, 0.544304, 0.544304] - }, - {"type": "animation", "start": 101, "animation": "Thinking"} + "HelpYou": { + "lines": [ + {"text": "Well, what about me? You heard what I said, right?", "animation": "Smug"}, + {"text": "Bring me [color=1 0.25 0.25]food[/color] to help me grow!", "animation": "Smug"}, + {"text": "Once you get food, bring it to me!"}, + {"text": "I'll chow down and it'll digest in time! [wave]Elementar[/wave]y, right?"}, + {"text": "If you feed me [color=1 0.25 0.25]over my limit[/color]...well, maybe that will increase my [color=1 0.25 0.25]capacity[/color]. Be gentle if you could..."}, + {"text": "If you want, you could even...pet my [color=1 0.25 0.25]head[/color], rub my [color=1 0.25 0.25]belly [/color]or [color=1 0.25 0.25]tail[/color]! Or touch me in other ways! [wave]So many possibilities[/wave]!", "animation": "Shocked"}, + {"text": "Maybe rubbing my belly will help me [color=1 0.25 0.25]digest faster[/color]? I don't know, you'll have to figure that out...", "animation": "Smug"}, + {"text": "You can...also use the middle mouse button (or CTRL and click) and your mouse wheel to look around! [silent][color=0.5443 0.5443 0.5443]([animation=Thinking]Whatever that means...)[/color][/silent]", "animation": "Neutral"} ] }, "HelpInteract": { - "text": "That's what you're using right now!", - "animation": "Peeved", - "next": "HelpInteract2", - "effects": [ - {"type": "shake", "end": 35}, - {"type": "screenshake", "end": 35} + "lines": [ + {"text": "[shake][screenshake]That's what you're using right now![/shake]", "animation": "Peeved"}, + {"text": "It's a place for everything...spawning [color=1 0.25 0.25]items[/color], and [color=1 0.25 0.25]chatting[/color] with a cutie like me!", "animation": "Smug"}, + {"text": "I'm just teasing you! But, I am quite the conversationalist!", "animation": "Neutral"}, + {"text": "I'm sure I've got some [wave]fun[/wave] discussion topics rattling around in my brain..."}, + {"text": "Also, there's some [color=1 0.25 0.25]statistical[/color] information about me...wait, how are you getting that?!", "animation": "Peeved"}, + {"text": "Anyways, with spawning items. Once you spawn one, there will be a bit of a delay...", "animation": "Thinking"}, + {"text": "It'll appear right by me! The next simple step, is if it's food, is to bring it to my mouth!!", "animation": "Horny"}, + {"text": "Don't get cocky and throw your food like a hatchling!! I'm sure you can figure out what's proper!!", "animation": "Peeved"} ] }, - "HelpInteract2": { - "text": "It's a place for everything...spawning items, and chatting with a cutie like me!", - "animation": "Smug", - "next": "HelpInteract3", - "effects": [ - { - "type": "color", - "start": 39, - "end": 44, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 50, - "end": 58, - "color": [1, 0.25, 0.25] - } + "HelpCatalog": { + "lines": [ + {"text": "The Catalog is a log of all the stuff you've found!", "animation": "Neutral"}, + {"text": "...which will be mostly food, of course! See what you can uncover!", "animation": "Smug"}, + {"text": "Hover or press on the item for some juicy details...", "animation": "Neutral"}, + {"text": "For food, you'll see how many calories they have, or other effects...", "animation": "Smug"}, + {"text": "See if you can find everything!!!", "animation": "Excited"} ] }, - "HelpInteract3": {"text": "I'm just teasing you! But, I am quite the conversationalist!", "animation": "Neutral", "next": "HelpInteract4"}, - "HelpInteract4": { - "text": "I'm sure I've got some fun discussion topics rattling around in my brain...", - "next": "HelpInteract5", - "effects": [ - {"type": "oscillation", "start": 23, "end": 26} + "HelpSettings": { + "lines": [ + {"text": "Settings is where you can...configure stuff. What stuff? I don't know, just go look...", "animation": "Shocked"} ] }, - "HelpInteract5": { - "text": "Also, there's some statistical information about me...wait, how are you getting that?!", - "animation": "Peeved", - "next": "HelpInteract6", - "effects": [ - { - "type": "color", - "start": 19, - "end": 30, - "color": [1, 0.25, 0.25] - } - ] - }, - "HelpInteract6": {"text": "Anyways, with spawning items. Once you spawn one, there will be a bit of a delay...", "animation": "Thinking", "next": "HelpInteract7"}, - "HelpInteract7": {"text": "It'll appear right by me! The next simple step, is if it's food, is to bring it to my mouth!!", "animation": "Horny", "next": "HelpInteract8"}, - "HelpInteract8": {"text": "Don't get cocky and throw your food like a hatchling!! I'm sure you can figure out what's proper!!", "animation": "Peeved"}, - "HelpCatalog": {"text": "The Catalog is a log of all the stuff you've found!", "animation": "Neutral", "next": "HelpCatalog2"}, - "HelpCatalog2": {"text": "...which will be mostly food, of course! See what you can uncover!", "animation": "Smug", "next": "HelpCatalog3"}, - "HelpCatalog3": {"text": "Hover or press on the item for some juicy details...", "animation": "Neutral", "next": "HelpCatalog4"}, - "HelpCatalog4": {"text": "For food, you'll see how many calories they have, or other effects...", "animation": "Smug", "next": "HelpCatalog5"}, - "HelpCatalog5": {"text": "See if you can find everything!!!", "animation": "Excited"}, - "HelpSettings": {"text": "Settings is where you can...configure stuff. What stuff? I don't know, just go look...", "animation": "Shocked"}, "Random1": { - "text": "I've got a question...which of these Pokémon is your favorite?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "I've got a question...which of these Pokémon is your favorite?", "animation": "Thinking"} + ], "choices": [ {"text": "Snivy", "next": "Random1-A"}, {"text": "Oshawott", "next": "Random1-B"}, @@ -335,90 +119,28 @@ ] }, "Random1-A": { - "text": "I mean, duh! Of course! Whose favorite isn't Snivy?", - "animation": "Smug", - "next": "Random1-A-2", - "effects": [ - { - "type": "color", - "start": 45, - "end": 50, - "color": [0.25098, 1, 0.25098] - } + "lines": [ + {"text": "I mean, duh! Of course! Whose favorite isn't [color=0.251 1 0.251]Snivy[/color]?", "animation": "Smug"}, + {"text": "Such grace, such beauty! Brilliant, [color=1 0.25 0.25]crimson red[/color] eyes, an elegant tail, appeal and intelligence...", "animation": "Eager"}, + {"text": "That glorious [color=0.251 1 0.251]green[/color] sheen, a [color=0.251 1 0.251]Grass[/color] type, of course. Perfection...no other Pokémon can beat it!", "animation": "Eager"}, + {"text": "...[screenshake]what's that look for? You think I'm biased, or something?", "animation": "Shocked"} ] }, - "Random1-A-2": { - "text": "Such grace, such beauty! Brilliant, crimson red eyes, an elegant tail, appeal and intelligence...", - "animation": "Eager", - "next": "Random1-A-3", - "effects": [ - { - "type": "color", - "start": 36, - "end": 47, - "color": [1, 0.25, 0.25] - } + "Random1-B": { + "lines": [ + {"text": "..........", "animation": "Shocked"}, + {"text": "[screenshake].....................", "animation": "Cry"}, + {"text": "...I'm...[shake][silent]*[screenshake]sniff*[/silent][/shake]...I'm just going to pretend you didn't say that...", "animation": "Cry"}, + {"text": "...actually, you...you [shake]DID[/shake] say I'm your favorite. I [shake]DID[/shake] hear that!", "animation": "Peeved"}, + {"text": "...........", "animation": "Thinking"}, + {"text": "...l-let's just talk about something else...", "animation": "Cry"} ] }, - "Random1-A-3": { - "text": "That glorious green sheen, a Grass type, of course. Perfection...no other Pokémon can beat it!", - "animation": "Eager", - "next": "Random1-A-4", - "effects": [ - { - "type": "color", - "start": 14, - "end": 19, - "color": [0.25098, 1, 0.25098] - }, - { - "type": "color", - "start": 29, - "end": 34, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random1-A-4": { - "text": "...what's that look for? You think I'm biased, or something?", - "animation": "Shocked", - "effects": [ - {"type": "screenshake", "start": 3, "end": 3} - ] - }, - "Random1-B": {"text": "..........", "animation": "Shocked", "next": "Random1-B-2"}, - "Random1-B-2": { - "text": ".....................", - "animation": "Cry", - "next": "Random1-B-3", - "effects": [ - {"type": "screenshake", "end": 10} - ] - }, - "Random1-B-3": { - "text": "...I'm...*sniff*...I'm just going to pretend you didn't say that...", - "animation": "Cry", - "next": "Random1-B-4", - "effects": [ - {"type": "screenshake", "start": 10, "end": 10}, - {"type": "shake", "start": 9, "end": 16}, - {"type": "silent", "start": 9, "end": 16} - ] - }, - "Random1-B-4": { - "text": "...actually, you...you DID say I'm your favorite. I DID hear that!", - "animation": "Peeved", - "next": "Random1-B-5", - "effects": [ - {"type": "shake", "start": 23, "end": 26}, - {"type": "shake", "start": 52, "end": 55} - ] - }, - "Random1-B-5": {"text": "...........", "animation": "Thinking", "next": "Random1-B-6"}, - "Random1-B-6": {"text": "...l-let's just talk about something else...", "animation": "Cry"}, "Random2": { - "text": "So, just a question...which of these Pokémon is your favorite?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "So, just a question...which of these Pokémon is your favorite?", "animation": "Thinking"} + ], "choices": [ {"text": "Bulbasaur", "next": "Random2-A"}, {"text": "Squirtle", "next": "Random2-B"}, @@ -426,143 +148,37 @@ ] }, "Random2-A": { - "text": "Yeah, Bulbasaur! A fellow Grass type! Respect!", - "animation": "Neutral", - "next": "Random2-A-2", - "effects": [ - { - "type": "color", - "start": 26, - "end": 31, - "color": [0.25098, 1, 0.25098] - }, - { - "type": "color", - "start": 6, - "end": 15, - "color": [0.25098, 1, 0.25098] - } + "lines": [ + {"text": "Yeah, [color=0.251 1 0.251]Bulbasaur[/color]! A fellow [color=0.251 1 0.251]Grass[/color] type! Respect!", "animation": "Neutral"}, + {"text": "[color=0.251 1 0.251]Bulbasaur[/color] can do Leech Seed, too!", "animation": "Neutral"}, + {"text": "[wave]Sucking[/wave] up an opponent's energy...[wave]swelling[/wave] with healing power...", "animation": "Horny"}, + {"text": "What, am I being weird about it? Sorry...", "animation": "Shocked"} ] }, - "Random2-A-2": { - "text": "Bulbasaur can do Leech Seed, too!", - "animation": "Neutral", - "next": "Random2-A-3", - "effects": [ - { - "type": "color", - "end": 9, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random2-A-3": { - "text": "Sucking up an opponent's energy...swelling with healing power...", - "animation": "Horny", - "next": "Random2-A-4", - "effects": [ - {"type": "oscillation", "start": 34, "end": 42}, - {"type": "oscillation", "end": 7} - ] - }, - "Random2-A-4": {"text": "What, am I being weird about it? Sorry...", "animation": "Shocked"}, "Random2-B": { - "text": "Squirtle, huh? Fair, fair. That lil' guy can look so cool, especially when wearing shades...", - "animation": "Neutral", - "next": "Random2-B-2", - "effects": [ - { - "type": "color", - "end": 8, - "color": [0.25098, 1, 1] - } + "lines": [ + {"text": "[color=0.251 1 1]Squirtle[/color], huh? Fair, fair. That lil' guy can look so cool, especially when wearing shades...", "animation": "Neutral"}, + {"text": "I think a [color=0.251 1 1]Squirtle[/color] is a character in that fighting game, isn't it?", "animation": "Surprised"}, + {"text": "Although I don't like fighting, it could be cool to see a representation of me fight!", "animation": "Eager"}, + {"text": "[screenshake]Vine Whip! [screenshake]Leaf Blade! [screenshake]Giga Drain!", "animation": "Eager"}, + {"text": "And my special move?! [screenshake][shake][big] [sound=sfx/boom.ogg]Me becoming fat enough to engulf the stage[/big][/shake]!", "animation": "Horny"}, + {"text": "...what, did I say something?", "animation": "Shocked"} ] }, - "Random2-B-2": { - "text": "I think a Squirtle is a character in that fighting game, isn't it?", - "animation": "Surprised", - "next": "Random2-B-3", - "effects": [ - { - "type": "color", - "start": 10, - "end": 18, - "color": [0.25098, 1, 1] - } - ] - }, - "Random2-B-3": {"text": "Although I don't like fighting, it could be cool to see a representation of me fight!", "animation": "Eager", "next": "Random2-B-4"}, - "Random2-B-4": { - "text": "Vine Whip! Leaf Blade! Giga Drain!", - "animation": "Eager", - "next": "Random2-B-5", - "effects": [ - {"type": "screenshake"}, - {"type": "screenshake", "start": 11, "end": 11}, - {"type": "screenshake", "start": 23, "end": 23} - ] - }, - "Random2-B-5": { - "text": "And my special move?! Me becoming fat enough to engulf the stage!", - "animation": "Horny", - "next": "Random2-B-6", - "effects": [ - {"type": "screenshake", "start": 22, "end": 22}, - {"type": "shake", "start": 22, "end": 65}, - {"type": "big", "start": 22, "end": 65}, - {"type": "sound", "start": 23, "end": 23, "sound": "sfx/boom.ogg"} - ] - }, - "Random2-B-6": {"text": "...what, did I say something?", "animation": "Shocked"}, "Random2-C": { - "text": "Charmander..?", - "animation": "Thinking", - "next": "Random2-C-2", - "effects": [ - { - "type": "color", - "end": 10, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random2-C-2": {"text": "...kinda boring, don't you think?", "animation": "Bummed", "next": "Random2-C-3"}, - "Random2-C-3": {"text": "I mean, no offense. But, like, that's such a common favorite!", "animation": "Surprised", "next": "Random2-C-4"}, - "Random2-C-4": { - "text": "Yeah yeah, \"fiyah dwagon!\" So cool! And my, doesn't that fellow Charizard get a lot of attention, too!", - "animation": "Bummed", - "next": "Random2-C-5", - "effects": [ - { - "type": "color", - "start": 12, - "end": 24, - "color": [1, 0.25, 0.25] - }, - {"type": "shake", "start": 12, "end": 24}, - { - "type": "color", - "start": 64, - "end": 73, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random2-C-5": { - "text": "Leave some love for the rest of us! What does Snivy get? Not much..!", - "animation": "Bummed", - "effects": [ - { - "type": "color", - "start": 46, - "end": 51, - "color": [0.25098, 1, 0.25098] - } + "lines": [ + {"text": "[color=1 0.25 0.25]Charmander[/color]..?", "animation": "Thinking"}, + {"text": "...kinda boring, don't you think?", "animation": "Bummed"}, + {"text": "I mean, no offense. But, like, that's such a common favorite!", "animation": "Surprised"}, + {"text": "Yeah yeah, \"[color=1 0.25 0.25][shake]fiyah dwagon[/shake][/color]!\" So cool! And my, doesn't that fellow [color=1 0.25 0.25]Charizard[/color] get a lot of attention, too!", "animation": "Bummed"}, + {"text": "Leave some love for the rest of us! What does [color=0.251 1 0.251]Snivy[/color] get? Not much..!", "animation": "Bummed"} ] }, "Random3": { - "text": "Just a question...which of these Pokémon is your favorite?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Just a question...which of these Pokémon is your favorite?", "animation": "Thinking"} + ], "choices": [ {"text": "Chikorita", "next": "Random3-A"}, {"text": "Totodile", "next": "Random3-B"}, @@ -570,129 +186,27 @@ ] }, "Random3-A": { - "text": "Chikorita is so cute!", - "animation": "Surprised", - "next": "Random3-A-2", - "effects": [ - { - "type": "color", - "end": 9, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random3-A-2": { - "text": "I'm good friends with a Chikorita, actually!", - "animation": "Neutral", - "next": "Random3-A-3", - "effects": [ - { - "type": "color", - "start": 24, - "end": 33, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random3-A-3": { - "text": "...actually, well, formerly Chikorita. They've evolved.", - "animation": "Surprised", - "next": "Random3-A-4", - "effects": [ - { - "type": "color", - "start": 28, - "end": 37, - "color": [0.25098, 1, 0.25098] - }, - { - "type": "color", - "start": 47, - "end": 54, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random3-A-4": { - "text": "...Meganium now. And they're, kinda, um...kind of into the same thing as I am.", - "animation": "Bummed", - "next": "Random3-A-5", - "effects": [ - { - "type": "color", - "start": 3, - "end": 11, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random3-A-5": { - "text": "Have you tried being a little twig under a hundred fifty kilograms of Meganium belly?", - "animation": "Surprised", - "next": "Random3-A-6", - "effects": [ - { - "type": "color", - "start": 70, - "end": 84, - "color": [0.25098, 1, 0.25098] - }, - {"type": "screenshake", "start": 70, "end": 70} - ] - }, - "Random3-A-6": { - "text": "It gets HOT under there. Especially when they insist on using Solar Beam. Don't ask me how that works.", - "animation": "Bummed", - "effects": [ - { - "type": "color", - "start": 8, - "end": 11, - "color": [1, 0.25, 0.25] - } + "lines": [ + {"text": "[color=0.251 1 0.251]Chikorita[/color] is so cute!", "animation": "Surprised"}, + {"text": "I'm good friends with a [color=0.251 1 0.251]Chikorita[/color], actually!", "animation": "Neutral"}, + {"text": "...actually, well, formerly [color=0.251 1 0.251]Chikorita[/color]. They've [color=1 0.25 0.25]evolved[/color].", "animation": "Surprised"}, + {"text": "...[color=0.251 1 0.251]Meganium[/color] now. And they're, kinda, um...kind of into the same thing as I am.", "animation": "Bummed"}, + {"text": "Have you tried being a little twig under a hundred fifty kilograms of [color=0.251 1 0.251][screenshake]Meganium belly[/color]?", "animation": "Surprised"}, + {"text": "It gets [color=1 0.25 0.25]HOT[/color] under there. Especially when they insist on using Solar Beam. Don't ask me how that works.", "animation": "Bummed"} ] }, "Random3-B": { - "text": "Totodile, huh? S'cool.", - "animation": "Neutral", - "next": "Random3-B-2", - "effects": [ - { - "type": "color", - "end": 8, - "color": [0.25098, 1, 1] - } + "lines": [ + {"text": "[color=0.251 1 1]Totodile[/color], huh? S'cool.", "animation": "Neutral"}, + {"text": "Cute little guy with a big jaw. Kinda scary sometimes, especially when they evolve.", "animation": "Surprised"} ] }, - "Random3-B-2": {"text": "Cute little guy with a big jaw. Kinda scary sometimes, especially when they evolve.", "animation": "Surprised"}, "Random3-C": { - "text": "Cyndaquil! That fiery little rodent!", - "animation": "Surprised", - "next": "Random3-C-2", - "effects": [ - { - "type": "color", - "end": 9, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random3-C-2": { - "text": "Actually, quick question. Those rumors I've been hearing...about Typhlosion...", - "animation": "Thinking", - "next": "Random3-C-3", - "effects": [ - { - "type": "color", - "start": 65, - "end": 75, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random3-C-3": { - "text": "Are they true? ...do you even know what I'm talking about?", - "animation": "Surprised", + "lines": [ + {"text": "[color=1 0.25 0.25]Cyndaquil[/color]! That fiery little rodent!", "animation": "Surprised"}, + {"text": "Actually, quick question. Those rumors I've been hearing...about [color=1 0.25 0.25]Typhlosion[/color]...", "animation": "Thinking"}, + {"text": "Are they true? ...do you even know what I'm talking about?", "animation": "Surprised"} + ], "choices": [ {"text": "They are!", "next": "Random3-C-3-A"}, {"text": "It's nothing confirmed...", "next": "Random3-C-3-B"}, @@ -700,33 +214,25 @@ ] }, "Random3-C-3-A": { - "text": "Goodness! I don't think Typhlosion are interested in me, at least...", - "animation": "Shocked", - "effects": [ - { - "type": "color", - "start": 24, - "end": 34, - "color": [1, 0.25, 0.25] - } + "lines": [ + {"text": "Goodness! I don't think [color=1 0.25 0.25]Typhlosion[/color] are interested in me, at least...", "animation": "Shocked"} ] }, "Random3-C-3-B": { - "text": "Oh, that's good. I wouldn't want to assume anything. I'm sure Typhlosion are nice Pokémon...", - "animation": "Neutral", - "effects": [ - { - "type": "color", - "start": 62, - "end": 72, - "color": [1, 0.25, 0.25] - } + "lines": [ + {"text": "Oh, that's good. I wouldn't want to assume anything. I'm sure [color=1 0.25 0.25]Typhlosion[/color] are nice Pokémon...", "animation": "Neutral"} + ] + }, + "Random3-C-3-C": { + "lines": [ + {"text": "Oh...you don't know. Well, um...maybe it's better you didn't...", "animation": "Shocked"} ] }, - "Random3-C-3-C": {"text": "Oh...you don't know. Well, um...maybe it's better you didn't...", "animation": "Shocked"}, "Random4": { - "text": "A question for you...which of these Pokémon is your favorite?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "A question for you...which of these Pokémon is your favorite?", "animation": "Thinking"} + ], "choices": [ {"text": "Treecko", "next": "Random4-A"}, {"text": "Mudkip", "next": "Random4-B"}, @@ -734,103 +240,18 @@ ] }, "Random4-A": { - "text": "Treecko!!!!!!!!!!", - "animation": "Horny", - "next": "Random4-A-2", - "effects": [ - { - "type": "color", - "end": 7, - "color": [0.25098, 1, 0.25098] - }, - {"type": "shake", "end": 7}, - {"type": "big", "end": 17}, - {"type": "screenshake"} - ] - }, - "Random4-A-2": {"text": "...sorry, was I too excited?!", "animation": "Surprised", "next": "Random4-A-3"}, - "Random4-A-3": { - "text": "...but, seriously! I love Treecko!", - "animation": "Horny", - "next": "Random4-A-4", - "effects": [ - { - "type": "color", - "start": 26, - "end": 33, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random4-A-4": { - "text": "Um, well...SPECIFICALLY when they evolve...but, even Treecko are amazing, too...", - "animation": "Horny", - "next": "Random4-A-5", - "effects": [ - { - "type": "color", - "start": 53, - "end": 60, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random4-A-5": { - "text": "Grovyle, a-and Sceptile, too...oh my goodness...", - "animation": "Eager", - "next": "Random4-A-6", - "effects": [ - { - "type": "color", - "start": 15, - "end": 23, - "color": [0.25098, 1, 0.25098] - }, - { - "type": "color", - "end": 7, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random4-A-6": { - "text": "It's the...shape! The shape, I'm crazy about! Bulky! Grass types! Expressions! Those eyes! Their bellies!", - "animation": "Horny", - "next": "Random4-A-7", - "effects": [ - { - "type": "color", - "start": 53, - "end": 58, - "color": [0.25098, 1, 0.25098] - }, - {"type": "oscillation", "start": 53, "end": 58}, - {"type": "oscillation", "start": 46, "end": 51}, - {"type": "shake", "start": 97, "end": 104}, - {"type": "shake", "start": 11, "end": 16} - ] - }, - "Random4-A-7": { - "text": "It's like they're BUILT for getting ABSOLUTELY HUGELY OBESE!!!", - "animation": "Horny", - "next": "Random4-A-8", - "effects": [ - {"type": "big", "start": 37, "end": 63}, - {"type": "shake", "start": 37, "end": 63}, - { - "type": "color", - "start": 37, - "end": 63, - "color": [1, 0.25, 0.25] - }, - {"type": "oscillation", "start": 18, "end": 23} - ] - }, - "Random4-A-8": {"text": "...I-I'm sorry! I really got too excited!!", "animation": "Cry", "next": "Random4-A-9"}, - "Random4-A-9": {"text": "If I met one...oh my goodness, if we could...bond over this little interest...", "animation": "Eager", "next": "Random4-A-10"}, - "Random4-A-10": { - "text": "I can't be alone in this, right?! Wouldn't that sound awesome to you?!", - "animation": "Surprised", + "lines": [ + {"text": "[color=0.251 1 0.251][shake][big][screenshake]Treecko[/shake][/color]!!!!!!!!!![/big]", "animation": "Horny"}, + {"text": "...sorry, was I too excited?!", "animation": "Surprised"}, + {"text": "...but, seriously! I love [color=0.251 1 0.251]Treecko[/color]!", "animation": "Horny"}, + {"text": "Um, well...SPECIFICALLY when they evolve...but, even [color=0.251 1 0.251]Treecko[/color] are amazing, too...", "animation": "Horny"}, + {"text": "[color=0.251 1 0.251]Grovyle[/color], a-and [color=0.251 1 0.251]Sceptile[/color], too...oh my goodness...", "animation": "Eager"}, + {"text": "It's the...[shake]shape[/shake]! The shape, I'm crazy about! [wave]Bulky[/wave]! [color=0.251 1 0.251][wave]Grass[/wave][/color] types! Expressions! Those eyes! Their [shake]bellies[/shake]!", "animation": "Horny"}, + {"text": "It's like they're [wave]BUILT[/wave] for getting [big][shake][color=1 0.25 0.25]ABSOLUTELY HUGELY OBESE!!![/color][/shake][/big]", "animation": "Horny"}, + {"text": "...I-I'm sorry! I really got too excited!!", "animation": "Cry"}, + {"text": "If I met one...oh my goodness, if we could...bond over this little interest...", "animation": "Eager"}, + {"text": "I can't be alone in this, right?! Wouldn't that sound awesome to you?!", "animation": "Surprised"} + ], "choices": [ {"text": "YES!!!", "next": "Random4-A-10-A"}, {"text": "S-sure..?", "next": "Random4-A-10-B"}, @@ -838,103 +259,42 @@ ] }, "Random4-A-10-A": { - "text": "YES!!!!!!!!!! A KINDRED SPIRIT!!!!!!!!", - "animation": "Horny", - "next": "Random4-A-10-A-2", - "effects": [ - {"type": "big", "end": 38}, - {"type": "shake", "end": 38} + "lines": [ + {"text": "[big][shake]YES!!!!!!!!!! A KINDRED SPIRIT!!!!!!!![/shake][/big]", "animation": "Horny"}, + {"text": "Oh, what an utterly splendid idea...", "animation": "Eager"} + ] + }, + "Random4-A-10-B": { + "lines": [ + {"text": "...well, if you're at least a little enthused about such a thing..!", "animation": "Neutral"} ] }, - "Random4-A-10-A-2": {"text": "Oh, what an utterly splendid idea...", "animation": "Eager"}, - "Random4-A-10-B": {"text": "...well, if you're at least a little enthused about such a thing..!", "animation": "Neutral"}, "Random4-A-10-C": { - "text": "Not a fan? Well, that's okay. I'm sure you know I'm not a regular Snivy...", - "animation": "Bummed", - "effects": [ - { - "type": "color", - "start": 66, - "end": 71, - "color": [0.25098, 1, 0.25098] - } + "lines": [ + {"text": "Not a fan? Well, that's okay. I'm sure you know I'm not a regular [color=0.251 1 0.251]Snivy[/color]...", "animation": "Bummed"} ] }, "Random4-B": { - "text": "Oh, hm? So you liek Mudkipz?", - "animation": "Smug", - "next": "Random4-B-2", - "effects": [ - { - "type": "color", - "start": 20, - "end": 27, - "color": [0.25098, 1, 1] - } - ] - }, - "Random4-B-2": {"text": "Haha, just joking! I like Mudkips, too!", "animation": "Neutral", "next": "Random4-B-3"}, - "Random4-B-3": { - "text": "I ESPECIALLY like Swampert! Such a bulky creature of the marsh!", - "animation": "Surprised", - "next": "Random4-B-4", - "effects": [ - { - "type": "color", - "start": 18, - "end": 26, - "color": [0.25098, 1, 1] - }, - {"type": "screenshake", "start": 2, "end": 2} - ] - }, - "Random4-B-4": { - "text": "I think it would look good if it was bigger, but that's just me..!", - "animation": "Smug", - "effects": [ - {"type": "shake", "start": 37, "end": 43} + "lines": [ + {"text": "Oh, hm? So you liek [color=0.251 1 1]Mudkipz[/color]?", "animation": "Smug"}, + {"text": "Haha, just joking! I like Mudkips, too!", "animation": "Neutral"}, + {"text": "I [screenshake]ESPECIALLY like [color=0.251 1 1]Swampert[/color]! Such a bulky creature of the marsh!", "animation": "Surprised"}, + {"text": "I think it would look good if it was [shake]bigger[/shake], but that's just me..!", "animation": "Smug"} ] }, "Random4-C": { - "text": "Torchic, hm? Cute little feathered friends!", - "animation": "Smug", - "next": "Random4-C-2", - "effects": [ - { - "type": "color", - "end": 7, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random4-C-2": { - "text": "Blaziken especially is so cool! Such powerful kicks!", - "animation": "Surprised", - "next": "Random4-C-3", - "effects": [ - { - "type": "color", - "end": 8, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random4-C-3": {"text": "I know they pride themselves on their physiques and their physical prowess, but...", "animation": "Thinking", "next": "Random4-C-4"}, - "Random4-C-4": { - "text": "...I think they'd do a little well with some meat on their bones! Some spicy chicken thighs, heh!", - "animation": "Smug", - "effects": [ - { - "type": "color", - "start": 71, - "end": 91, - "color": [1, 0.25, 0.25] - } + "lines": [ + {"text": "[color=1 0.25 0.25]Torchic[/color], hm? Cute little feathered friends!", "animation": "Smug"}, + {"text": "[color=1 0.25 0.25]Blaziken[/color] especially is so cool! Such powerful kicks!", "animation": "Surprised"}, + {"text": "I know they pride themselves on their physiques and their physical prowess, but...", "animation": "Thinking"}, + {"text": "...I think they'd do a little well with some meat on their bones! Some [color=1 0.25 0.25]spicy chicken thighs[/color], heh!", "animation": "Smug"} ] }, "Random5": { - "text": "Another question for you...which of these Pokémon is your favorite?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Another question for you...which of these Pokémon is your favorite?", "animation": "Thinking"} + ], "choices": [ {"text": "Turtwig", "next": "Random5-A"}, {"text": "Piplup", "next": "Random5-B"}, @@ -942,115 +302,39 @@ ] }, "Random5-A": { - "text": "Turtwig, hm?", - "animation": "Thinking", - "next": "Random5-A-2", - "effects": [ - { - "type": "color", - "end": 7, - "color": [0.25098, 1, 0.25098] - } + "lines": [ + {"text": "[color=0.251 1 0.251]Turtwig[/color], hm?", "animation": "Thinking"}, + {"text": "Y'know, I've heard stories about old-timey [color=0.251 1 0.251]Torterra[/color] being REALLY BIG.", "animation": "Surprised"}, + {"text": "Like, being absolutely [shake]huge[/shake]! The size of a [shake]mountain[/shake]! Whole[shake] forests[/shake] upon them!", "animation": "Surprised"}, + {"text": "I mean...not like [wave]FAT[/wave] ones, I don't think. Although...", "animation": "Eager"}, + {"text": "...what if [wave]I[/wave] was the size of a mountain? And a bunch of Pokémon would live on me?", "animation": "Thinking"}, + {"text": "Flying-type nesting in my fat rolls! Generations growing up on my supermassive tail!", "animation": "Horny"}, + {"text": "Torrential rainstorms coating only a portion of me! [big][shake][sound=sfx/boom.ogg][screenshake]A massive, immovable, biome-sized Snivy![/shake][/big]", "animation": "Eager"}, + {"text": "Like I have a weird fantasy, about being huge and being exposed to rain, and all the droplets soaking into my fat rolls...", "animation": "Shocked"}, + {"text": "...yeah, I'm weird! So what?!?!", "animation": "Bummed"} ] }, - "Random5-A-2": { - "text": "Y'know, I've heard stories about old-timey Torterra being REALLY BIG.", - "animation": "Surprised", - "next": "Random5-A-3", - "effects": [ - { - "type": "color", - "start": 43, - "end": 51, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random5-A-3": { - "text": "Like, being absolutely huge! The size of a mountain! Whole forests upon them!", - "animation": "Surprised", - "next": "Random5-A-4", - "effects": [ - {"type": "shake", "start": 23, "end": 27}, - {"type": "shake", "start": 43, "end": 51}, - {"type": "shake", "start": 58, "end": 66} - ] - }, - "Random5-A-4": { - "text": "I mean...not like FAT ones, I don't think. Although...", - "animation": "Eager", - "next": "Random5-A-5", - "effects": [ - {"type": "oscillation", "start": 18, "end": 21} - ] - }, - "Random5-A-5": { - "text": "...what if I was the size of a mountain? And a bunch of Pokémon would live on me?", - "animation": "Thinking", - "next": "Random5-A-6", - "effects": [ - {"type": "oscillation", "start": 11, "end": 12} - ] - }, - "Random5-A-6": {"text": "Flying-type nesting in my fat rolls! Generations growing up on my supermassive tail!", "animation": "Horny", "next": "Random5-A-7"}, - "Random5-A-7": { - "text": "Torrential rainstorms coating only a portion of me! A massive, immovable, biome-sized Snivy!", - "animation": "Eager", - "next": "Random5-A-8", - "effects": [ - {"type": "big", "start": 53, "end": 93}, - {"type": "shake", "start": 53, "end": 93}, - {"type": "sound", "start": 53, "end": 53, "sound": "sfx/boom.ogg"}, - {"type": "screenshake", "start": 53, "end": 53} - ] - }, - "Random5-A-8": {"text": "Like I have a weird fantasy, about being huge and being exposed to rain, and all the droplets soaking into my fat rolls...", "animation": "Shocked", "next": "Random5-A-9"}, - "Random5-A-9": {"text": "...yeah, I'm weird! So what?!?!", "animation": "Bummed"}, "Random5-B": { - "text": "Piplup! Those cute little blue flightless things!", - "animation": "Surprised", - "next": "Random5-B-2", - "effects": [ - { - "type": "color", - "end": 6, - "color": [0.25098, 1, 1] - } - ] - }, - "Random5-B-2": {"text": "I have a funny story...so, there was an Empoleon running wild where I came from...apparently released from a trainer awhile ago.", "animation": "Thinking", "next": "Random5-B-3"}, - "Random5-B-3": {"text": "It was super powerful!! Such a strong, bulky Water and Steel type!! One of the most powerful Pokémon ever!!", "animation": "Surprised", "next": "Random5-B-4"}, - "Random5-B-4": {"text": "But, what I noticed was...the only moves it knew were Cut, Rock Smash, Surf, and Strength..?", "animation": "Bummed", "next": "Random5-B-5"}, - "Random5-B-5": { - "text": "...isn't that so weird?! One can only imagine why that is...", - "animation": "Surprised", - "effects": [ - {"type": "screenshake"} + "lines": [ + {"text": "[color=0.251 1 1]Piplup[/color]! Those cute little blue flightless things!", "animation": "Surprised"}, + {"text": "I have a funny story...so, there was an Empoleon running wild where I came from...apparently released from a trainer awhile ago.", "animation": "Thinking"}, + {"text": "It was super powerful!! Such a strong, bulky Water and Steel type!! One of the most powerful Pokémon ever!!", "animation": "Surprised"}, + {"text": "But, what I noticed was...the only moves it knew were Cut, Rock Smash, Surf, and Strength..?", "animation": "Bummed"}, + {"text": "[screenshake]...isn't that so weird?! One can only imagine why that is...", "animation": "Surprised"} ] }, "Random5-C": { - "text": "Chimchar, hm? Cute lil' monkey fella.", - "animation": "Thinking", - "next": "Random5-C-2", - "effects": [ - { - "type": "color", - "end": 8, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random5-C-2": {"text": "Say, there sure are a lot of creatures like it. I mean...ones that get a Fire and Fighting type.", "animation": "Surprised", "next": "Random5-C-3"}, - "Random5-C-3": { - "text": "I-I'm not being prejudiced when I say that! Just an observation!", - "animation": "Angry", - "effects": [ - {"type": "screenshake"} + "lines": [ + {"text": "[color=1 0.25 0.25]Chimchar[/color], hm? Cute lil' monkey fella.", "animation": "Thinking"}, + {"text": "Say, there sure are a lot of creatures like it. I mean...ones that get a Fire and Fighting type.", "animation": "Surprised"}, + {"text": "[screenshake]I-I'm not being prejudiced when I say that! Just an observation!", "animation": "Angry"} ] }, "Random6": { - "text": "Yet another question for you...which of these Pokémon is your favorite?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Yet another question for you...which of these Pokémon is your favorite?", "animation": "Thinking"} + ], "choices": [ {"text": "Chespin", "next": "Random6-A"}, {"text": "Froakie", "next": "Random6-B"}, @@ -1058,176 +342,41 @@ ] }, "Random6-A": { - "text": "Chespin? Really? CHESPIN?!?!?", - "animation": "Smug", - "next": "Random6-A-2", - "effects": [ - { - "type": "color", - "end": 7, - "color": [0.25098, 1, 0.25098] - }, - { - "type": "color", - "start": 17, - "end": 24, - "color": [0.25098, 1, 0.25098] - }, - {"type": "screenshake", "start": 9, "end": 9}, - {"type": "screenshake", "start": 18, "end": 18} - ] - }, - "Random6-A-2": {"text": "...okay, maybe that was a little rude. Sorry.", "animation": "Bummed", "next": "Random6-A-3"}, - "Random6-A-3": { - "text": "(Tch...Chespin...*snort*)", - "animation": "Smug", - "effects": [ - { - "type": "color", - "end": 25, - "color": [0.25098, 0.25098, 0.25098] - }, - {"type": "silent", "end": 25} + "lines": [ + {"text": "[color=0.251 1 0.251]Chespin[/color]? [screenshake]Really? [color=0.251 1 0.251]C[screenshake]HESPIN[/color]?!?!?", "animation": "Smug"}, + {"text": "...okay, maybe that was a little rude. Sorry.", "animation": "Bummed"}, + {"text": "[color=0.251 0.251 0.251][silent](Tch...Chespin...*snort*)[/silent][/color]", "animation": "Smug"} ] }, "Random6-B": { - "text": "Froakie, eh?", - "animation": "Thinking", - "next": "Random6-B-2", - "effects": [ - { - "type": "color", - "end": 7, - "color": [0.25098, 1, 1] - } + "lines": [ + {"text": "[color=0.251 1 1]Froakie[/color], eh?", "animation": "Thinking"}, + {"text": "Y'know, that [color=0.251 1 1]Greninja[/color]...besides the fact that its \"scarf\" is a tongue...", "animation": "Thinking"}, + {"text": "...they're cute! Well, maybe I shouldn't say \"cute\", they probably wouldn't like that...", "animation": "Smug"}, + {"text": "I knew a particular [color=0.251 1 1]Greninja[/color]. An older one. They had their own dojo!", "animation": "Surprised"}, + {"text": "But, they didn't teach, like, ninjutsu. This one taught...[wave]sumo[/wave]!", "animation": "Thinking"}, + {"text": "They said it like \"[wave]smo[/wave]\". Really serious guy! And...a little chubby!", "animation": "Surprised"}, + {"text": "I of course didn't participate...[screenshake]I was too small to be in any weight class!", "animation": "Bummed"}, + {"text": "I did watch, though...seeing those big, bulky Pokémon, fattened up, [wave]pressing their guts together[/wave]...", "animation": "Horny"}, + {"text": "And, it's like, the whole sport revolves around eating a ton of food and bulking up and being physical!!", "animation": "Eager"}, + {"text": "And the notion of being fatter, being more powerful and more bold...i-it's...[screenshake][shake]H-HOT[/shake]!", "animation": "Horny"}, + {"text": "Oh goodness, it was such a sight. I'd love being like a sumo in size, but I don't think I could ever do combat...", "animation": "Neutral"} ] }, - "Random6-B-2": { - "text": "Y'know, that Greninja...besides the fact that its \"scarf\" is a tongue...", - "animation": "Thinking", - "next": "Random6-B-3", - "effects": [ - { - "type": "color", - "start": 13, - "end": 21, - "color": [0.25098, 1, 1] - } - ] - }, - "Random6-B-3": {"text": "...they're cute! Well, maybe I shouldn't say \"cute\", they probably wouldn't like that...", "animation": "Smug", "next": "Random6-B-4"}, - "Random6-B-4": { - "text": "I knew a particular Greninja. An older one. They had their own dojo!", - "animation": "Surprised", - "next": "Random6-B-5", - "effects": [ - { - "type": "color", - "start": 20, - "end": 28, - "color": [0.25098, 1, 1] - } - ] - }, - "Random6-B-5": { - "text": "But, they didn't teach, like, ninjutsu. This one taught...sumo!", - "animation": "Thinking", - "next": "Random6-B-6", - "effects": [ - {"type": "oscillation", "start": 58, "end": 62} - ] - }, - "Random6-B-6": { - "text": "They said it like \"smo\". Really serious guy! And...a little chubby!", - "animation": "Surprised", - "next": "Random6-B-7", - "effects": [ - {"type": "oscillation", "start": 19, "end": 22} - ] - }, - "Random6-B-7": { - "text": "I of course didn't participate...I was too small to be in any weight class!", - "animation": "Bummed", - "next": "Random6-B-8", - "effects": [ - {"type": "screenshake", "start": 33, "end": 33} - ] - }, - "Random6-B-8": { - "text": "I did watch, though...seeing those big, bulky Pokémon, fattened up, pressing their guts together...", - "animation": "Horny", - "next": "Random6-B-9", - "effects": [ - {"type": "oscillation", "start": 68, "end": 96} - ] - }, - "Random6-B-9": {"text": "And, it's like, the whole sport revolves around eating a ton of food and bulking up and being physical!!", "animation": "Eager", "next": "Random6-B-10"}, - "Random6-B-10": { - "text": "And the notion of being fatter, being more powerful and more bold...i-it's...H-HOT!", - "animation": "Horny", - "next": "Random6-B-11", - "effects": [ - {"type": "screenshake", "start": 77, "end": 77}, - {"type": "shake", "start": 77, "end": 82} - ] - }, - "Random6-B-11": {"text": "Oh goodness, it was such a sight. I'd love being like a sumo in size, but I don't think I could ever do combat...", "animation": "Neutral"}, "Random6-C": { - "text": "Fennekin? That foxy thing!", - "animation": "Surprised", - "next": "Random6-C-2", - "effects": [ - { - "type": "color", - "end": 8, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random6-C-2": { - "text": "Some humans really like its first evolution, Braixen...", - "animation": "Thinking", - "next": "Random6-C-3", - "effects": [ - { - "type": "color", - "start": 45, - "end": 52, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random6-C-3": {"text": "...which is unusual, since it's typical the base form or the last form which is most popular.", "animation": "Surprised", "next": "Random6-C-4"}, - "Random6-C-4": { - "text": "I mean, that's fine. I think Delphox and Braixen are both lovely.", - "animation": "Eager", - "next": "Random6-C-5", - "effects": [ - { - "type": "color", - "start": 29, - "end": 36, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 41, - "end": 48, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random6-C-5": { - "text": "I think they would all look beautiful if they were bigger, but it's cliche to say at this point...", - "animation": "Horny", - "effects": [ - {"type": "screenshake", "start": 51, "end": 51}, - {"type": "shake", "start": 51, "end": 57} + "lines": [ + {"text": "[color=1 0.25 0.25]Fennekin[/color]? That foxy thing!", "animation": "Surprised"}, + {"text": "Some humans really like its first evolution, [color=1 0.25 0.25]Braixen[/color]...", "animation": "Thinking"}, + {"text": "...which is unusual, since it's typical the base form or the last form which is most popular.", "animation": "Surprised"}, + {"text": "I mean, that's fine. I think [color=1 0.25 0.25]Delphox[/color] and [color=1 0.25 0.25]Braixen[/color] are both lovely.", "animation": "Eager"}, + {"text": "I think they would all look beautiful if they were [screenshake][shake]bigger[/shake], but it's cliche to say at this point...", "animation": "Horny"} ] }, "Random7": { - "text": "Another inquiry for you...which of these Pokémon is your favorite?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Another inquiry for you...which of these Pokémon is your favorite?", "animation": "Thinking"} + ], "choices": [ {"text": "Rowlet", "next": "Random7-A"}, {"text": "Litten", "next": "Random7-B"}, @@ -1235,96 +384,36 @@ ] }, "Random7-A": { - "text": "Rowlet! Such a cute little birdie...", - "animation": "Thinking", - "next": "Random7-A-2", - "effects": [ - { - "type": "color", - "end": 6, - "color": [0.25098, 1, 0.25098] - } + "lines": [ + {"text": "[color=0.251 1 0.251]Rowlet[/color]! Such a cute little birdie...", "animation": "Thinking"}, + {"text": "[color=0.251 1 0.251]Decidueye[/color], I do quite like. Why?", "animation": "Neutral"}, + {"text": "That one is cool because it's an owl, and owls are cool.", "animation": "Smug"} ] }, - "Random7-A-2": { - "text": "Decidueye, I do quite like. Why?", - "animation": "Neutral", - "next": "Random7-A-3", - "effects": [ - { - "type": "color", - "end": 9, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random7-A-3": {"text": "That one is cool because it's an owl, and owls are cool.", "animation": "Smug"}, "Random7-B": { - "text": "Litten? That kitty?", - "animation": "Thinking", - "next": "Random7-B-2", - "effects": [ - { - "type": "color", - "end": 6, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random7-B-2": {"text": "I have to be honest with you...I think when it evolves, it looks...tacky!", "animation": "Bummed", "next": "Random7-B-3"}, - "Random7-B-3": { - "text": "I certainly wouldn't say that around an Incineroar, though...", - "animation": "Surprised", - "next": "Random7-B-4", - "effects": [ - { - "type": "color", - "start": 40, - "end": 50, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random7-B-4": { - "text": "...lest I end up on the receiving end of a piledriver.", - "animation": "Cry", - "effects": [ - {"type": "screenshake"} + "lines": [ + {"text": "[color=1 0.25 0.25]Litten[/color]? That kitty?", "animation": "Thinking"}, + {"text": "I have to be honest with you...I think when it evolves, it looks...tacky!", "animation": "Bummed"}, + {"text": "I certainly wouldn't say that around an [color=1 0.25 0.25]Incineroar[/color], though...", "animation": "Surprised"}, + {"text": "[screenshake]...lest I end up on the receiving end of a piledriver.", "animation": "Cry"} ] }, "Random7-C": { - "text": "Popplio!", - "animation": "Eager", - "next": "Random7-C-2", - "effects": [ - { - "type": "color", - "end": 7, - "color": [0.25098, 1, 1] - } + "lines": [ + {"text": "[color=0.251 1 1]Popplio[/color]!", "animation": "Eager"}, + {"text": "I was on the shore one time and I heard the singing of a [color=0.251 1 1]Primarina[/color]...", "animation": "Thinking"}, + {"text": "...now, I know they probably didn't mean harm. But, like...", "animation": "Thinking"}, + {"text": "...I've heard stories of humans being ensnared by songstresses on the open sea!", "animation": "Shocked"}, + {"text": "I wouldn't fall for it anyway! I've got weird tastes!", "animation": "Smug"}, + {"text": "Unless the songstress was also, like, as heavy and round as a Wailord...", "animation": "Eager"}, + {"text": "...then, maybe I'd fall for it!", "animation": "Smug"} ] }, - "Random7-C-2": { - "text": "I was on the shore one time and I heard the singing of a Primarina...", - "animation": "Thinking", - "next": "Random7-C-3", - "effects": [ - { - "type": "color", - "start": 57, - "end": 66, - "color": [0.25098, 1, 1] - } - ] - }, - "Random7-C-3": {"text": "...now, I know they probably didn't mean harm. But, like...", "animation": "Thinking", "next": "Random7-C-4"}, - "Random7-C-4": {"text": "...I've heard stories of humans being ensnared by songstresses on the open sea!", "animation": "Shocked", "next": "Random7-C-5"}, - "Random7-C-5": {"text": "I wouldn't fall for it anyway! I've got weird tastes!", "animation": "Smug", "next": "Random7-C-6"}, - "Random7-C-6": {"text": "Unless the songstress was also, like, as heavy and round as a Wailord...", "animation": "Eager", "next": "Random7-C-7"}, - "Random7-C-7": {"text": "...then, maybe I'd fall for it!", "animation": "Smug"}, "Random8": { - "text": "Yet another inquiry for you...which of these Pokémon is your favorite?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Yet another inquiry for you...which of these Pokémon is your favorite?", "animation": "Thinking"} + ], "choices": [ {"text": "Grookey", "next": "Random8-A"}, {"text": "Sobble", "next": "Random8-B"}, @@ -1332,91 +421,34 @@ ] }, "Random8-A": { - "text": "Grookey! A lil' monkey fella!", - "animation": "Shocked", - "next": "Random8-A-2", - "effects": [ - { - "type": "color", - "end": 7, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random8-A-2": { - "text": "The beat of a Rillaboom's jungle drum can be enticing...", - "animation": "Thinking", - "next": "Random8-A-3", - "effects": [ - { - "type": "color", - "start": 14, - "end": 23, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random8-A-3": { - "text": "...but, nope! I can't do dancing! Too much movement! Too many precious calories being burned!", - "animation": "Peeved", - "effects": [ - {"type": "screenshake", "start": 34, "end": 34}, - {"type": "screenshake", "start": 53, "end": 53} + "lines": [ + {"text": "[color=0.251 1 0.251]Grookey[/color]! A lil' monkey fella!", "animation": "Shocked"}, + {"text": "The beat of a [color=0.251 1 0.251]Rillaboom[/color]'s jungle drum can be enticing...", "animation": "Thinking"}, + {"text": "...but, nope! I can't do dancing! [screenshake]Too much movement! [screenshake]Too many precious calories being burned!", "animation": "Peeved"} ] }, "Random8-B": { - "text": "Sobble! That little blue croaker...", - "animation": "Thinking", - "next": "Random8-B-2", - "effects": [ - { - "type": "color", - "end": 6, - "color": [0.25098, 1, 1] - } + "lines": [ + {"text": "[color=0.251 1 1]Sobble[/color]! That little blue croaker...", "animation": "Thinking"}, + {"text": "Have you seen how thin an [color=0.251 1 1]Inteleon[/color] is?", "animation": "Shocked"}, + {"text": "Now, being lithe and stealthy is their game, I'm sure...", "animation": "Thinking"}, + {"text": "...but, to be honest, that makes it all the more hotter when they start getting a potbelly...", "animation": "Horny"}, + {"text": "I like fellow reptilians that live large! Can you blame me?", "animation": "Peeved"} ] }, - "Random8-B-2": { - "text": "Have you seen how thin an Inteleon is?", - "animation": "Shocked", - "next": "Random8-B-3", - "effects": [ - { - "type": "color", - "start": 26, - "end": 34, - "color": [0.25098, 1, 1] - } - ] - }, - "Random8-B-3": {"text": "Now, being lithe and stealthy is their game, I'm sure...", "animation": "Thinking", "next": "Random8-B-4"}, - "Random8-B-4": {"text": "...but, to be honest, that makes it all the more hotter when they start getting a potbelly...", "animation": "Horny", "next": "Random8-B-5"}, - "Random8-B-5": {"text": "I like fellow reptilians that live large! Can you blame me?", "animation": "Peeved"}, "Random8-C": { - "text": "Scorbunny, that overactive hare!", - "animation": "Angry", - "next": "Random8-C-2", - "effects": [ - { - "type": "color", - "end": 9, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random8-C-2": {"text": "I couldn't do football! Can you imagine these pitiful legs running across fields to kick a stupid ball?!", "animation": "Peeved", "next": "Random8-C-3"}, - "Random8-C-3": {"text": "I'd break a leg as soon as I ran a few meters!", "animation": "Peeved", "next": "Random8-C-4"}, - "Random8-C-4": { - "text": "Can you please PLEASE make it so I never need to move again?!", - "animation": "Cry", - "effects": [ - {"type": "shake", "start": 15, "end": 21}, - {"type": "screenshake", "start": 15, "end": 15} + "lines": [ + {"text": "[color=1 0.25 0.25]Scorbunny[/color], that overactive hare!", "animation": "Angry"}, + {"text": "I couldn't do football! Can you imagine these pitiful legs running across fields to kick a stupid ball?!", "animation": "Peeved"}, + {"text": "I'd break a leg as soon as I ran a few meters!", "animation": "Peeved"}, + {"text": "Can you please [shake][screenshake]PLEASE[/shake] make it so I never need to move again?!", "animation": "Cry"} ] }, "Random9": { - "text": "Yet one more inquiry for you...which of these Pokémon is your favorite?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Yet one more inquiry for you...which of these Pokémon is your favorite?", "animation": "Thinking"} + ], "choices": [ {"text": "Sprigatito", "next": "Random9-A"}, {"text": "Quaxly", "next": "Random9-B"}, @@ -1424,110 +456,32 @@ ] }, "Random9-A": { - "text": "Sprigatito? Tch, the weed cat?", - "animation": "Smug", - "next": "Random9-A-2", - "effects": [ - { - "type": "color", - "end": 10, - "color": [0.25098, 1, 0.25098] - } + "lines": [ + {"text": "[color=0.251 1 0.251]Sprigatito[/color]? Tch, the weed cat?", "animation": "Smug"}, + {"text": "I don't know what Arceus or whoever is making us was thinking!", "animation": "Surprised"}, + {"text": "[color=0.251 1 0.251]Meowscarada[/color]...that barely looks like a [color=0.251 1 0.251]Grass[/color] type! It's like a Glameow and a human had an egg together! In the grass!", "animation": "Peeved"}, + {"text": "Maybe I shouldn't discriminate...I couldn't do any magic tricks. I fall for them every time...", "animation": "Cry"} ] }, - "Random9-A-2": {"text": "I don't know what Arceus or whoever is making us was thinking!", "animation": "Surprised", "next": "Random9-A-3"}, - "Random9-A-3": { - "text": "Meowscarada...that barely looks like a Grass type! It's like a Glameow and a human had an egg together! In the grass!", - "animation": "Peeved", - "next": "Random9-A-4", - "effects": [ - { - "type": "color", - "end": 11, - "color": [0.25098, 1, 0.25098] - }, - { - "type": "color", - "start": 39, - "end": 44, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random9-A-4": {"text": "Maybe I shouldn't discriminate...I couldn't do any magic tricks. I fall for them every time...", "animation": "Cry"}, "Random9-B": { - "text": "Quaxly? Quaaaaaaaaaxly?!", - "animation": "Surprised", - "next": "Random9-B-2", - "effects": [ - { - "type": "color", - "end": 6, - "color": [0.25098, 1, 1] - }, - { - "type": "color", - "start": 8, - "end": 22, - "color": [0.25098, 1, 1] - } + "lines": [ + {"text": "[color=0.251 1 1]Quaxly[/color]? [color=0.251 1 1]Quaaaaaaaaaxly[/color]?!", "animation": "Surprised"}, + {"text": "This might be kind of weird, but, um...my heart sort of thumps when I see a [color=0.251 1 1]Quaquaval[/color]...", "animation": "Surprised"}, + {"text": "I couldn't dance, but seeing their groove, the way they shake their hips, the display they put on...", "animation": "Thinking"}, + {"text": "...look, how do I break it to one that it'd be super hot if they gained some weight?!", "animation": "Horny"} ] }, - "Random9-B-2": { - "text": "This might be kind of weird, but, um...my heart sort of thumps when I see a Quaquaval...", - "animation": "Surprised", - "next": "Random9-B-3", - "effects": [ - { - "type": "color", - "start": 76, - "end": 85, - "color": [0.25098, 1, 1] - } - ] - }, - "Random9-B-3": {"text": "I couldn't dance, but seeing their groove, the way they shake their hips, the display they put on...", "animation": "Thinking", "next": "Random9-B-4"}, - "Random9-B-4": {"text": "...look, how do I break it to one that it'd be super hot if they gained some weight?!", "animation": "Horny"}, "Random9-C": { - "text": "Fuecoco? What a burning beast! Skeledirge, anyways...", - "animation": "Thinking", - "next": "Random9-C-2", - "effects": [ - { - "type": "color", - "end": 7, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 31, - "end": 41, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random9-C-2": { - "text": "Maybe I shouldn't be mean to Totodile, but Fuecoco's line is like them but way scarier...", - "animation": "Surprised", - "effects": [ - { - "type": "color", - "start": 44, - "end": 51, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 29, - "end": 37, - "color": [0.25098, 1, 1] - }, - {"type": "shake", "start": 75, "end": 86} + "lines": [ + {"text": "[color=1 0.25 0.25]Fuecoco[/color]? What a burning beast! [color=1 0.25 0.25]Skeledirge[/color], anyways...", "animation": "Thinking"}, + {"text": "Maybe I shouldn't be mean to [color=0.251 1 1]Totodile[/color], but F[color=1 0.25 0.25]uecoco'[/color]s line is like them but [shake]way scarier[/shake]...", "animation": "Surprised"} ] }, "Random10": { - "text": "So this has been weighing on my mind...should I evolve?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "So this has been weighing on my mind...should I evolve?", "animation": "Thinking"} + ], "choices": [ {"text": "Yeah!", "next": "Random10-A"}, {"text": "Take your time.", "next": "Random10-B"}, @@ -1535,121 +489,41 @@ ] }, "Random10-A": { - "text": "Look, I'm GOING to, eventually!!", - "animation": "Peeved", - "next": "Random10-A-2", - "effects": [ - {"type": "screenshake", "start": 10, "end": 10}, - {"type": "shake", "start": 10, "end": 15}, - {"type": "sound", "start": 10, "end": 10, "sound": "sfx/boom.ogg"} - ] + "lines": [ + {"text": "Look, I'm [screenshake][shake][sound=sfx/boom.ogg]GOING[/shake] to, eventually!!", "animation": "Peeved"}, + {"text": "...I mean, [wave]MAYBE[/wave]. But like, all of my peers are like, evolved now, and I'm still a [color=0.251 1 0.251]Snivy[/color]...", "animation": "Thinking"} + ], + "next": "Random10-2" }, - "Random10-A-2": { - "text": "...I mean, MAYBE. But like, all of my peers are like, evolved now, and I'm still a Snivy...", - "animation": "Thinking", - "next": "Random10-2", - "effects": [ - {"type": "oscillation", "start": 11, "end": 16}, - { - "type": "color", - "start": 83, - "end": 88, - "color": [0.25098, 1, 0.25098] - } - ] + "Random10-B": { + "lines": [ + {"text": "How respectful of you! T-there's a time and place for every Pokémon to evolve!", "animation": "Neutral"}, + {"text": "It's just, um...I don't quite know if that time will ever come...", "animation": "Cry"} + ], + "next": "Random10-2" }, - "Random10-B": {"text": "How respectful of you! T-there's a time and place for every Pokémon to evolve!", "animation": "Neutral", "next": "Random10-B-2"}, - "Random10-B-2": {"text": "It's just, um...I don't quite know if that time will ever come...", "animation": "Cry", "next": "Random10-2"}, "Random10-C": { - "text": "Yeah, you get it! I'm a Snivy! That's ME!", - "animation": "Smug", - "next": "Random10-C-2", - "effects": [ - {"type": "big", "start": 32, "end": 42}, - { - "type": "color", - "start": 24, - "end": 29, - "color": [0.25098, 1, 0.25098] - }, - {"type": "shake", "start": 32, "end": 42}, - {"type": "sound", "start": 32, "end": 32, "sound": "sfx/boom.ogg"}, - {"type": "screenshake", "start": 32, "end": 32} - ] - }, - "Random10-C-2": { - "text": "Who else would I be, anyways? Being a Snivy is all I've known!", - "animation": "Smug", - "next": "Random10-2", - "effects": [ - { - "type": "color", - "start": 38, - "end": 43, - "color": [0.25098, 1, 0.25098] - } - ] + "lines": [ + {"text": "Yeah, you get it! I'm a [color=0.251 1 0.251]Snivy[/color]! [big][shake][sound=sfx/boom.ogg][screenshake]That's ME![/shake][/big]", "animation": "Smug"}, + {"text": "Who else would I be, anyways? Being a [color=0.251 1 0.251]Snivy[/color] is all I've known!", "animation": "Smug"} + ], + "next": "Random10-2" }, "Random10-2": { - "text": "I should tell them I'm evolving! Just in a different way...", - "animation": "Angry", - "next": "Random10-3", - "effects": [ - {"type": "oscillation", "start": 43, "end": 52} - ] - }, - "Random10-3": { - "text": "...a BIG way, heh.", - "animation": "Horny", - "next": "Random10-4", - "effects": [ - {"type": "oscillation", "start": 5, "end": 8} - ] - }, - "Random10-4": { - "text": "...but, being a Servine, or a Serperior...there is a charm to it.", - "animation": "Thinking", - "next": "Random10-5", - "effects": [ - { - "type": "color", - "start": 16, - "end": 23, - "color": [0.25098, 1, 0.25098] - }, - { - "type": "color", - "start": 30, - "end": 39, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random10-5": { - "text": "I d-don't want to lose my legs, though! As beautiful as being a Serperior sounds!", - "animation": "Cry", - "next": "Random10-6", - "effects": [ - { - "type": "color", - "start": 64, - "end": 73, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random10-6": {"text": "...then again, maybe there is an appeal...", "animation": "Thinking", "next": "Random10-7"}, - "Random10-7": { - "text": "...in being a big, FAT noodle...", - "animation": "Horny", - "effects": [ - {"type": "screenshake", "start": 19, "end": 19}, - {"type": "shake", "start": 19, "end": 22} + "lines": [ + {"text": "I should tell them I'm evolving! Just in a [wave]different[/wave] way...", "animation": "Angry"}, + {"text": "...a [wave]BIG[/wave] way, heh.", "animation": "Horny"}, + {"text": "...but, being a [color=0.251 1 0.251]Servine[/color], or a [color=0.251 1 0.251]Serperior[/color]...there is a charm to it.", "animation": "Thinking"}, + {"text": "I d-don't want to lose my legs, though! As beautiful as being a [color=0.251 1 0.251]Serperior[/color] sounds!", "animation": "Cry"}, + {"text": "...then again, maybe there is an appeal...", "animation": "Thinking"}, + {"text": "...in being a big, [screenshake][shake]FAT[/shake] noodle...", "animation": "Horny"} ] }, "Random11": { - "text": "Kind of an offbeat question...have you ever gained weight? Or tried to?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Kind of an offbeat question...have you ever gained weight? Or tried to?", "animation": "Thinking"} + ], "choices": [ {"text": "I'm gaining!", "next": "Random11-A"}, {"text": "Not intentionally...", "next": "Random11-B"}, @@ -1659,18 +533,12 @@ ] }, "Random11-A": { - "text": "Well, a like-minded individual, then!", - "animation": "Smug", - "next": "Random11-A-2", - "effects": [ - {"type": "oscillation", "start": 8, "end": 30} - ] - }, - "Random11-A-2": {"text": "It takes a LOT of work to gain weight...especially as a human, I'd assume.", "animation": "Thinking", "next": "Random11-A-3"}, - "Random11-A-3": {"text": "It's easy to shovel a lot of slop into me! For a human? A lot more effort, I'm guessing!", "animation": "Neutral", "next": "Random11-A-4"}, - "Random11-A-4": { - "text": "How's that been progressing, actually?", - "animation": "Surprised", + "lines": [ + {"text": "Well, a [wave]like-minded individual[/wave], then!", "animation": "Smug"}, + {"text": "It takes a LOT of work to gain weight...especially as a human, I'd assume.", "animation": "Thinking"}, + {"text": "It's easy to shovel a lot of slop into me! For a human? A lot more effort, I'm guessing!", "animation": "Neutral"}, + {"text": "How's that been progressing, actually?", "animation": "Surprised"} + ], "choices": [ {"text": "I'm huge!", "next": "Random11-A-4-A"}, {"text": "I'm plateauing...", "next": "Random11-A-4-B"}, @@ -1678,260 +546,187 @@ {"text": "It's hard!", "next": "Random11-A-4-D"} ] }, - "Random11-A-4-A": {"text": "Lovely! That's great to hear!", "animation": "Smug", "next": "Random11-A-4-2"}, - "Random11-A-4-B": {"text": "Well, a plateau can certainly be overcome!", "animation": "Smug", "next": "Random11-A-4-2"}, - "Random11-A-4-C": {"text": "Slowing it down? That's respectable.", "animation": "Neutral", "next": "Random11-A-4-2"}, + "Random11-A-4-A": { + "lines": [ + {"text": "Lovely! That's great to hear!", "animation": "Smug"} + ], + "next": "Random11-A-4-2" + }, + "Random11-A-4-B": { + "lines": [ + {"text": "Well, a plateau can certainly be overcome!", "animation": "Smug"} + ], + "next": "Random11-A-4-2" + }, + "Random11-A-4-C": { + "lines": [ + {"text": "Slowing it down? That's respectable.", "animation": "Neutral"} + ], + "next": "Random11-A-4-2" + }, "Random11-A-4-D": { - "text": "I can totally get it! You'd think it'd be EASY to get fat!", - "animation": "Surprised", - "next": "Random11-A-4-2", - "effects": [ - {"type": "shake", "start": 42, "end": 46}, - {"type": "screenshake", "start": 42, "end": 42}, - {"type": "sound", "start": 42, "end": 42, "sound": "sfx/boom.ogg"} - ] + "lines": [ + {"text": "I can totally get it! You'd think it'd be [shake][screenshake][sound=sfx/boom.ogg]EASY[/shake] to get fat!", "animation": "Surprised"} + ], + "next": "Random11-A-4-2" }, - "Random11-A-4-2": {"text": "Although...things might be different for a human than a Pokémon...", "animation": "Thinking", "next": "Random11-A-4-3"}, - "Random11-A-4-3": {"text": "I can gain weight easily, without any consequence, but well...if things aren't going all OK, you can always slow down.", "animation": "Thinking", "next": "Random11-A-4-4"}, - "Random11-A-4-4": {"text": "I know this might sound hypocritical, coming from me, but there can be more to life than fulfilling your appetites!", "animation": "Neutral", "next": "Random11-A-4-5"}, - "Random11-A-4-5": {"text": "Some humans like the hedonistic life. I can't say for sure what's right or wrong, or what's healthy...but...listen to your consciousness!", "animation": "Thinking", "next": "Random11-A-4-6"}, - "Random11-A-4-6": { - "text": "If your heart truly, day after day, pines for you to get HUGE? Why, I suppose I'm not stopping you..!", - "animation": "Horny", - "next": "Random11-A-4-7", - "effects": [ - {"type": "oscillation", "start": 57, "end": 61} - ] - }, - "Random11-A-4-7": { - "text": "...just be careful.", - "animation": "Thinking", - "next": "Random11-A-4-8", - "effects": [ - {"type": "screenshake"} - ] - }, - "Random11-A-4-8": { - "text": "...but, if you are going down this path, entertain me a little. How big is your butt?", - "animation": "Horny", + "Random11-A-4-2": { + "lines": [ + {"text": "Although...things might be different for a human than a Pokémon...", "animation": "Thinking"}, + {"text": "I can gain weight easily, without any consequence, but well...if things aren't going all OK, you can always slow down.", "animation": "Thinking"}, + {"text": "I know this might sound hypocritical, coming from me, but there can be more to life than fulfilling your appetites!", "animation": "Neutral"}, + {"text": "Some humans like the hedonistic life. I can't say for sure what's right or wrong, or what's healthy...but...listen to your consciousness!", "animation": "Thinking"}, + {"text": "If your heart truly, day after day, pines for you to get [wave]HUGE[/wave]? Why, I suppose I'm not stopping you..!", "animation": "Horny"}, + {"text": "[screenshake]...just be careful.", "animation": "Thinking"}, + {"text": "...but, if you are going down this path, entertain me a little. [big][screenshake][shake][sound=sfx/boom.ogg]How big is your butt?[/shake][/big]", "animation": "Horny"} + ], "choices": [ {"text": "It's HUGE.", "next": "Random11-A-4-8-A"}, {"text": "It's big.", "next": "Random11-A-4-8-B"}, {"text": "Not big enough!", "next": "Random11-A-4-8-C"} - ], - "effects": [ - {"type": "big", "start": 65, "end": 86}, - {"type": "screenshake", "start": 65, "end": 65}, - {"type": "shake", "start": 65, "end": 86}, - {"type": "sound", "start": 65, "end": 65, "sound": "sfx/boom.ogg"} ] }, "Random11-A-4-8-A": { - "text": "...good. GOOOOOOOOOOD.", - "animation": "Horny", - "effects": [ - {"type": "big", "start": 10, "end": 23}, - {"type": "shake", "start": 10, "end": 23}, - {"type": "screenshake", "start": 10, "end": 10} + "lines": [ + {"text": "...good. [big][shake][screenshake]GOOOOOOOOOOD.[/shake][/big]", "animation": "Horny"} ] }, - "Random11-A-4-8-B": {"text": "...hm! Good to know, good to know.", "animation": "Neutral"}, - "Random11-A-4-8-C": {"text": "All in time, all in time! Keep the diet up, and you'll be getting stuck in between places in no time.", "animation": "Smug"}, - "Random11-B": {"text": "Oh, a little accidental weight gain, hm?", "animation": "Neutral", "next": "Random11-B-2"}, - "Random11-B-2": {"text": "The weight can certainly creep up on you. A snack here, a treat there...", "animation": "Thinking", "next": "Random11-B-3"}, - "Random11-B-3": {"text": "...next thing you know, your human clothing will feel all tight, and might rip!!", "animation": "Surprised", "next": "Random11-B-4"}, - "Random11-B-4": { - "text": "Haha! Just teasing.", - "animation": "Smug", - "next": "Random11-B-5", - "effects": [ - {"type": "oscillation", "start": 6, "end": 18} + "Random11-A-4-8-B": { + "lines": [ + {"text": "...hm! Good to know, good to know.", "animation": "Neutral"} ] }, - "Random11-B-5": {"text": "But, well, if you're here, you like things on the bigger side. Maybe enjoy it for a time, if you plan on losing it?", "animation": "Neutral"}, - "Random11-C": {"text": "Hm, you tried it, but it wasn't for you?", "animation": "Thinking", "next": "Random11-C-2"}, - "Random11-C-2": { - "text": "That's completely fair. Sometimes, the FAT life isn't the one for them.", - "animation": "Smug", - "next": "Random11-C-3", - "effects": [ - {"type": "oscillation", "start": 39, "end": 42} + "Random11-A-4-8-C": { + "lines": [ + {"text": "All in time, all in time! Keep the diet up, and you'll be getting stuck in between places in no time.", "animation": "Smug"} ] }, - "Random11-C-3": {"text": "But, well, if you did gain a little, or a lot...I hope it was fun for you in that time, at least.", "animation": "Pat"}, - "Random11-D": {"text": "Ah, a feeder! Well, you're certainly doing a splendid job with me so far!", "animation": "Smug", "next": "Random11-D-2"}, - "Random11-D-2": {"text": "If you can do this with me, imagine what you can do for others..!", "animation": "Surprised"}, - "Random11-E": {"text": "Oh? Not a fan? That's completely fine. It's not for everyone.", "animation": "Surprised", "next": "Random11-E-2"}, - "Random11-E-2": {"text": "I assume you humans have purpose in your life other than getting fat as heck!", "animation": "Smug", "next": "Random11-E-3"}, - "Random11-E-3": { - "text": "You can pursue your passions. I'll be pursuing some Poké Puffs!", - "animation": "Pat", - "effects": [ - {"type": "oscillation", "start": 30, "end": 63} + "Random11-B": { + "lines": [ + {"text": "Oh, a little accidental weight gain, hm?", "animation": "Neutral"}, + {"text": "The weight can certainly creep up on you. A snack here, a treat there...", "animation": "Thinking"}, + {"text": "...next thing you know, your human clothing will feel all tight, and might rip!!", "animation": "Surprised"}, + {"text": "Haha! [wave]Just teasing[/wave].", "animation": "Smug"}, + {"text": "But, well, if you're here, you like things on the bigger side. Maybe enjoy it for a time, if you plan on losing it?", "animation": "Neutral"} + ] + }, + "Random11-C": { + "lines": [ + {"text": "Hm, you tried it, but it wasn't for you?", "animation": "Thinking"}, + {"text": "That's completely fair. Sometimes, the [wave]FAT[/wave] life isn't the one for them.", "animation": "Smug"}, + {"text": "But, well, if you did gain a little, or a lot...I hope it was fun for you in that time, at least.", "animation": "Pat"} + ] + }, + "Random11-D": { + "lines": [ + {"text": "Ah, a feeder! Well, you're certainly doing a splendid job with me so far!", "animation": "Smug"}, + {"text": "If you can do this with me, imagine what you can do for others..!", "animation": "Surprised"} + ] + }, + "Random11-E": { + "lines": [ + {"text": "Oh? Not a fan? That's completely fine. It's not for everyone.", "animation": "Surprised"}, + {"text": "I assume you humans have purpose in your life other than getting fat as heck!", "animation": "Smug"}, + {"text": "You can pursue your passions. [wave]I'll be pursuing some Poké Puffs![/wave]", "animation": "Pat"} ] }, "Random12": { - "text": "This is going to be an odd question, but, um...what year is it?", - "animation": "Surprised", + "pools": ["Random"], + "lines": [ + {"text": "This is going to be an odd question, but, um...what year is it?", "animation": "Surprised"} + ], "choices": [ {"text": "Currently...", "next": "Random12-A"}, {"text": "You don't know?!", "next": "Random12-B"} ] }, "Random12-A": { - "text": "...ohmigosh! You're KIDDING me. It's been THAT long?", - "animation": "Peeved", - "next": "Random12-A-2", - "effects": [ - {"type": "screenshake", "start": 20, "end": 20}, - {"type": "shake", "start": 20, "end": 27}, - {"type": "sound", "start": 20, "end": 20, "sound": "sfx/boom.ogg"}, - {"type": "screenshake", "start": 42, "end": 42}, - {"type": "shake", "start": 42, "end": 46} - ] - }, - "Random12-A-2": {"text": "In the wild, we don't do any timekeeping!", "animation": "Surprised", "next": "Random12-A-3"}, - "Random12-A-3": {"text": "...sorry, I'm just asking because, well...I didn't know how old I was..!", "animation": "Cry", "next": "Random12-A-4"}, - "Random12-A-4": {"text": "...alright. Well, that clears that up...", "animation": "Thinking", "next": "Random12-A-5"}, - "Random12-A-5": { - "text": "...wow. I, um...I...didn't realize, I'm...uh, that...", - "animation": "Thinking", - "next": "Random12-A-6", - "effects": [ - {"type": "screenshake"} - ] - }, - "Random12-A-6": { - "text": "...NOTHING. Nothing. Time comes for us all, I suppose...", - "animation": "Cry", - "effects": [ - {"type": "screenshake"}, - {"type": "screenshake", "start": 12, "end": 12} + "lines": [ + {"text": "...ohmigosh! You're [screenshake][shake][sound=sfx/boom.ogg]KIDDING[/shake] me. It's been [screenshake][shake]THAT[/shake] long?", "animation": "Peeved"}, + {"text": "In the wild, we don't do any timekeeping!", "animation": "Surprised"}, + {"text": "...sorry, I'm just asking because, well...I didn't know how old I was..!", "animation": "Cry"}, + {"text": "...alright. Well, that clears that up...", "animation": "Thinking"}, + {"text": "[screenshake]...wow. I, um...I...didn't realize, I'm...uh, that...", "animation": "Thinking"}, + {"text": "[screenshake]...NOTHING. [screenshake]Nothing. Time comes for us all, I suppose...", "animation": "Cry"} ] }, "Random12-B": { - "text": "Hey, jerk! Do I look like I know how to keep track of time? I live in the wild!", - "animation": "Peeved", - "next": "Random12-B-2", - "effects": [ - {"type": "sound", "start": 5, "end": 5, "sound": "sfx/boom.ogg"}, - {"type": "screenshake", "start": 5, "end": 5}, - {"type": "shake", "start": 5, "end": 9} + "lines": [ + {"text": "Hey, [sound=sfx/boom.ogg][screenshake][shake]jerk[/shake]! Do I look like I know how to keep track of time? I live in the wild!", "animation": "Peeved"}, + {"text": "I just was curious, because... I...don't know how old I am...", "animation": "Cry"}, + {"text": "...time comes for us all, okay! I need to know how much time I've got left to [screenshake][shake][sound=sfx/boom.ogg]GET FAT[/shake]!", "animation": "Peeved"} ] }, - "Random12-B-2": {"text": "I just was curious, because... I...don't know how old I am...", "animation": "Cry", "next": "Random12-B-3"}, - "Random12-B-3": { - "text": "...time comes for us all, okay! I need to know how much time I've got left to GET FAT!", - "animation": "Peeved", - "effects": [ - {"type": "screenshake", "start": 78, "end": 78}, - {"type": "shake", "start": 78, "end": 85}, - {"type": "sound", "start": 78, "end": 78, "sound": "sfx/boom.ogg"} + "Random13": { + "pools": ["Random"], + "lines": [ + {"text": "...oh? A question for me?", "animation": "Surprised"}, + {"text": "[big][sound=sfx/boom.ogg][shake][screenshake]...what's my SEX?![/shake][/big]", "animation": "Angry"}, + {"text": "[screenshake]I-I can tell you, I d-don't do that too m-muc-", "animation": "Peeved"}, + {"text": "OH. Like...my...[wave]thingies[/wave]. My..[wave].reproductive rol[/wave]e.", "animation": "Shocked"}, + {"text": "...honestly, it's more fun to keep you guessing. Perhaps it's whatever you'd like it to be!", "animation": "Smug"} ] }, - "Random13": {"text": "...oh? A question for me?", "animation": "Surprised", "next": "Random13-2"}, - "Random13-2": { - "text": "...what's my SEX?!", - "animation": "Angry", - "next": "Random13-3", - "effects": [ - {"type": "big", "end": 18}, - {"type": "sound", "sound": "sfx/boom.ogg"}, - {"type": "shake", "end": 18}, - {"type": "screenshake"} + "Random14": { + "pools": ["Random"], + "lines": [ + {"text": "Oh? A question for me?", "animation": "Surprised"}, + {"text": "My moveset?!", "animation": "Shocked"}, + {"text": "Well, I should say, I'm not good at fighting! I don't do any battling...", "animation": "Peeved"}, + {"text": "It's too high octane for me...you know who I am! I like a good, filling meal, and relaxing...", "animation": "Eager"}, + {"text": "...but, yes! Let's get into it. The moves I have are for purely functional purposes!!", "animation": "Smug"}, + {"text": "[big][color=0.251 1 0.251]Vine Whip[/color]! [/big]For grabbing far-away snacks!", "animation": "Neutral"}, + {"text": "[color=0.251 1 0.251][big]Leaf Blade[/color]! [/big]For cutting portions into smaller sizes!", "animation": "Eager"}, + {"text": "[big]Slam![/big] Well, I'm trying to upgrade that into [wave]Heavy[/wave] Slam...", "animation": "Thinking"}, + {"text": "....aaaand, Growth. Well, if you notice, I'm gonna be using that move often!", "animation": "Pat"} ] }, - "Random13-3": { - "text": "I-I can tell you, I d-don't do that too m-muc-", - "animation": "Peeved", - "next": "Random13-4", - "effects": [ - {"type": "screenshake"} + "Random15": { + "pools": ["Random"], + "lines": [ + {"text": "Hey, just a tip for you, I've heard...", "animation": "Smug"}, + {"text": "If you get a really lucky, spawning items...", "animation": "Shocked"}, + {"text": "You might find some really good for, or some interesting trinkets...!", "animation": "Surprised"}, + {"text": "...something you could give to me, I'm sure!", "animation": "Smug"}, + {"text": "You've got the patience for it, right?", "animation": "Smug"} ] }, - "Random13-4": { - "text": "OH. Like...my...thingies. My...reproductive role.", - "animation": "Shocked", - "next": "Random13-5", - "effects": [ - {"type": "oscillation", "start": 16, "end": 24}, - {"type": "oscillation", "start": 31, "end": 48} + "Random16": { + "pools": ["Random"], + "lines": [ + {"text": "I've heard there's some really crazy items you can find with 'Spawn Item'!", "animation": "Smug"}, + {"text": "Certainly all kinds of Poké Puffs, and Berries...", "animation": "Thinking"}, + {"text": "...but who knows what kinds?! There could be some [wave][screenshake]REALLY[/wave] rare stuff!", "animation": "Surprised"}, + {"text": "...gambling is bad, though! They banned it where I'm from for a reason! Just get what you need to make me really fat, alright?", "animation": "Bummed"} ] }, - "Random13-5": {"text": "...honestly, it's more fun to keep you guessing. Perhaps it's whatever you'd like it to be!", "animation": "Smug"}, - "Random14": {"text": "Oh? A question for me?", "animation": "Surprised", "next": "Random14-2"}, - "Random14-2": {"text": "My moveset?!", "animation": "Shocked", "next": "Random14-3"}, - "Random14-3": {"text": "Well, I should say, I'm not good at fighting! I don't do any battling...", "animation": "Peeved", "next": "Random14-4"}, - "Random14-4": {"text": "It's too high octane for me...you know who I am! I like a good, filling meal, and relaxing...", "animation": "Eager", "next": "Random14-5"}, - "Random14-5": {"text": "...but, yes! Let's get into it. The moves I have are for purely functional purposes!!", "animation": "Smug", "next": "Random14-6"}, - "Random14-6": { - "text": "Vine Whip! For grabbing far-away snacks!", - "animation": "Neutral", - "next": "Random14-7", - "effects": [ - {"type": "big", "end": 12}, - { - "type": "color", - "end": 9, - "color": [0.25098, 1, 0.25098] - } + "Random17": { + "pools": ["Random"], + "lines": [ + {"text": "So, I'm sure you've seen Poké Puffs, but you can get Berries, too!", "animation": "Surprised"}, + {"text": "There's a number of different Berries in rotation...", "animation": "Thinking"}, + {"text": "You'll have to look and see!", "animation": "Neutral"}, + {"text": "Just a tip, some Spicy Berries can really stir up one's digestion!", "animation": "Pat"}, + {"text": "It's a good break from all the other sweets you'll be giving me!", "animation": "Neutral"}, + {"text": "Berries don't tend to have many calories, though...", "animation": "Bummed"}, + {"text": "Regardless, you should check what they do and feed me the good ones!", "animation": "Eager"} ] }, - "Random14-7": { - "text": "Leaf Blade! For cutting portions into smaller sizes!", - "animation": "Eager", - "next": "Random14-8", - "effects": [ - { - "type": "color", - "end": 10, - "color": [0.25098, 1, 0.25098] - }, - {"type": "big", "end": 13} + "Random18": { + "pools": ["Random"], + "lines": [ + {"text": "There's many items of many rarities!", "animation": "Surprised"}, + {"text": "I think the order goes...Common, Uncommon, Rare, Epic, and Legendary.", "animation": "Thinking"}, + {"text": "There could be even more than that!", "animation": "Surprised"}, + {"text": "You'll hear different sounds based on which rarity the item has...", "animation": "Smug"}, + {"text": "...keep tabs on your Catalog!", "animation": "Surprised"} ] }, - "Random14-8": { - "text": "Slam! Well, I'm trying to upgrade that into Heavy Slam...", - "animation": "Thinking", - "next": "Random14-9", - "effects": [ - {"type": "oscillation", "start": 45, "end": 50}, - {"type": "big", "end": 5} - ] - }, - "Random14-9": {"text": "....aaaand, Growth. Well, if you notice, I'm gonna be using that move often!", "animation": "Pat"}, - "Random15": {"text": "Hey, just a tip for you, I've heard...", "animation": "Smug", "next": "Random15-2"}, - "Random15-2": {"text": "If you get a really lucky, spawning items...", "animation": "Shocked", "next": "Random15-3"}, - "Random15-3": {"text": "You might find some really good for, or some interesting trinkets...!", "animation": "Surprised", "next": "Random15-4"}, - "Random15-4": {"text": "...something you could give to me, I'm sure!", "animation": "Smug", "next": "Random15-5"}, - "Random15-5": {"text": "You've got the patience for it, right?", "animation": "Smug"}, - "Random16": {"text": "I've heard there's some really crazy items you can find with 'Spawn Item'!", "animation": "Smug", "next": "Random16-2"}, - "Random16-2": {"text": "Certainly all kinds of Poké Puffs, and Berries...", "animation": "Thinking", "next": "Random16-3"}, - "Random16-3": { - "text": "...but who knows what kinds?! There could be some REALLY rare stuff!", - "animation": "Surprised", - "next": "Random16-4", - "effects": [ - {"type": "oscillation", "start": 50, "end": 56}, - {"type": "screenshake", "start": 50, "end": 50} - ] - }, - "Random16-4": {"text": "...gambling is bad, though! They banned it where I'm from for a reason! Just get what you need to make me really fat, alright?", "animation": "Bummed"}, - "Random17": {"text": "So, I'm sure you've seen Poké Puffs, but you can get Berries, too!", "animation": "Surprised", "next": "Random17-2"}, - "Random17-2": {"text": "There's a number of different Berries in rotation...", "animation": "Thinking", "next": "Random17-3"}, - "Random17-3": {"text": "You'll have to look and see!", "animation": "Neutral", "next": "Random17-4"}, - "Random17-4": {"text": "Just a tip, some Spicy Berries can really stir up one's digestion!", "animation": "Pat", "next": "Random17-5"}, - "Random17-5": {"text": "It's a good break from all the other sweets you'll be giving me!", "animation": "Neutral", "next": "Random17-6"}, - "Random17-6": {"text": "Berries don't tend to have many calories, though...", "animation": "Bummed", "next": "Random17-7"}, - "Random17-7": {"text": "Regardless, you should check what they do and feed me the good ones!", "animation": "Eager"}, - "Random18": {"text": "There's many items of many rarities!", "animation": "Surprised", "next": "Random18-2"}, - "Random18-2": {"text": "I think the order goes...Common, Uncommon, Rare, Epic, and Legendary.", "animation": "Thinking", "next": "Random18-3"}, - "Random18-3": {"text": "There could be even more than that!", "animation": "Surprised", "next": "Random18-4"}, - "Random18-4": {"text": "You'll hear different sounds based on which rarity the item has...", "animation": "Smug", "next": "Random18-5"}, - "Random18-5": {"text": "...keep tabs on your Catalog!", "animation": "Surprised"}, "Random19": { - "text": "What's your favorite flavor of Poké Puff?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "What's your favorite flavor of Poké Puff?", "animation": "Thinking"} + ], "choices": [ {"text": "Sweet", "next": "Random19-2"}, {"text": "Mint", "next": "Random19-2"}, @@ -1940,695 +735,418 @@ {"text": "Spice", "next": "Random19-2"} ] }, - "Random19-2": {"text": "...interesting choice! Well, I would've gone with...", "animation": "Surprised", "next": "Random19-3"}, - "Random19-3": {"text": "Never mind! I should just tell you this...the flavor of Poké Puffs don't matter one bit!", "animation": "Smug", "next": "Random19-4"}, - "Random19-4": {"text": "I enjoy all flavors. And I'll happily eat all of them!", "animation": "Neutral", "next": "Random19-5"}, - "Random19-5": {"text": "Looking at all the pretty colors is nice though, right?", "animation": "Smug"}, - "Random20": {"text": "There's whispers of two ultra-super-rare nigh-impossible-to-get items...", "animation": "Thinking", "next": "Random20-2"}, - "Random20-2": {"text": "...a Berry of unfathomable reality-shattering power, and a Poké Puff that is a true calorie calamity...", "animation": "Surprised", "next": "Random20-3"}, - "Random20-3": {"text": "...you're unlikely to get them, unless you're in the one-percent...", "animation": "Shocked", "next": "Random20-4"}, - "Random20-4": {"text": "Don't stress yourself out over them! They aren't needed for anything! There's plenty of items to help make me big!", "animation": "Smug"}, - "Random21": {"text": "You can rub my head, belly, and tail.", "animation": "Neutral", "next": "Random21-2"}, - "Random21-2": {"text": "...but you probably knew this already, you handsy little cretin.", "animation": "Smug", "next": "Random21-3"}, - "Random21-3": {"text": "Rubbing my belly does have an additional effect, though...", "animation": "BellyRub"}, + "Random19-2": { + "lines": [ + {"text": "...interesting choice! Well, I would've gone with...", "animation": "Surprised"}, + {"text": "Never mind! I should just tell you this...the flavor of Poké Puffs don't matter one bit!", "animation": "Smug"}, + {"text": "I enjoy all flavors. And I'll happily eat all of them!", "animation": "Neutral"}, + {"text": "Looking at all the pretty colors is nice though, right?", "animation": "Smug"} + ] + }, + "Random20": { + "pools": ["Random"], + "lines": [ + {"text": "There's whispers of two ultra-super-rare nigh-impossible-to-get items...", "animation": "Thinking"}, + {"text": "...a Berry of unfathomable reality-shattering power, and a Poké Puff that is a true calorie calamity...", "animation": "Surprised"}, + {"text": "...you're unlikely to get them, unless you're in the one-percent...", "animation": "Shocked"}, + {"text": "Don't stress yourself out over them! They aren't needed for anything! There's plenty of items to help make me big!", "animation": "Smug"} + ] + }, + "Random21": { + "pools": ["Random"], + "lines": [ + {"text": "You can rub my head, belly, and tail.", "animation": "Neutral"}, + {"text": "...but you probably knew this already, you handsy little cretin.", "animation": "Smug"}, + {"text": "Rubbing my belly does have an additional effect, though...", "animation": "BellyRub"} + ] + }, "Random22": { - "text": "So, being a Grass type...", - "animation": "Thinking", - "next": "Random22-2", - "effects": [ - { - "type": "color", - "start": 12, - "end": 17, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random22-2": { - "text": "...I'm sure you can probably guess, I photosynthesize! ", - "animation": "Smug", - "next": "Random22-3", - "effects": [ - { - "type": "color", - "start": 38, - "end": 53, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random22-3": {"text": "I do it with my tail! See?", "animation": "TailRub", "next": "Random22-4"}, - "Random22-4": {"text": "The energy comes in through the leaf at the end, and disperses through the rest of my body...", "animation": "TailRub", "next": "Random22-5"}, - "Random22-5": {"text": "What's it feel like? Well, when it's sunny, it feels like a full body massage! And it tastes sugary sweet!", "animation": "Surprised", "next": "Random22-6"}, - "Random22-6": {"text": "...as you can guess, I don't totally subsist on it. I can and certainly do eat food.", "animation": "Smug", "next": "Random22-7"}, - "Random22-7": {"text": "Cloudy days or nights do make me quite drowsy, though. I'm in my element in the sun.", "animation": "Smug", "next": "Random22-8"}, - "Random22-8": { - "text": "And, unfortunately...soaking up a lot of sunlight doesn't make you fat! I've tried it!", - "animation": "Cry", - "effects": [ - {"type": "screenshake", "start": 21, "end": 21} + "pools": ["Random"], + "lines": [ + {"text": "So, being a [color=0.251 1 0.251]Grass[/color] type...", "animation": "Thinking"}, + {"text": "...I'm sure you can probably guess, I [color=0.251 1 0.251]photosynthesize[/color]! ", "animation": "Smug"}, + {"text": "I do it with my tail! See?", "animation": "TailRub"}, + {"text": "The energy comes in through the leaf at the end, and disperses through the rest of my body...", "animation": "TailRub"}, + {"text": "What's it feel like? Well, when it's sunny, it feels like a full body massage! And it tastes sugary sweet!", "animation": "Surprised"}, + {"text": "...as you can guess, I don't totally subsist on it. I can and certainly do eat food.", "animation": "Smug"}, + {"text": "Cloudy days or nights do make me quite drowsy, though. I'm in my element in the sun.", "animation": "Smug"}, + {"text": "And, unfortunately...[screenshake]soaking up a lot of sunlight doesn't make you fat! I've tried it!", "animation": "Cry"} ] }, "Random23": { - "text": "So, here's an interesting one...do you prefer Zangoose or Seviper?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "So, here's an interesting one...do you prefer [color=1 0.25 0.25]Zangoose[/color] or [color=0.502 0.502 1]Seviper[/color]?", "animation": "Thinking"} + ], "choices": [ {"text": "Zangoose", "next": "Random23-A"}, {"text": "Seviper", "next": "Random23-B"} - ], - "effects": [ - { - "type": "color", - "start": 46, - "end": 54, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 58, - "end": 65, - "color": [0.501961, 0.501961, 1] - } ] }, - "Random23-A": {"text": "Ah, that rugged white and red beast with those scary claws? He's quite the chubby one, too...", "animation": "Smug", "next": "Random23-2"}, - "Random23-B": {"text": "Of course! A serpent quite like me! Although bigger, and scarier...definitely an appeal in a noodle like that, though.", "animation": "Smug", "next": "Random23-2"}, - "Random23-2": {"text": "Have you heard? There's a particular contest between a pair of them that's ongoing! An utterly absurd, big contest!", "animation": "Surprised", "next": "Random23-3"}, - "Random23-3": { - "text": "You might think I'm crazy, but do you have a hunch about what I'm talking about?", - "animation": "Shocked", + "Random23-A": { + "lines": [ + {"text": "Ah, that rugged white and red beast with those scary claws? He's quite the chubby one, too...", "animation": "Smug"} + ], + "next": "Random23-2" + }, + "Random23-B": { + "lines": [ + {"text": "Of course! A serpent quite like me! Although bigger, and scarier...definitely an appeal in a noodle like that, though.", "animation": "Smug"} + ], + "next": "Random23-2" + }, + "Random23-2": { + "lines": [ + {"text": "Have you heard? There's a particular contest between a pair of them that's ongoing! An utterly absurd, big contest!", "animation": "Surprised"}, + {"text": "You might think I'm crazy, but do you have a hunch about what I'm talking about?", "animation": "Shocked"} + ], "choices": [ {"text": "I've seen it...", "next": "Random23-3-A"}, {"text": "Huh?!", "next": "Random23-3-B"} ] }, - "Random23-3-A": {"text": "It's insane what's happening over in Hoenn! I mean, probably sucks for the humans or Pokémon who had to evacuate, but insane...", "animation": "Bummed", "next": "Random23-3-A-2"}, - "Random23-3-A-2": { - "text": "...insanely HOT!", - "animation": "Horny", - "effects": [ - {"type": "big", "end": 16}, - {"type": "shake", "end": 16}, - {"type": "screenshake"}, - {"type": "sound", "sound": "sfx/boom.ogg"} + "Random23-3-A": { + "lines": [ + {"text": "It's insane what's happening over in Hoenn! I mean, probably sucks for the humans or Pokémon who had to evacuate, but insane...", "animation": "Bummed"}, + {"text": "[big][shake][screenshake][sound=sfx/boom.ogg]...insanely HOT![/shake][/big]", "animation": "Horny"} ] }, - "Random23-3-B": {"text": "Oh, so you don't know? I can't blame you, you are from faraway...", "animation": "Bummed", "next": "Random23-4"}, - "Random23-4": {"text": "So, just to review...", "animation": "Thinking", "next": "Random23-5"}, - "Random23-5": {"text": "I first heard about what was going on from a Flygon who migrated from Hoenn after it started getting crazy, who I became friends with.", "animation": "Thinking", "next": "Random23-6"}, - "Random23-6": {"text": "I get my news from word of mouth...", "animation": "Smug", "next": "Random23-7"}, - "Random23-7": {"text": "But when I first heard the story, I was utterly aghast!", "animation": "Peeved", "next": "Random23-8"}, - "Random23-8": { - "text": "So, what they told me was...the two were just a regular Seviper and Zangoose rivalry at a point!", - "animation": "Thinking", - "next": "Random23-9", - "effects": [ - { - "type": "color", - "start": 56, - "end": 63, - "color": [0.501961, 0.25098, 1] - }, - { - "type": "color", - "start": 68, - "end": 76, - "color": [1, 0.25, 0.25] - } + "Random23-3-B": { + "lines": [ + {"text": "Oh, so you don't know? I can't blame you, you are from faraway...", "animation": "Bummed"}, + {"text": "So, just to review...", "animation": "Thinking"}, + {"text": "I first heard about what was going on from a Flygon who migrated from Hoenn after it started getting crazy, who I became friends with.", "animation": "Thinking"}, + {"text": "I get my news from word of mouth...", "animation": "Smug"}, + {"text": "But when I first heard the story, I was utterly aghast!", "animation": "Peeved"}, + {"text": "So, what they told me was...the two were just a regular [color=0.502 0.251 1]Seviper[/color] and [color=1 0.25 0.25]Zangoose[/color] rivalry at a point!", "animation": "Thinking"}, + {"text": "They came to a berry patch and just starting chowing down. I can't blame them. I guess it was a challenge, like everything is for those Pokémon.", "animation": "Surprised"}, + {"text": "And the Flygon then told me that they met a Ralts, who was helping them eat a ton!", "animation": "Surprised"}, + {"text": "Crazy things started happening as soon as the Ralts found this weird bracelet on the ground that...made things big.", "animation": "Thinking"}, + {"text": "I heard it got really out of hand from there...and, apparently even a legendary Pokémon showed up to try and stop it, but to no avail!", "animation": "Surprised"}, + {"text": "All the humans were evacuated. And when the Pokémon's habitats became coated in flab, I guess everyone started leaving...", "animation": "Thinking"}, + {"text": "Flygon tried to stay as late as possible, but all for naught. The last thing they saw was a Kirlia soaring on a Flying Pokémon...", "animation": "Neutral"}, + {"text": "...they tried to catch up to them, but it blasted them away with a psychic blast, and said something about wanting to find...a Pokémon from their dreams...", "animation": "Shocked"}, + {"text": "For one, isn't that a crazy story?!?!", "animation": "Angry"}, + {"text": "I thought I was alone in wanting to become crazy obese! But that [color=0.502 0.251 1]Seviper[/color] and [color=1 0.25 0.25]Zangoose[/color] became as big as a [shake][screenshake][sound=sfx/boom.ogg]LANDMASS[/shake]!", "animation": "Peeved"}, + {"text": "I'd want a feeder as dedicated as that Ralts is to them!! With such grand ambitions!", "animation": "Horny"}, + {"text": "I'd be a landmass WAY faster than they became one, that's for sure...", "animation": "Eager"} ] }, - "Random23-9": {"text": "They came to a berry patch and just starting chowing down. I can't blame them. I guess it was a challenge, like everything is for those Pokémon.", "animation": "Surprised", "next": "Random23-10"}, - "Random23-10": {"text": "And the Flygon then told me that they met a Ralts, who was helping them eat a ton!", "animation": "Surprised", "next": "Random23-11"}, - "Random23-11": {"text": "Crazy things started happening as soon as the Ralts found this weird bracelet on the ground that...made things big.", "animation": "Thinking", "next": "Random23-12"}, - "Random23-12": {"text": "I heard it got really out of hand from there...and, apparently even a legendary Pokémon showed up to try and stop it, but to no avail!", "animation": "Surprised", "next": "Random23-13"}, - "Random23-13": {"text": "All the humans were evacuated. And when the Pokémon's habitats became coated in flab, I guess everyone started leaving...", "animation": "Thinking", "next": "Random23-14"}, - "Random23-14": {"text": "Flygon tried to stay as late as possible, but all for naught. The last thing they saw was a Kirlia soaring on a Flying Pokémon...", "animation": "Neutral", "next": "Random23-15"}, - "Random23-15": {"text": "...they tried to catch up to them, but it blasted them away with a psychic blast, and said something about wanting to find...a Pokémon from their dreams...", "animation": "Shocked", "next": "Random23-16"}, - "Random23-16": {"text": "For one, isn't that a crazy story?!?!", "animation": "Angry", "next": "Random23-17"}, - "Random23-17": { - "text": "I thought I was alone in wanting to become crazy obese! But that Seviper and Zangoose became as big as a LANDMASS!", - "animation": "Peeved", - "next": "Random23-18", - "effects": [ - { - "type": "color", - "start": 77, - "end": 85, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 65, - "end": 72, - "color": [0.501961, 0.25098, 1] - }, - {"type": "shake", "start": 105, "end": 113}, - {"type": "screenshake", "start": 105, "end": 105}, - {"type": "sound", "start": 105, "end": 105, "sound": "sfx/boom.ogg"} + "Random24": { + "pools": ["Random"], + "lines": [ + {"text": "Are you friends with any Flying-type Pokémon?", "animation": "Thinking"}, + {"text": "...well, you're a human, so probably not.", "animation": "Bummed"}, + {"text": "But, well, I keep in touch with a [color=1 0.25 0.25]Pikipek[/color], who has migrated a number of times around...", "animation": "Thinking"}, + {"text": "..they're from Alola! Beautiful, tropical Alola...", "animation": "Eager"}, + {"text": "They were taking a flight around a volcano there, and what they spotted was quite a sight..!", "animation": "Shocked"}, + {"text": "It was a harem of Salandit with a Salazzle! I mean, that's just what they do!", "animation": "Surprised"}, + {"text": "But, get this...the Salandit weren't just serving the Salazzle, but really really pampering it! Scampering around, collecting food and returning to a stone platform!", "animation": "Shocked"}, + {"text": "Must've been a thrilling food run for those Salandits! A Thrilllrun, if you will!", "animation": "Smug"}, + {"text": "and it was...well, [screenshake][shake]FAT[/shake].[wave] REALLY fat[/wave]. I can only imagine, its maw buried in rolls, arms stuck in a pool of flab...", "animation": "Horny"}, + {"text": "...you know, I'm hearing a lot of stories about Pokémon wanting to get fat or becoming fat.", "animation": "Surprised"}, + {"text": "Y-you don't think it's some sort of epidemic, is it?!", "animation": "Cry"}, + {"text": "[screenshake]...I wanted to be fat [shake]BEFORE[/shake] it was cool!", "animation": "Angry"} ] }, - "Random23-18": {"text": "I'd want a feeder as dedicated as that Ralts is to them!! With such grand ambitions!", "animation": "Horny", "next": "Random23-19"}, - "Random23-19": {"text": "I'd be a landmass WAY faster than they became one, that's for sure...", "animation": "Eager"}, - "Random24": {"text": "Are you friends with any Flying-type Pokémon?", "animation": "Thinking", "next": "Random24-2"}, - "Random24-2": {"text": "...well, you're a human, so probably not.", "animation": "Bummed", "next": "Random24-3"}, - "Random24-3": { - "text": "But, well, I keep in touch with a Pikipek, who has migrated a number of times around...", - "animation": "Thinking", - "next": "Random24-4", - "effects": [ - { - "type": "color", - "start": 34, - "end": 41, - "color": [1, 0.25, 0.25] - } + "Random25": { + "pools": ["Random"], + "lines": [ + {"text": "So...you wanna know about my life out in the wild, huh?", "animation": "Thinking"}, + {"text": "Well, it's simple...kind of boring, really.", "animation": "Bummed"}, + {"text": "I live in a little nook under a big tree. In the shade, kind of out of the way.", "animation": "Thinking"}, + {"text": "I scrounge around for Berries, I speak with some of my fellow Pokémon friends, and go for strolls...and take naps!", "animation": "HeadRubFull"}, + {"text": "...it's a simple life!", "animation": "Smug"}, + {"text": "I'm content in being in harmony with nature... ", "animation": "Peeved"}, + {"text": "...and well, I'd also like to squish nature under my humongous tail. I guess we can call that a contradiction!", "animation": "Horny"} ] }, - "Random24-4": {"text": "..they're from Alola! Beautiful, tropical Alola...", "animation": "Eager", "next": "Random24-5"}, - "Random24-5": {"text": "They were taking a flight around a volcano there, and what they spotted was quite a sight..!", "animation": "Shocked", "next": "Random24-6"}, - "Random24-6": {"text": "It was a harem of Salandit with a Salazzle! I mean, that's just what they do!", "animation": "Surprised", "next": "Random24-7"}, - "Random24-7": {"text": "But, get this...the Salandit weren't just serving the Salazzle, but really really pampering it! Scampering around, collecting food and returning to a stone platform!", "animation": "Shocked", "next": "Random24-8"}, - "Random24-8": {"text": "Must've been a thrilling food run for those Salandits! A Thrilllrun, if you will!", "animation": "Smug", "next": "Random24-9"}, - "Random24-9": { - "text": "and it was...well, FAT. REALLY fat. I can only imagine, its maw buried in rolls, arms stuck in a pool of flab...", - "animation": "Horny", - "next": "Random24-10", - "effects": [ - {"type": "screenshake", "start": 19, "end": 19}, - {"type": "shake", "start": 19, "end": 22}, - {"type": "oscillation", "start": 23, "end": 34} - ] - }, - "Random24-10": {"text": "...you know, I'm hearing a lot of stories about Pokémon wanting to get fat or becoming fat.", "animation": "Surprised", "next": "Random24-11"}, - "Random24-11": {"text": "Y-you don't think it's some sort of epidemic, is it?!", "animation": "Cry", "next": "Random24-12"}, - "Random24-12": { - "text": "...I wanted to be fat BEFORE it was cool!", - "animation": "Angry", - "effects": [ - {"type": "screenshake", "end": 1}, - {"type": "shake", "start": 22, "end": 28} - ] - }, - "Random25": {"text": "So...you wanna know about my life out in the wild, huh?", "animation": "Thinking", "next": "Random25-2"}, - "Random25-2": {"text": "Well, it's simple...kind of boring, really.", "animation": "Bummed", "next": "Random25-3"}, - "Random25-3": {"text": "I live in a little nook under a big tree. In the shade, kind of out of the way.", "animation": "Thinking", "next": "Random25-4"}, - "Random25-4": {"text": "I scrounge around for Berries, I speak with some of my fellow Pokémon friends, and go for strolls...and take naps!", "animation": "HeadRubFull", "next": "Random25-5"}, - "Random25-5": {"text": "...it's a simple life!", "animation": "Smug", "next": "Random25-6"}, - "Random25-6": {"text": "I'm content in being in harmony with nature... ", "animation": "Peeved", "next": "Random25-7"}, - "Random25-7": {"text": "...and well, I'd also like to squish nature under my humongous tail. I guess we can call that a contradiction!", "animation": "Horny"}, - "Random26": {"text": "You wanna know why I want to get fat?", "animation": "Shocked", "next": "Random26-2"}, - "Random26-2": {"text": "...I'll be honest, I don't know exactly the reason why.", "animation": "Bummed", "next": "Random26-3"}, - "Random26-3": {"text": "Sometimes these things are sort of just...part of who you are.", "animation": "Thinking", "next": "Random26-4"}, - "Random26-4": {"text": "Like, I've met some other Pokémon who are sort of like that. They just have these...funny interests.", "animation": "Thinking", "next": "Random26-5"}, - "Random26-5": {"text": "I mean, maybe it's just an error of nature. Imprinting? Or, maybe it's part of some divine plan?", "animation": "Thinking", "next": "Random26-6"}, - "Random26-6": {"text": "All I know is that what a normal Snivy should like isn't what I like...", "animation": "Neutral", "next": "Random26-7"}, - "Random26-7": {"text": "...and, well, maybe it's wrong. Maybe it's right. Perhaps my bloodline will die, because I prefer getting fat over finding a viable mate...", "animation": "HeadRubFull", "next": "Random26-8"}, - "Random26-8": { - "text": "And it will have culminated in a ginormous, blob Snivy in its wake.", - "animation": "Horny", - "next": "Random26-9", - "effects": [ - { - "type": "color", - "start": 49, - "end": 54, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random26-9": { - "text": "...I wouldn't be opposed to having a partner though. One who likes getting FAT, too.", - "animation": "Horny", - "effects": [ - {"type": "screenshake", "start": 75, "end": 75}, - {"type": "shake", "start": 75, "end": 78} + "Random26": { + "pools": ["Random"], + "lines": [ + {"text": "You wanna know why I want to get fat?", "animation": "Shocked"}, + {"text": "...I'll be honest, I don't know exactly the reason why.", "animation": "Bummed"}, + {"text": "Sometimes these things are sort of just...part of who you are.", "animation": "Thinking"}, + {"text": "Like, I've met some other Pokémon who are sort of like that. They just have these...funny interests.", "animation": "Thinking"}, + {"text": "I mean, maybe it's just an error of nature. Imprinting? Or, maybe it's part of some divine plan?", "animation": "Thinking"}, + {"text": "All I know is that what a normal Snivy should like isn't what I like...", "animation": "Neutral"}, + {"text": "...and, well, maybe it's wrong. Maybe it's right. Perhaps my bloodline will die, because I prefer getting fat over finding a viable mate...", "animation": "HeadRubFull"}, + {"text": "And it will have culminated in a ginormous, blob [color=0.251 1 0.251]Snivy[/color] in its wake.", "animation": "Horny"}, + {"text": "...I wouldn't be opposed to having a partner though. One who likes getting [screenshake][shake]FAT[/shake], too.", "animation": "Horny"} ] }, "Random27": { - "text": "So, what's it like being a human? Is it enjoyable to you?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "So, what's it like being a human? Is it enjoyable to you?", "animation": "Thinking"} + ], "choices": [ {"text": "It's good!", "next": "Random27-A"}, {"text": "Ups and downs", "next": "Random27-B"}, {"text": "It sucks...", "next": "Random27-C"} ] }, - "Random27-A": {"text": "Oh, that's good to hear!", "animation": "Neutral", "next": "Random27-2"}, - "Random27-B": {"text": "Ah, well...happens to the best of us.", "animation": "Bummed", "next": "Random27-2"}, - "Random27-C": {"text": "Oh no, that doesn't sound too good!", "animation": "Cry", "next": "Random27-2"}, - "Random27-2": {"text": "...my advice for you is...take things a day at a time. Think of what you have control over, and...work with what you have.", "animation": "Thinking", "next": "Random27-3"}, - "Random27-3": {"text": "I know some Pokémon who are always fretting about things outside of their grasp. \"Oh, I might get eaten! There could be an earthquake! I might be caught by a bad Trainer!\"", "animation": "Shocked", "next": "Random27-4"}, - "Random27-4": { - "text": "I'll be honest...I think they're LOSERS!!", - "animation": "Thinking", - "next": "Random27-5", - "effects": [ - {"type": "shake", "start": 33, "end": 39}, - {"type": "screenshake", "start": 33, "end": 33}, - {"type": "sound", "start": 33, "end": 33, "sound": "sfx/boom.ogg"}, - {"type": "animation", "start": 33, "animation": "Angry"} - ] + "Random27-A": { + "lines": [ + {"text": "Oh, that's good to hear!", "animation": "Neutral"} + ], + "next": "Random27-2" }, - "Random27-5": {"text": "Nobody wants to be around someone who's always thinking about things they can't influence.", "animation": "Peeved", "next": "Random27-6"}, - "Random27-6": { - "text": "Do the humans in your life think similar things? Well, maybe not those things, but something broad like that...", - "animation": "Thinking", + "Random27-B": { + "lines": [ + {"text": "Ah, well...happens to the best of us.", "animation": "Bummed"} + ], + "next": "Random27-2" + }, + "Random27-C": { + "lines": [ + {"text": "Oh no, that doesn't sound too good!", "animation": "Cry"} + ], + "next": "Random27-2" + }, + "Random27-2": { + "lines": [ + {"text": "...my advice for you is...take things a day at a time. Think of what you have control over, and...work with what you have.", "animation": "Thinking"}, + {"text": "I know some Pokémon who are always fretting about things outside of their grasp. \"Oh, I might get eaten! There could be an earthquake! I might be caught by a bad Trainer!\"", "animation": "Shocked"}, + {"text": "I'll be honest...I think they're [shake][screenshake][sound=sfx/boom.ogg][animation=Angry]LOSERS[/shake]!!", "animation": "Thinking"}, + {"text": "Nobody wants to be around someone who's always thinking about things they can't influence.", "animation": "Peeved"}, + {"text": "Do the humans in your life think similar things? Well, maybe not those things, but something broad like that...", "animation": "Thinking"} + ], "choices": [ {"text": "Oh yeah...", "next": "Random27-7-A"}, {"text": "Sometimes...", "next": "Random27-7-B"}, {"text": "Not really...", "next": "Random27-7-C"} ] }, - "Random27-7-A": {"text": "Oh, so perhaps humans and Pokémon aren't so different, after all!", "animation": "Eager", "next": "Random27-8"}, + "Random27-7-A": { + "lines": [ + {"text": "Oh, so perhaps humans and Pokémon aren't so different, after all!", "animation": "Eager"} + ], + "next": "Random27-8" + }, "Random27-7-B": { - "text": "Well, we're all imperfect. I didn't mean that \"loser\" thing too seriously...", - "animation": "Thinking", - "next": "Random27-8", - "effects": [ - {"type": "oscillation", "start": 46, "end": 53} + "lines": [ + {"text": "Well, we're all imperfect. I didn't mean that [wave]\"loser\"[/wave] thing too seriously...", "animation": "Thinking"} + ], + "next": "Random27-8" + }, + "Random27-7-C": { + "lines": [ + {"text": "How fortunate you are!", "animation": "Surprised"} + ], + "next": "Random27-8" + }, + "Random27-8": { + "lines": [ + {"text": "...ultimately, what I want to say is that take the reigns on the things you do have control over!", "animation": "Smug"}, + {"text": "Every day's a gift! Tomorrow isn't guaranteed! Work on something that's unique to you and make it shine!", "animation": "Neutral"}, + {"text": "...bet you weren't expecting such sage advice from a Snivy who wants to get fat...", "animation": "Bummed"} ] }, - "Random27-7-C": {"text": "How fortunate you are!", "animation": "Surprised", "next": "Random27-8"}, - "Random27-8": {"text": "...ultimately, what I want to say is that take the reigns on the things you do have control over!", "animation": "Smug", "next": "Random27-9"}, - "Random27-9": {"text": "Every day's a gift! Tomorrow isn't guaranteed! Work on something that's unique to you and make it shine!", "animation": "Neutral", "next": "Random27-10"}, - "Random27-10": {"text": "...bet you weren't expecting such sage advice from a Snivy who wants to get fat...", "animation": "Bummed"}, "Random28": { - "text": "Um, I heard this about humans...do you know what \"taxes\" are?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Um, I heard this about humans...do you know what \"taxes\" are?", "animation": "Thinking"} + ], "choices": [ {"text": "Yeah...", "next": "Random28-A"}, {"text": "I avoid them!", "next": "Random28-B"} ] }, - "Random28-A": {"text": "Oh, so it's something bad, then.", "animation": "Bummed", "next": "Random28-2"}, - "Random28-B": {"text": "I mean, the Pokémon I was listening to talk about them said they were important to humans...and there were consequences around them...", "animation": "Thinking", "next": "Random28-2"}, + "Random28-A": { + "lines": [ + {"text": "Oh, so it's something bad, then.", "animation": "Bummed"} + ], + "next": "Random28-2" + }, + "Random28-B": { + "lines": [ + {"text": "I mean, the Pokémon I was listening to talk about them said they were important to humans...and there were consequences around them...", "animation": "Thinking"} + ], + "next": "Random28-2" + }, "Random28-2": { - "text": "Look, it's just you and I! I swear nobody else is between our conversation!", - "animation": "Angry", - "next": "Random28-3", - "effects": [ - {"type": "screenshake"} + "lines": [ + {"text": "[screenshake]Look, it's just you and I! I swear nobody else is between our conversation!", "animation": "Angry"}, + {"text": "D-don't do anything drastic, alright? Whatever those \"taxes\" are, deal with them however you need to, okay?", "animation": "Surprised"} ] }, - "Random28-3": {"text": "D-don't do anything drastic, alright? Whatever those \"taxes\" are, deal with them however you need to, okay?", "animation": "Surprised"}, - "Random29": {"text": "I...I don't actually have anything to say, right now...", "animation": "Cry", "next": "Random29-2"}, - "Random29-2": {"text": "Actually. Wait. I feel something coming on.", "animation": "Surprised", "next": "Random29-3"}, - "Random29-3": {"text": "........", "animation": "HeadRubFull", "next": "Random29-4"}, - "Random29-4": { - "text": "BUUUUUUUUUUUoooooooooOOOOOOOOOOOORP!", - "animation": "BurpBig", - "next": "Random29-5", - "effects": [ - {"type": "big", "end": 36}, - {"type": "shake", "end": 36}, - {"type": "screenshake"} + "Random29": { + "pools": ["Random"], + "lines": [ + {"text": "I...I don't actually have anything to say, right now...", "animation": "Cry"}, + {"text": "Actually. Wait. I feel something coming on.", "animation": "Surprised"}, + {"text": "........", "animation": "HeadRubFull"}, + {"text": "[big][shake][screenshake]BUUUUUUUUUUUoooooooooOOOOOOOOOOOORP![/shake][/big]", "animation": "BurpBig"}, + {"text": "[wave]Oof![/wave]", "animation": "Surprised"}, + {"text": "...haha, how'd you like [wave]THAT[/wave]!", "animation": "Smug"} ] }, - "Random29-5": { - "text": "Oof!", - "animation": "Surprised", - "next": "Random29-6", - "effects": [ - {"type": "oscillation", "end": 4} + "Random30": { + "pools": ["Random"], + "lines": [ + {"text": "So, you're probably aware of how much my stomach capacity is...", "animation": "Thinking"}, + {"text": "Well, maybe it's not actually my...REAL, stomach capacity, so to speak.", "animation": "Surprised"}, + {"text": "You can...always push my limits. I mean, my tummy might hurt. But I'll stick it out. For you. And...our little...big plan.", "animation": "Horny"}, + {"text": "And, who knows? Maybe if you keep stuffing me, I'll be able to stuff more inside!", "animation": "Smug"}, + {"text": "Like a muscle! A big fat stuffed muscle! Train it to strengthen it!", "animation": "Surprised"} ] }, - "Random29-6": { - "text": "...haha, how'd you like THAT!", - "animation": "Smug", - "effects": [ - {"type": "oscillation", "start": 24, "end": 28} + "Random31": { + "pools": ["Random"], + "lines": [ + {"text": "...huh, what's that?!", "animation": "Surprised"}, + {"text": "You're saying...some humans would kill to...[screenshake][shake][sound=sfx/boom.ogg]BE[/shake] me?!", "animation": "Shocked"}, + {"text": "T-that's ridiculous! W-who would want to be a Pokémon? And a [color=0.251 1 0.251]Snivy[/color], too?!", "animation": "Surprised"}, + {"text": "Actually, well...maybe I can see their point. It [wave]DOES[/wave] feel great to be me.", "animation": "TailRub"}, + {"text": "How's that feel, lousy humans! [big][shake][screenshake]You'll NEVER be me! WAHAHAHAHAHA[/big]![/shake]", "animation": "Smug"} ] }, - "Random30": {"text": "So, you're probably aware of how much my stomach capacity is...", "animation": "Thinking", "next": "Random30-2"}, - "Random30-2": {"text": "Well, maybe it's not actually my...REAL, stomach capacity, so to speak.", "animation": "Surprised", "next": "Random30-3"}, - "Random30-3": {"text": "You can...always push my limits. I mean, my tummy might hurt. But I'll stick it out. For you. And...our little...big plan.", "animation": "Horny", "next": "Random30-4"}, - "Random30-4": {"text": "And, who knows? Maybe if you keep stuffing me, I'll be able to stuff more inside!", "animation": "Smug", "next": "Random30-5"}, - "Random30-5": {"text": "Like a muscle! A big fat stuffed muscle! Train it to strengthen it!", "animation": "Surprised"}, - "Random31": {"text": "...huh, what's that?!", "animation": "Surprised", "next": "Random31-2"}, - "Random31-2": { - "text": "You're saying...some humans would kill to...BE me?!", - "animation": "Shocked", - "next": "Random31-3", - "effects": [ - {"type": "screenshake", "start": 44, "end": 44}, - {"type": "shake", "start": 44, "end": 46}, - {"type": "sound", "start": 44, "end": 44, "sound": "sfx/boom.ogg"} + "Random32": { + "pools": ["Random"], + "lines": [ + {"text": "I'm going to be honest...", "animation": "Bummed"}, + {"text": "...being a [color=0.251 1 0.251]Grass Snake[/color] Pokémon, there's an expectation of me liking to eat things live.", "animation": "Bummed"}, + {"text": "And I'll just say...I've never really been interested in such a thing!", "animation": "HeadRubFull"}, + {"text": "I prefer my meals to inanimate, not living! I wouldn't want my food to fight back!", "animation": "Shocked"}, + {"text": "And I certainly don't want to eat any friends, current or potential!", "animation": "Cry"}, + {"text": "...w-wait. You're saying...some humans like...that? [big][screenshake]Like, LIKE like it? [shake][screenshake][sound=sfx/boom.ogg]Eating things live?![/shake][/big]", "animation": "Peeved"}, + {"text": "I-it's a whole genre?! And there's a word for it?!", "animation": "Shocked"}, + {"text": "I don't want to judge, but...", "animation": "Thinking"}, + {"text": "...actually, I really, [screenshake][shake]REALLY[/shake] do want to judge. I'm doing so in my head. Right now.", "animation": "Peeved"}, + {"text": "...although, if I am to become a continent-sized blob...I suppose that does mean...a few...[shake][screenshake][sound=sfx/boom.ogg]casualties[/shake].", "animation": "Thinking"}, + {"text": "I-I'm conflicted, okay?!", "animation": "Cry"} ] }, - "Random31-3": { - "text": "T-that's ridiculous! W-who would want to be a Pokémon? And a Snivy, too?!", - "animation": "Surprised", - "next": "Random31-4", - "effects": [ - { - "type": "color", - "start": 61, - "end": 66, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random31-4": { - "text": "Actually, well...maybe I can see their point. It DOES feel great to be me.", - "animation": "TailRub", - "next": "Random31-5", - "effects": [ - {"type": "oscillation", "start": 50, "end": 54} - ] - }, - "Random31-5": { - "text": "How's that feel, lousy humans! You'll NEVER be me! WAHAHAHAHAHA!", - "animation": "Smug", - "effects": [ - {"type": "big", "start": 32, "end": 64}, - {"type": "shake", "start": 32, "end": 65}, - {"type": "screenshake", "start": 32, "end": 32} - ] - }, - "Random32": {"text": "I'm going to be honest...", "animation": "Bummed", "next": "Random32-2"}, - "Random32-2": { - "text": "...being a Grass Snake Pokémon, there's an expectation of me liking to eat things live.", - "animation": "Bummed", - "next": "Random32-3", - "effects": [ - { - "type": "color", - "start": 11, - "end": 22, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random32-3": {"text": "And I'll just say...I've never really been interested in such a thing!", "animation": "HeadRubFull", "next": "Random32-4"}, - "Random32-4": {"text": "I prefer my meals to inanimate, not living! I wouldn't want my food to fight back!", "animation": "Shocked", "next": "Random32-5"}, - "Random32-5": {"text": "And I certainly don't want to eat any friends, current or potential!", "animation": "Cry", "next": "Random32-6"}, - "Random32-6": { - "text": "...w-wait. You're saying...some humans like...that? Like, LIKE like it? Eating things live?!", - "animation": "Peeved", - "next": "Random32-7", - "effects": [ - {"type": "big", "start": 53, "end": 93}, - {"type": "shake", "start": 73, "end": 93}, - {"type": "screenshake", "start": 73, "end": 73}, - {"type": "screenshake", "start": 53, "end": 53}, - {"type": "sound", "start": 73, "end": 73, "sound": "sfx/boom.ogg"} - ] - }, - "Random32-7": {"text": "I-it's a whole genre?! And there's a word for it?!", "animation": "Shocked", "next": "Random32-8"}, - "Random32-8": {"text": "I don't want to judge, but...", "animation": "Thinking", "next": "Random32-9"}, - "Random32-9": { - "text": "...actually, I really, REALLY do want to judge. I'm doing so in my head. Right now.", - "animation": "Peeved", - "next": "Random32-10", - "effects": [ - {"type": "screenshake", "start": 23, "end": 23}, - {"type": "shake", "start": 23, "end": 29} - ] - }, - "Random32-10": { - "text": "...although, if I am to become a continent-sized blob...I suppose that does mean...a few...casualties.", - "animation": "Thinking", - "next": "Random32-11", - "effects": [ - {"type": "shake", "start": 91, "end": 101}, - {"type": "screenshake", "start": 91, "end": 91}, - {"type": "sound", "start": 91, "end": 91, "sound": "sfx/boom.ogg"} - ] - }, - "Random32-11": {"text": "I-I'm conflicted, okay?!", "animation": "Cry"}, - "Random33": {"text": "You ask me if I play...games?", "animation": "Peeved", "next": "Random33-2"}, - "Random33-2": {"text": "I mean, what games can a Pokémon in the wild play? I guess I've done tag and hide and seek...", "animation": "Thinking", "next": "Random33-3"}, - "Random33-3": {"text": "...but what I've heard is that humans have these elaborate games projected on magic screens!", "animation": "Shocked", "next": "Random33-4"}, - "Random33-4": { - "text": "I hope there's a game out there where a Snivy likes me gets really fat...that'd be so cool!", - "animation": "Horny", - "effects": [ - { - "type": "color", - "start": 40, - "end": 45, - "color": [0.25098, 1, 0.25098] - }, - {"type": "oscillation", "start": 60, "end": 66} + "Random33": { + "pools": ["Random"], + "lines": [ + {"text": "You ask me if I play...games?", "animation": "Peeved"}, + {"text": "I mean, what games can a Pokémon in the wild play? I guess I've done tag and hide and seek...", "animation": "Thinking"}, + {"text": "...but what I've heard is that humans have these elaborate games projected on magic screens!", "animation": "Shocked"}, + {"text": "I hope there's a game out there where a [color=0.251 1 0.251]Snivy[/color] likes me gets [wave]really[/wave] fat...that'd be so cool!", "animation": "Horny"} ] }, "Random34": { - "text": "You ever wonder how I...move? Like, uh, how I \"animate\"?", - "animation": "Thinking", - "next": "Random34-2", - "effects": [ - {"type": "oscillation", "start": 47, "end": 54} - ] - }, - "Random34-2": {"text": "S-sorry, this is kind of a weird thought. Yeah, I know, bones, muscle, nerves and all that...", "animation": "Neutral", "next": "Random34-3"}, - "Random34-3": {"text": "But part of me thinks, I'm like, a bunch of layers...a bunch of little pieces, assembled together, that move gracefully into position...", "animation": "Thinking", "next": "Random34-4"}, - "Random34-4": {"text": "...like, taken from one big catalog, so to speak, and then just...meticulously...shifted places...to make me look how I am now.", "animation": "Bummed", "next": "Random34-5"}, - "Random34-5": {"text": "Whoever created me...it must've been hard for them! I have trouble coordinating my little hands sometimes, imagine coordinating a Pokémon into being!", "animation": "Surprised", "next": "Random34-6"}, - "Random34-6": {"text": "What's that process look like to them? What was the process to make that process possible? It sounds like a lot of hard work...", "animation": "Thinking", "next": "Random34-7"}, - "Random34-7": { - "text": "I-I'm just thinking philosophically! I-I'm not some sort of illusion, am I?!", - "animation": "Shocked", - "effects": [ - {"type": "big", "start": 37, "end": 76}, - {"type": "animation", "start": 37, "animation": "Cry"}, - {"type": "screenshake", "start": 37, "end": 37}, - {"type": "shake", "start": 37, "end": 76}, - {"type": "sound", "start": 37, "end": 37, "sound": "sfx/boom.ogg"} + "pools": ["Random"], + "lines": [ + {"text": "You ever wonder how I...move? Like, uh, how I \"[wave]animate[/wave]\"?", "animation": "Thinking"}, + {"text": "S-sorry, this is kind of a weird thought. Yeah, I know, bones, muscle, nerves and all that...", "animation": "Neutral"}, + {"text": "But part of me thinks, I'm like, a bunch of layers...a bunch of little pieces, assembled together, that move gracefully into position...", "animation": "Thinking"}, + {"text": "...like, taken from one big catalog, so to speak, and then just...meticulously...shifted places...to make me look how I am now.", "animation": "Bummed"}, + {"text": "Whoever created me...it must've been hard for them! I have trouble coordinating my little hands sometimes, imagine coordinating a Pokémon into being!", "animation": "Surprised"}, + {"text": "What's that process look like to them? What was the process to make that process possible? It sounds like a lot of hard work...", "animation": "Thinking"}, + {"text": "I-I'm just thinking philosophically! [big][animation=Cry][screenshake][shake][sound=sfx/boom.ogg]I-I'm not some sort of illusion, am I?![/shake][/big]", "animation": "Shocked"} ] }, "Random35": { - "text": "Have you ever heard of Jirachi..?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Have you ever heard of Jirachi..?", "animation": "Thinking"} + ], "choices": [ {"text": "The mythical..!", "next": "Random35-A"}, {"text": "Uh...", "next": "Random35-B"} ] }, - "Random35-A": {"text": "Indeed, you do know! How do you even know? It's just a myth, so I've heard!", "animation": "Surprised", "next": "Random35-2"}, - "Random35-B": {"text": "Jirachi is a Pokémon that can grant wishes! It's got a big star-shaped head, a tiny white body...or so they say.", "animation": "Thinking", "next": "Random35-2"}, - "Random35-2": {"text": "They say it wakes for only one week, bookended by thousand year naps...", "animation": "Neutral", "next": "Random35-3"}, - "Random35-3": {"text": "If I was ever lucky enough to encounter it, oh boy...", "animation": "Horny", "next": "Random35-4"}, - "Random35-4": { - "text": "First thing's first...try to break the rules! Infinite wishes! Me being able to grant wishes! Multiple Jirachi, even?!", - "animation": "Smug", - "next": "Random35-5", - "effects": [ - {"type": "shake", "start": 95, "end": 119}, - {"type": "screenshake", "start": 95, "end": 95} + "Random35-A": { + "lines": [ + {"text": "Indeed, you do know! How do you even know? It's just a myth, so I've heard!", "animation": "Surprised"} + ], + "next": "Random35-2" + }, + "Random35-B": { + "lines": [ + {"text": "Jirachi is a Pokémon that can grant wishes! It's got a big star-shaped head, a tiny white body...or so they say.", "animation": "Thinking"} + ], + "next": "Random35-2" + }, + "Random35-2": { + "lines": [ + {"text": "They say it wakes for only one week, bookended by thousand year naps...", "animation": "Neutral"}, + {"text": "If I was ever lucky enough to encounter it, oh boy...", "animation": "Horny"}, + {"text": "First thing's first...try to break the rules! Infinite wishes! Me being able to grant wishes! [shake][screenshake]Multiple Jirachi, even?![/shake]", "animation": "Smug"}, + {"text": "I'm hoping there isn't a big book of rules! I want to trick the system!", "animation": "Peeved"}, + {"text": "...surely I could at least get my own pocket dimension I have total control over!", "animation": "Eager"}, + {"text": "As soon as I've got some immense power...oh my goodness... [shake][big][screenshake]OH MY GOODNESS...[/big][/shake]", "animation": "Horny"}, + {"text": "You [wave][screenshake]KNOW[/wave] I'm getting huge! Like, immediately after I get that power!!", "animation": "Horny"}, + {"text": "Maybe it'd start slow. Maybe it'd be like an exponential rate of weight gain...", "animation": "Smug"}, + {"text": "Oh my ARCEUS I'd be growing so fast. Actually, I would just never stop growing. [shake][screenshake]Ever.[/shake]", "animation": "Horny"}, + {"text": "My belly so wide it'd blot out the sun. My tail a big chunky unit a mile long and thick. Just to start, of course!!", "animation": "Horny"}, + {"text": "It CERTAINLY wouldn't stop there! Gosh, to have that power, swelling inside of me, me being able to grant any desire I wish...I'd faint!", "animation": "Eager"}, + {"text": "I'D GET SO HUGE! I'D BE MY OWN PLANET! MY OWN GALAXY, MY OWN UNIVERSE!! [big][shake][sound=sfx/boom.ogg]A BIG CELESTIAL SNIVY UTTERLY BURIED IN FLAB!!!!!!!!![/shake][/big]", "animation": "Horny"}, + {"text": "...and maybe the Jirachi could join in too! The descriptions make it sound so cute...", "animation": "Eager"}, + {"text": "...alas. I bet my entire lifetime will be during that nap. Just my luck.", "animation": "Bummed"}, + {"text": "...please, human! [big][screenshake]Be my wish-granter, could you?[/big]!", "animation": "Neutral"} ] }, - "Random35-5": {"text": "I'm hoping there isn't a big book of rules! I want to trick the system!", "animation": "Peeved", "next": "Random35-6"}, - "Random35-6": {"text": "...surely I could at least get my own pocket dimension I have total control over!", "animation": "Eager", "next": "Random35-7"}, - "Random35-7": { - "text": "As soon as I've got some immense power...oh my goodness... OH MY GOODNESS...", - "animation": "Horny", - "next": "Random35-8", - "effects": [ - {"type": "shake", "start": 59, "end": 76}, - {"type": "big", "start": 59, "end": 76}, - {"type": "screenshake", "start": 59, "end": 59} - ] - }, - "Random35-8": { - "text": "You KNOW I'm getting huge! Like, immediately after I get that power!!", - "animation": "Horny", - "next": "Random35-9", - "effects": [ - {"type": "oscillation", "start": 4, "end": 8}, - {"type": "screenshake", "start": 4, "end": 4} - ] - }, - "Random35-9": {"text": "Maybe it'd start slow. Maybe it'd be like an exponential rate of weight gain...", "animation": "Smug", "next": "Random35-10"}, - "Random35-10": { - "text": "Oh my ARCEUS I'd be growing so fast. Actually, I would just never stop growing. Ever.", - "animation": "Horny", - "next": "Random35-11", - "effects": [ - {"type": "shake", "start": 81, "end": 86}, - {"type": "screenshake", "start": 81, "end": 81} - ] - }, - "Random35-11": {"text": "My belly so wide it'd blot out the sun. My tail a big chunky unit a mile long and thick. Just to start, of course!!", "animation": "Horny", "next": "Random35-12"}, - "Random35-12": {"text": "It CERTAINLY wouldn't stop there! Gosh, to have that power, swelling inside of me, me being able to grant any desire I wish...I'd faint!", "animation": "Eager", "next": "Random35-13"}, - "Random35-13": { - "text": "I'D GET SO HUGE! I'D BE MY OWN PLANET! MY OWN GALAXY, MY OWN UNIVERSE!! A BIG CELESTIAL SNIVY UTTERLY BURIED IN FLAB!!!!!!!!!", - "animation": "Horny", - "next": "Random35-14", - "effects": [ - {"type": "big", "start": 73, "end": 126}, - {"type": "shake", "start": 73, "end": 126}, - {"type": "sound", "start": 73, "end": 73, "sound": "sfx/boom.ogg"} - ] - }, - "Random35-14": {"text": "...and maybe the Jirachi could join in too! The descriptions make it sound so cute...", "animation": "Eager", "next": "Random35-15"}, - "Random35-15": {"text": "...alas. I bet my entire lifetime will be during that nap. Just my luck.", "animation": "Bummed", "next": "Random35-16"}, - "Random35-16": { - "text": "...please, human! Be my wish-granter, could you?!", - "animation": "Neutral", - "effects": [ - {"type": "big", "start": 19, "end": 49}, - {"type": "screenshake", "start": 19, "end": 19} - ] - }, - "Random36": {"text": "There's lots of Pokémon shaped like me out there. You know...serpentine ones.", "animation": "Thinking", "next": "Random36-2"}, - "Random36-2": {"text": "And, yeah...I'm thinking I'm the best!", "animation": "Smug", "next": "Random36-3"}, - "Random36-3": { - "text": "Onix and Steelix? Yeah, you've got defense...what else?!", - "animation": "Thinking", - "next": "Random36-4", - "effects": [ - { - "type": "color", - "start": 9, - "end": 16, - "color": [0.501961, 0.501961, 0.501961] - }, - { - "type": "color", - "end": 4, - "color": [0.501961, 0.501961, 0.501961] - } - ] - }, - "Random36-4": { - "text": "Ekans and Arbok? Yeah, ooh, so intimidating, with that fake face! Get a real scary one!", - "animation": "Smug", - "next": "Random36-5", - "effects": [ - { - "type": "color", - "end": 5, - "color": [0.501961, 0.25098, 1] - }, - { - "type": "color", - "start": 10, - "end": 15, - "color": [0.501961, 0.25098, 1] - } - ] - }, - "Random36-5": { - "text": "Dunsparce and Dudunsparce? Yeah, I don't know...they don't sound real to me!", - "animation": "Eager", - "next": "Random36-6", - "effects": [ - { - "type": "color", - "start": 14, - "end": 25, - "color": [1, 1, 0.25098] - }, - { - "type": "color", - "end": 9, - "color": [1, 1, 0.25098] - } - ] - }, - "Random36-6": { - "text": "Silicobra and Sandaconda? What can you do, all wrapped up like that?", - "animation": "Bummed", - "next": "Random36-7", - "effects": [ - { - "type": "color", - "start": 14, - "end": 24, - "color": [1, 0.784314, 0.25098] - }, - { - "type": "color", - "end": 9, - "color": [1, 0.784314, 0.25098] - } - ] - }, - "Random36-7": { - "text": "Me, and my species' evolutions...so regal, so proud! So...perfect. The clear winner~!", - "animation": "Smug", - "effects": [ - {"type": "oscillation", "start": 67, "end": 86} + "Random36": { + "pools": ["Random"], + "lines": [ + {"text": "There's lots of Pokémon shaped like me out there. You know...serpentine ones.", "animation": "Thinking"}, + {"text": "And, yeah...I'm thinking I'm the best!", "animation": "Smug"}, + {"text": "[color=0.502 0.502 0.502]Onix[/color] and [color=0.502 0.502 0.502]Steelix[/color]? Yeah, you've got defense...what else?!", "animation": "Thinking"}, + {"text": "[color=0.502 0.251 1]Ekans[/color] and [color=0.502 0.251 1]Arbok[/color]? Yeah, ooh, so intimidating, with that fake face! Get a real scary one!", "animation": "Smug"}, + {"text": "[color=1 1 0.251]Dunsparce[/color] and [color=1 1 0.251]Dudunsparce[/color]? Yeah, I don't know...they don't sound real to me!", "animation": "Eager"}, + {"text": "[color=1 0.7843 0.251]Silicobra[/color] and [color=1 0.7843 0.251]Sandaconda[/color]? What can you do, all wrapped up like that?", "animation": "Bummed"}, + {"text": "Me, and my species' evolutions...so regal, so proud! So...perfect. [wave] The clear winner~![/wave]", "animation": "Smug"} ] }, "Random37": { - "text": "When humans think of fatness and Pokémon together...they typically think of Snorlax.", - "animation": "Thinking", - "next": "Random37-2", - "effects": [ - { - "type": "color", - "start": 76, - "end": 83, - "color": [0.25098, 0.501961, 1] - } + "pools": ["Random"], + "lines": [ + {"text": "When humans think of fatness and Pokémon together...they typically think of [color=0.251 0.502 1]Snorlax[/color].", "animation": "Thinking"}, + {"text": "I'll just say it...in terms of like, appeal...they don't really have it!", "animation": "Bummed"}, + {"text": "Like, I'd definitely sleep on a [color=0.251 0.502 1]Snorlax[/color]'s tummy. There's definitely positive traits about them...", "animation": "Thinking"}, + {"text": "...but, like, not like...a...GRATIFYING appeal. The kind that makes you...[wave][screenshake]tingly[/wave]...down there.", "animation": "Bummed"}, + {"text": "You know what Pokémon should be the first name in fatness?", "animation": "Smug"}, + {"text": "...actually, you probably already know the answer to that.", "animation": "Bummed"}, + {"text": "...well, you and I better make history! [big][shake]Get to making me huge, chop chop![/shake][/big]", "animation": "Horny"} ] }, - "Random37-2": {"text": "I'll just say it...in terms of like, appeal...they don't really have it!", "animation": "Bummed", "next": "Random37-3"}, - "Random37-3": { - "text": "Like, I'd definitely sleep on a Snorlax's tummy. There's definitely positive traits about them...", - "animation": "Thinking", - "next": "Random37-4", - "effects": [ - { - "type": "color", - "start": 32, - "end": 39, - "color": [0.25098, 0.501961, 1] - } - ] - }, - "Random37-4": { - "text": "...but, like, not like...a...GRATIFYING appeal. The kind that makes you...tingly...down there.", - "animation": "Bummed", - "next": "Random37-5", - "effects": [ - {"type": "oscillation", "start": 75, "end": 81}, - {"type": "screenshake", "start": 75, "end": 75} - ] - }, - "Random37-5": {"text": "You know what Pokémon should be the first name in fatness?", "animation": "Smug", "next": "Random37-6"}, - "Random37-6": {"text": "...actually, you probably already know the answer to that.", "animation": "Bummed", "next": "Random37-7"}, - "Random37-7": { - "text": "...well, you and I better make history! Get to making me huge, chop chop!", - "animation": "Horny", - "effects": [ - {"type": "big", "start": 41, "end": 74}, - {"type": "shake", "start": 41, "end": 74} - ] - }, - "Random38": {"text": "So I hear humans quite like illustrating Pokémon! That's quite good to know.", "animation": "Thinking", "next": "Random38-2"}, - "Random38-2": {"text": "But...I hear humans also take...creative liberties. Sometimes, they make the Pokémon more like them...more human-like.", "animation": "Bummed", "next": "Random38-3"}, - "Random38-3": { - "text": "Well, what do you think? Which do you prefer?", - "animation": "Thinking", + "Random38": { + "pools": ["Random"], + "lines": [ + {"text": "So I hear humans quite like illustrating Pokémon! That's quite good to know.", "animation": "Thinking"}, + {"text": "But...I hear humans also take...creative liberties. Sometimes, they make the Pokémon more like them...more human-like.", "animation": "Bummed"}, + {"text": "Well, what do you think? Which do you prefer?", "animation": "Thinking"} + ], "choices": [ {"text": "On model!", "next": "Random38-3-A"}, {"text": "Off model!", "next": "Random38-3-B"}, {"text": "Artist's choice", "next": "Random38-3-C"} ] }, - "Random38-3-A": {"text": "A fellow connoisseur! If someone's drawing Pokémon, they should actually look at the reference!", "animation": "Surprised", "next": "Random38-4"}, - "Random38-3-B": {"text": "R-really? Well, then, if you prefer humanoids, why not go elsewhere and find a humanoid to fatten instead!!", "animation": "Peeved", "next": "Random38-4"}, - "Random38-3-C": {"text": "Well...I suppose there is nothing stopping them from doing that. Their creative vision, and all...", "animation": "Thinking", "next": "Random38-4"}, - "Random38-4": {"text": "I do prefer Pokémon as they are! I hear humans, when drawing lady Pokémon, they add...b-boobs!", "animation": "Shocked", "next": "Random38-5"}, - "Random38-5": { - "text": "Unless it's a Nidoqueen or something, I just don't think it makes sense! Do they need boobs on everything to enjoy something..?", - "animation": "Thinking", - "next": "Random38-6", - "effects": [ - { - "type": "color", - "start": 14, - "end": 23, - "color": [0.25098, 0.501961, 1] - } + "Random38-3-A": { + "lines": [ + {"text": "A fellow connoisseur! If someone's drawing Pokémon, they should actually look at the reference!", "animation": "Surprised"} + ], + "next": "Random38-4" + }, + "Random38-3-B": { + "lines": [ + {"text": "R-really? Well, then, if you prefer humanoids, why not go elsewhere and find a humanoid to fatten instead!!", "animation": "Peeved"} + ], + "next": "Random38-4" + }, + "Random38-3-C": { + "lines": [ + {"text": "Well...I suppose there is nothing stopping them from doing that. Their creative vision, and all...", "animation": "Thinking"} + ], + "next": "Random38-4" + }, + "Random38-4": { + "lines": [ + {"text": "I do prefer Pokémon as they are! I hear humans, when drawing lady Pokémon, they add...b-boobs!", "animation": "Shocked"}, + {"text": "Unless it's a [color=0.251 0.502 1]Nidoqueen[/color] or something, I just don't think it makes sense! Do they need boobs on everything to enjoy something..?", "animation": "Thinking"}, + {"text": "Well, they are humans...humans are primed to enjoy such things, right? I guess I can't blame them. It's just instinct, I suppose...", "animation": "Bummed"} ] }, - "Random38-6": {"text": "Well, they are humans...humans are primed to enjoy such things, right? I guess I can't blame them. It's just instinct, I suppose...", "animation": "Bummed"}, "Random39": { - "text": "Hey, quick question...are you something of an artist? Any sort of medium...", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Hey, quick question...are you something of an artist? Any sort of medium...", "animation": "Thinking"} + ], "choices": [ {"text": "I'm a pro!", "next": "Random39-A"}, {"text": "I do my best...", "next": "Random39-B"}, @@ -2636,142 +1154,96 @@ ] }, "Random39-A": { - "text": "Really?! A big shot, are you?!", - "animation": "Surprised", - "next": "Random39-2", - "effects": [ - {"type": "screenshake", "end": 1} + "lines": [ + {"text": "[screenshake]Really?! A big shot, are you?!", "animation": "Surprised"} + ], + "next": "Random39-2" + }, + "Random39-B": { + "lines": [ + {"text": "It's a skill to be constantly improved and molded, I suppose.", "animation": "Thinking"} + ], + "next": "Random39-2" + }, + "Random39-C": { + "lines": [ + {"text": "I'm sure there's a creative bone in your body somewhere! Even creatures like me have it!", "animation": "Bummed"} + ], + "next": "Random39-2" + }, + "Random39-2": { + "lines": [ + {"text": "Well...out in the wild, it's certainly hard to try and leave a mark on the world!", "animation": "Bummed"}, + {"text": "Your best bet is some sticks and mud. Or, some sand or snow. Maybe if you're lucky...you can get some pigments to put into a cave.", "animation": "Thinking"}, + {"text": "You can't really build some good skills when that's all you've got at your disposal...and a lot of it is temporary.", "animation": "Bummed"}, + {"text": "I'd want to see some nice pictures...particularly of me being very heavy. Do you know any humans who draw such a thing? I'd love to meet them...", "animation": "Horny"} ] }, - "Random39-B": {"text": "It's a skill to be constantly improved and molded, I suppose.", "animation": "Thinking", "next": "Random39-2"}, - "Random39-C": {"text": "I'm sure there's a creative bone in your body somewhere! Even creatures like me have it!", "animation": "Bummed", "next": "Random39-2"}, - "Random39-2": {"text": "Well...out in the wild, it's certainly hard to try and leave a mark on the world!", "animation": "Bummed", "next": "Random39-3"}, - "Random39-3": {"text": "Your best bet is some sticks and mud. Or, some sand or snow. Maybe if you're lucky...you can get some pigments to put into a cave.", "animation": "Thinking", "next": "Random39-4"}, - "Random39-4": {"text": "You can't really build some good skills when that's all you've got at your disposal...and a lot of it is temporary.", "animation": "Bummed", "next": "Random39-5"}, - "Random39-5": {"text": "I'd want to see some nice pictures...particularly of me being very heavy. Do you know any humans who draw such a thing? I'd love to meet them...", "animation": "Horny"}, - "Random40": {"text": "M-my hobbies?", "animation": "Surprised", "next": "Random40-2"}, - "Random40-2": {"text": "W-well, I, um...", "animation": "Thinking", "next": "Random40-3"}, - "Random40-3": {"text": "...I did like walking. And eating, but that's not much of a hobby. I also...collect all sorts of sticks I find on the ground.", "animation": "Surprised", "next": "Random40-4"}, - "Random40-4": {"text": "...well, at this rate, I don't think I'll be doing the first thing for much longer. I always did consider it a temporary activity!", "animation": "Smug", "next": "Random40-5"}, - "Random40-5": {"text": "I guess I also...am trying to paint. I wanted to paint a self-portrait of me... large, of course, but it's hard to get a reference...", "animation": "Thinking", "next": "Random40-6"}, - "Random40-6": { - "text": "Plus, I don't have much of a mental note of what a bigger Snivy would look like..!", - "animation": "Peeved", - "next": "Random40-7", - "effects": [ - { - "type": "color", - "start": 58, - "end": 63, - "color": [0.25098, 1, 0.25098] - } + "Random40": { + "pools": ["Random"], + "lines": [ + {"text": "M-my hobbies?", "animation": "Surprised"}, + {"text": "W-well, I, um...", "animation": "Thinking"}, + {"text": "...I did like walking. And eating, but that's not much of a hobby. I also...collect all sorts of sticks I find on the ground.", "animation": "Surprised"}, + {"text": "...well, at this rate, I don't think I'll be doing the first thing for much longer. I always did consider it a temporary activity!", "animation": "Smug"}, + {"text": "I guess I also...am trying to paint. I wanted to paint a self-portrait of me... large, of course, but it's hard to get a reference...", "animation": "Thinking"}, + {"text": "Plus, I don't have much of a mental note of what a bigger [color=0.251 1 0.251]Snivy[/color] would look like..!", "animation": "Peeved"}, + {"text": "...that of course means you and I will need to figure that out! Do you have anything that can preserve images? Take some, if you can!!", "animation": "Surprised"} ] }, - "Random40-7": {"text": "...that of course means you and I will need to figure that out! Do you have anything that can preserve images? Take some, if you can!!", "animation": "Surprised"}, - "Random41": {"text": "So, some humans...I hear they like Pokémon...", "animation": "Thinking", "next": "Random41-2"}, - "Random41-2": {"text": "...I mean, not just, LIKE Pokémon. They LIKE like Pokémon.", "animation": "Shocked", "next": "Random41-3"}, - "Random41-3": {"text": "Now, um...we're good friends, already, I know. But, um...", "animation": "Surprised", "next": "Random41-4"}, - "Random41-4": { - "text": "...y-you think we could be, um...m-more than that?!", - "animation": "Shocked", + "Random41": { + "pools": ["Random"], + "lines": [ + {"text": "So, some humans...I hear they like Pokémon...", "animation": "Thinking"}, + {"text": "...I mean, not just, LIKE Pokémon. They LIKE like Pokémon.", "animation": "Shocked"}, + {"text": "Now, um...we're good friends, already, I know. But, um...", "animation": "Surprised"}, + {"text": "[screenshake]...y-you think we could be, um...m-more than that?!", "animation": "Shocked"} + ], "choices": [ {"text": "Marry me.", "next": "Random41-4-A"}, {"text": "Yeah, maybe!", "next": "Random41-4-B"}, {"text": "Just friends...", "next": "Random41-4-C"}, {"text": "I hate you.", "next": "Random41-4-D"} - ], - "effects": [ - {"type": "screenshake", "end": 1} ] }, "Random41-4-A": { - "text": "WHAT?! D-didn't we JUST meet?!?!?!", - "animation": "Angry", - "effects": [ - {"type": "big", "end": 8}, - {"type": "shake", "end": 8}, - {"type": "screenshake"}, - {"type": "sound", "sound": "sfx/boom.ogg"} + "lines": [ + {"text": "[big][shake][screenshake][sound=sfx/boom.ogg]WHAT?! [/shake][/big]D-didn't we JUST meet?!?!?!", "animation": "Angry"} ] }, "Random41-4-B": { - "text": "O-oh! Really! Well, um...m-maybe give me s-some time to think about it, heh...", - "animation": "Horny", - "effects": [ - {"type": "screenshake"}, - {"type": "shake", "end": 4} + "lines": [ + {"text": "[screenshake][shake]O-oh[/shake]! Really! Well, um...m-maybe give me s-some time to think about it, heh...", "animation": "Horny"} ] }, "Random41-4-C": { - "text": "That's fine! You're a human, I'm a Pokémon..! Two different worlds...but we can always be friends~!", - "animation": "Eager", - "effects": [ - {"type": "oscillation", "start": 91, "end": 99} + "lines": [ + {"text": "That's fine! You're a human, I'm a Pokémon..! Two different worlds...but we can always be [wave]friends~[/wave]!", "animation": "Eager"} ] }, "Random41-4-D": { - "text": "W-what?! After all w-we've been through? Please tell me you're just joking...", - "animation": "Cry", - "effects": [ - {"type": "screenshake"}, - {"type": "big", "end": 10}, - {"type": "shake", "end": 8} + "lines": [ + {"text": "[screenshake][big][shake]W-what?![/shake] [/big]After all w-we've been through? Please tell me you're just joking...", "animation": "Cry"} ] }, - "Random42": {"text": "Do you know about Shiny Pokémon?", "animation": "Thinking", "next": "Random42-2"}, - "Random42-2": {"text": "I've never seen one! They must be fabulously rare!", "animation": "Thinking", "next": "Random42-3"}, - "Random42-3": {"text": "...but I don't know if I'd look good, if I was Shiny...", "animation": "Bummed", "next": "Random42-4"}, - "Random42-4": {"text": "What do you suppose a Shiny Snivy looks like?", "animation": "Thinking", "next": "Random42-5"}, - "Random42-5": { - "text": "Maybe it's a super cool color change! Like I'm a scary black and red! The colors of darkness and blood!", - "animation": "Eager", - "next": "Random42-6", - "effects": [ - { - "type": "color", - "start": 65, - "end": 68, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 97, - "end": 102, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 84, - "end": 92, - "color": [0.25098, 0.25098, 0.25098] - }, - { - "type": "color", - "start": 55, - "end": 60, - "color": [0.25098, 0.25098, 0.25098] - } - ] - }, - "Random42-6": {"text": "...sorry, maybe that came off a little edgy.", "animation": "Bummed", "next": "Random42-7"}, - "Random42-7": {"text": "Well...", "animation": "Thinking", "next": "Random42-8"}, - "Random42-8": { - "text": "...honestly, it's probably just something lame. Like I'd be blue or something... Boring!", - "animation": "Thinking", - "effects": [ - { - "type": "color", - "start": 60, - "end": 64, - "color": [0.25098, 0.501961, 0.501961] - }, - {"type": "screenshake", "start": 81, "end": 81}, - {"type": "oscillation", "start": 81, "end": 88} + "Random42": { + "pools": ["Random"], + "lines": [ + {"text": "Do you know about Shiny Pokémon?", "animation": "Thinking"}, + {"text": "I've never seen one! They must be fabulously rare!", "animation": "Thinking"}, + {"text": "...but I don't know if I'd look good, if I was Shiny...", "animation": "Bummed"}, + {"text": "What do you suppose a Shiny Snivy looks like?", "animation": "Thinking"}, + {"text": "Maybe it's a super cool color change! Like I'm a scary [color=0.251 0.251 0.251]black[/color] and [color=1 0.25 0.25]red[/color]! The colors of [color=0.251 0.251 0.251]darkness[/color] and [color=1 0.25 0.25]blood[/color]!", "animation": "Eager"}, + {"text": "...sorry, maybe that came off a little edgy.", "animation": "Bummed"}, + {"text": "Well...", "animation": "Thinking"}, + {"text": "...honestly, it's probably just something lame. Like I'd be [color=0.251 0.502 0.502]blue[/color] or something... [screenshake][wave]Boring![/wave]", "animation": "Thinking"} ] }, "Random43": { - "text": "You know what season it is, right?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "You know what season it is, right?", "animation": "Thinking"} + ], "choices": [ {"text": "Spring", "next": "Random43-A"}, {"text": "Summer", "next": "Random43-B"}, @@ -2780,232 +1252,106 @@ ] }, "Random43-A": { - "text": "Ah, Spring...such a splendid time of year! One of the best for Grass-types, obviously!", - "animation": "Eager", - "next": "Random43-A-2", - "effects": [ - { - "type": "color", - "start": 63, - "end": 68, - "color": [0.25098, 1, 0.25098] - } - ] + "lines": [ + {"text": "Ah, Spring...such a splendid time of year! One of the best for [color=0.251 1 0.251]Grass[/color]-types, obviously!", "animation": "Eager"}, + {"text": "The flowers in bloom, the gentle wind whooshing around you, and of course...the Berries being ready to harvest!", "animation": "Neutral"}, + {"text": "...by the way, I don't get allergies, unlike you silly humans.", "animation": "Smug"} + ], + "next": "Random43-2" }, - "Random43-A-2": {"text": "The flowers in bloom, the gentle wind whooshing around you, and of course...the Berries being ready to harvest!", "animation": "Neutral", "next": "Random43-A-3"}, - "Random43-A-3": {"text": "...by the way, I don't get allergies, unlike you silly humans.", "animation": "Smug", "next": "Random43-2"}, "Random43-B": { - "text": "Summer! I know a lot of humans say it's their favorite, but...I just can't quite stand the heat!", - "animation": "Peeved", - "next": "Random43-B-2", - "effects": [ - {"type": "screenshake", "start": 62, "end": 62} + "lines": [ + {"text": "Summer! I know a lot of humans say it's their favorite, but...[screenshake]I just can't quite stand the heat!", "animation": "Peeved"}, + {"text": "It's like...there's hardly many ways to cool yourself off...", "animation": "Thinking"}, + {"text": "I suppose going to the beach is nice, but it's not usually a place for a [color=0.251 1 0.251]Grass[/color]-type like me...I am weak to [color=1 0.25 0.25]Fire[/color], after all...", "animation": "Thinking"} + ], + "next": "Random43-2" + }, + "Random43-C": { + "lines": [ + {"text": "Autumn, or Fall...well, the trees all lose their leaves, but...thankfully, I don't lose mine!", "animation": "Shocked"}, + {"text": "It's a nice time of year. But it does get colder around that time...more reasons to get all the food you can before winter comes around.", "animation": "Smug"} + ], + "next": "Random43-2" + }, + "Random43-D": { + "lines": [ + {"text": "Winter! Snow abound! Frosty wind whipping your head!", "animation": "Surprised"}, + {"text": "And, of course...a perfect time to stay bundled up, eat all you can and pack on the winter weight!", "animation": "Horny"} + ], + "next": "Random43-2" + }, + "Random43-2": { + "lines": [ + {"text": "By the way, there might be special Poké Puffs out there that represent each of the four seasons! Think you could fetch me one to devour, hm?", "animation": "Eager"} ] }, - "Random43-B-2": {"text": "It's like...there's hardly many ways to cool yourself off...", "animation": "Thinking", "next": "Random43-B-3"}, - "Random43-B-3": { - "text": "I suppose going to the beach is nice, but it's not usually a place for a Grass-type like me...I am weak to Fire, after all...", - "animation": "Thinking", - "next": "Random43-2", - "effects": [ - { - "type": "color", - "start": 73, - "end": 78, - "color": [0.25098, 1, 0.25098] - }, - { - "type": "color", - "start": 107, - "end": 111, - "color": [1, 0.25, 0.25] - } + "Random44": { + "pools": ["Random"], + "lines": [ + {"text": "You know...sometimes I wish I was taller.", "animation": "Thinking"}, + {"text": "Like, yeah yeah, I'm the [color=0.251 1 0.251]Snivy[/color] who's all about getting bigger in the horizontal way, not the vertical way...", "animation": "Smug"}, + {"text": "...but I don't think I'd be quite opposed to that, too. At least a little taller would be useful. And maybe kind of cute.", "animation": "Thinking"}, + {"text": "But, get this: what if I I was tall, AND fat?! A match made in heaven!!", "animation": "Eager"}, + {"text": "I hear Pokémon Trainers can have a special bracelet that makes their Pokémon [shake][screenshake]SUPER[/shake] tall!", "animation": "Surprised"}, + {"text": "...look, when you're done fattening me up, see if you can find that bracelet, huh?!", "animation": "Horny"} ] }, - "Random43-C": {"text": "Autumn, or Fall...well, the trees all lose their leaves, but...thankfully, I don't lose mine!", "animation": "Shocked", "next": "Random43-C-2"}, - "Random43-C-2": {"text": "It's a nice time of year. But it does get colder around that time...more reasons to get all the food you can before winter comes around.", "animation": "Smug", "next": "Random43-2"}, - "Random43-D": {"text": "Winter! Snow abound! Frosty wind whipping your head!", "animation": "Surprised", "next": "Random43-D-2"}, - "Random43-D-2": {"text": "And, of course...a perfect time to stay bundled up, eat all you can and pack on the winter weight!", "animation": "Horny", "next": "Random43-2"}, - "Random43-2": {"text": "By the way, there might be special Poké Puffs out there that represent each of the four seasons! Think you could fetch me one to devour, hm?", "animation": "Eager"}, - "Random44": {"text": "You know...sometimes I wish I was taller.", "animation": "Thinking", "next": "Random44-2"}, - "Random44-2": { - "text": "Like, yeah yeah, I'm the Snivy who's all about getting bigger in the horizontal way, not the vertical way...", - "animation": "Smug", - "next": "Random44-3", - "effects": [ - { - "type": "color", - "start": 25, - "end": 30, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random44-3": {"text": "...but I don't think I'd be quite opposed to that, too. At least a little taller would be useful. And maybe kind of cute.", "animation": "Thinking", "next": "Random44-4"}, - "Random44-4": {"text": "But, get this: what if I I was tall, AND fat?! A match made in heaven!!", "animation": "Eager", "next": "Random44-5"}, - "Random44-5": { - "text": "I hear Pokémon Trainers can have a special bracelet that makes their Pokémon SUPER tall!", - "animation": "Surprised", - "next": "Random44-6", - "effects": [ - {"type": "shake", "start": 77, "end": 82}, - {"type": "screenshake", "start": 77, "end": 77} - ] - }, - "Random44-6": {"text": "...look, when you're done fattening me up, see if you can find that bracelet, huh?!", "animation": "Horny"}, "Random45": { - "text": "You ever hear of Apocalypse Arbok?!", - "animation": "Surprised", - "next": "Random45-2", - "effects": [ - { - "type": "color", - "start": 17, - "end": 33, - "color": [0.501961, 0.25098, 1] - } + "pools": ["Random"], + "lines": [ + {"text": "You ever hear of [color=0.502 0.251 1]Apocalypse Arbok[/color]?!", "animation": "Surprised"}, + {"text": "A brave bounty hunting Pokémon from far out west! Had some sort of contraption that fired...boomeranging [color=0.502 0.251 1]Ekans[/color]?!", "animation": "Shocked"}, + {"text": "Their greatest adventure is when they found themselves hunting a strange new foe...malicious [color=1 0.25 0.25]Slurpuff[/color] and [color=0.251 0.251 1]Vanilluxe[/color]!", "animation": "Surprised"}, + {"text": "Their other adventure when they had some [color=1 0.25 0.25]Alcremie[/color] they had to feed always felt underwhelming, though...unfinished, perhaps.", "animation": "Thinking"}, + {"text": "...wait, am I thinking of a Pokémon, or something else..?", "animation": "Smug"} ] }, - "Random45-2": { - "text": "A brave bounty hunting Pokémon from far out west! Had some sort of contraption that fired...boomeranging Ekans?!", - "animation": "Shocked", - "next": "Random45-3", - "effects": [ - { - "type": "color", - "start": 105, - "end": 110, - "color": [0.501961, 0.25098, 1] - } + "Random46": { + "pools": ["Random"], + "lines": [ + {"text": "Gosh, you've really racked my brain...", "animation": "Thinking"}, + {"text": "...or maybe we haven't even talked that much yet. Time can fly by quickly.", "animation": "Surprised"}, + {"text": "If you're wondering what my internal monologue sounds like...", "animation": "Thinking"}, + {"text": "...it says a lot of things like [screenshake][shake][big]\"[sound=sfx/boom.ogg]GET FATTER [screenshake][sound=sfx/boom.ogg]GET FATTER [screenshake][sound=sfx/boom.ogg]GET FATTER.\"[/big][/shake]", "animation": "Horny"}, + {"text": "Could it be some subliminal message? Any guesses on what it means?", "animation": "Smug"} ] }, - "Random45-3": { - "text": "Their greatest adventure is when they found themselves hunting a strange new foe...malicious Slurpuff and Vanilluxe!", - "animation": "Surprised", - "next": "Random45-4", - "effects": [ - { - "type": "color", - "start": 93, - "end": 101, - "color": [1, 0.25, 0.25] - }, - { - "type": "color", - "start": 106, - "end": 115, - "color": [0.25098, 0.25098, 1] - } + "Random47": { + "pools": ["Random"], + "lines": [ + {"text": "Sometimes, when I close my eyes, I see a swirling circle of different, smaller circles...", "animation": "Thinking"}, + {"text": "They all rotate in unison, orbiting around a big white circle. And they all have different colors...", "animation": "Surprised"}, + {"text": "...some sparkles come from the corners, and come for the white circle. They're the same colors as the little circles...", "animation": "Thinking"}, + {"text": "Are they good or bad? I don't quite know. The circles do erase the sparkles, though...", "animation": "Thinking"}, + {"text": "...sorry, I'm rambling about something again. Maybe my brain is being beamed with subliminal messaging...", "animation": "Surprised"} ] }, - "Random45-4": { - "text": "Their other adventure when they had some Alcremie they had to feed always felt underwhelming, though...unfinished, perhaps.", - "animation": "Thinking", - "next": "Random45-5", - "effects": [ - { - "type": "color", - "start": 41, - "end": 49, - "color": [1, 0.25, 0.25] - } + "Random48": { + "pools": ["Random"], + "lines": [ + {"text": "....hnnnngah!", "animation": "Surprised"}, + {"text": "[shake][screenshake]Blah blah blah blah blah![/shake]", "animation": "Surprised"}, + {"text": "[wave][screenshake]Wawawawawawawawawa![/wave]", "animation": "Thinking"}, + {"text": "...I'm not going crazy! I had a little food stuck in my throat, and it was all phlegmy...", "animation": "Peeved"}, + {"text": "...okay, maybe I AM going crazy...", "animation": "Cry"} ] }, - "Random45-5": {"text": "...wait, am I thinking of a Pokémon, or something else..?", "animation": "Smug"}, - "Random46": {"text": "Gosh, you've really racked my brain...", "animation": "Thinking", "next": "Random46-2"}, - "Random46-2": {"text": "...or maybe we haven't even talked that much yet. Time can fly by quickly.", "animation": "Surprised", "next": "Random46-3"}, - "Random46-3": {"text": "If you're wondering what my internal monologue sounds like...", "animation": "Thinking", "next": "Random46-4"}, - "Random46-4": { - "text": "...it says a lot of things like \"GET FATTER GET FATTER GET FATTER.\"", - "animation": "Horny", - "next": "Random46-5", - "effects": [ - {"type": "screenshake", "start": 33, "end": 33}, - {"type": "shake", "start": 33, "end": 68}, - {"type": "big", "start": 33, "end": 68}, - {"type": "screenshake", "start": 45, "end": 45}, - {"type": "screenshake", "start": 56, "end": 56}, - {"type": "sound", "start": 34, "end": 34, "sound": "sfx/boom.ogg"}, - {"type": "sound", "start": 45, "end": 45, "sound": "sfx/boom.ogg"}, - {"type": "sound", "start": 56, "end": 56, "sound": "sfx/boom.ogg"} - ] - }, - "Random46-5": {"text": "Could it be some subliminal message? Any guesses on what it means?", "animation": "Smug"}, - "Random47": {"text": "Sometimes, when I close my eyes, I see a swirling circle of different, smaller circles...", "animation": "Thinking", "next": "Random47-2"}, - "Random47-2": {"text": "They all rotate in unison, orbiting around a big white circle. And they all have different colors...", "animation": "Surprised", "next": "Random47-3"}, - "Random47-3": {"text": "...some sparkles come from the corners, and come for the white circle. They're the same colors as the little circles...", "animation": "Thinking", "next": "Random47-4"}, - "Random47-4": {"text": "Are they good or bad? I don't quite know. The circles do erase the sparkles, though...", "animation": "Thinking", "next": "Random47-5"}, - "Random47-5": {"text": "...sorry, I'm rambling about something again. Maybe my brain is being beamed with subliminal messaging...", "animation": "Surprised"}, - "Random48": {"text": "....hnnnngah!", "animation": "Surprised", "next": "Random48-2"}, - "Random48-2": { - "text": "Blah blah blah blah blah!", - "animation": "Surprised", - "next": "Random48-3", - "effects": [ - {"type": "shake", "end": 25}, - {"type": "screenshake"} - ] - }, - "Random48-3": { - "text": "Wawawawawawawawawa!", - "animation": "Thinking", - "next": "Random48-4", - "effects": [ - {"type": "oscillation", "end": 19}, - {"type": "screenshake", "end": 1} - ] - }, - "Random48-4": {"text": "...I'm not going crazy! I had a little food stuck in my throat, and it was all phlegmy...", "animation": "Peeved", "next": "Random48-5"}, - "Random48-5": {"text": "...okay, maybe I AM going crazy...", "animation": "Cry"}, "Random49": { - "text": "Grass-type Pokémon are simply the best, aren't they?", - "animation": "Neutral", - "next": "Random49-2", - "effects": [ - { - "type": "color", - "end": 5, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random49-2": {"text": "I mean, of course I'm the star example. But even other ones are excellent too!", "animation": "Eager", "next": "Random49-3"}, - "Random49-3": { - "text": "A lot of them are really pretty! Lilligant, Lurantis, Leavanny...", - "animation": "Smug", - "next": "Random49-4", - "effects": [ - { - "type": "color", - "start": 33, - "end": 42, - "color": [0.25098, 1, 0.25098] - }, - { - "type": "color", - "start": 44, - "end": 52, - "color": [1, 0.098039, 0.25098] - }, - { - "type": "color", - "start": 54, - "end": 62, - "color": [1, 1, 0.25098] - } - ] - }, - "Random49-4": {"text": "...huh, come to think of it, a lot of them do look sort of cute and...feminine. I guess that goes hand in hand when your kind is associated with flowers...", "animation": "Thinking", "next": "Random49-5"}, - "Random49-5": { - "text": "Well, I'm a total STUD, aren't I? Or maybe I'm a cutie pie? Hm, I wonder what you think..!", - "animation": "Smug", - "effects": [ - {"type": "oscillation", "start": 61, "end": 91} + "pools": ["Random"], + "lines": [ + {"text": "[color=0.251 1 0.251]Grass[/color]-type Pokémon are simply the best, aren't they?", "animation": "Neutral"}, + {"text": "I mean, of course I'm the star example. But even other ones are excellent too!", "animation": "Eager"}, + {"text": "A lot of them are really pretty! [color=0.251 1 0.251]Lilligant[/color], [color=1 0.098 0.251]Lurantis[/color], [color=1 1 0.251]Leavanny[/color]...", "animation": "Smug"}, + {"text": "...huh, come to think of it, a lot of them do look sort of cute and...feminine. I guess that goes hand in hand when your kind is associated with flowers...", "animation": "Thinking"}, + {"text": "Well, I'm a total STUD, aren't I? Or maybe I'm a cutie pie? [wave]Hm, I wonder what you think..![/wave]", "animation": "Smug"} ] }, "Random50": { - "text": "Have you been enjoying your time with me thus far?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "Have you been enjoying your time with me thus far?", "animation": "Thinking"} + ], "choices": [ {"text": "Yeah!", "next": "Random50-A"}, {"text": "Eh...", "next": "Random50-B"}, @@ -3013,53 +1359,31 @@ ] }, "Random50-A": { - "text": "Oh, thank you so much! Some humans might think that such a thing, \"fattening a Snivy,\" would be so weird and bizarre...", - "animation": "Eager", - "next": "Random50-A-2", - "effects": [ - { - "type": "color", - "start": 79, - "end": 84, - "color": [0.25098, 1, 0.25098] - } + "lines": [ + {"text": "Oh, thank you so much! Some humans might think that such a thing, \"fattening a [color=0.251 1 0.251]Snivy[/color],\" would be so weird and bizarre...", "animation": "Eager"}, + {"text": "...but that's precisely why such a thing must be done! Because that's outrageous! Who likes a fat[color=0.251 1 0.251] Snivy[/color]?", "animation": "Smug"}, + {"text": "...Patricians do, that's for sure! And congratulations, you are one!", "animation": "Eager"} ] }, - "Random50-A-2": { - "text": "...but that's precisely why such a thing must be done! Because that's outrageous! Who likes a fat Snivy?", - "animation": "Smug", - "next": "Random50-A-3", - "effects": [ - { - "type": "color", - "start": 98, - "end": 104, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random50-A-3": {"text": "...Patricians do, that's for sure! And congratulations, you are one!", "animation": "Eager"}, "Random50-B": { - "text": "Well...maybe I can understand it. Maybe it's a little repetitive...and staring at a Snivy can get boring, can't it?", - "animation": "Thinking", - "next": "Random50-B-2", - "effects": [ - { - "type": "color", - "start": 84, - "end": 89, - "color": [0.25098, 1, 0.25098] - } + "lines": [ + {"text": "Well...maybe I can understand it. Maybe it's a little repetitive...and staring at a [color=0.251 1 0.251]Snivy[/color] can get boring, can't it?", "animation": "Thinking"}, + {"text": "...well, I could stare at myself for hours! And I do, whenever I'm by a stream, staring at my reflection!", "animation": "Smug"}, + {"text": "But, look...it was a lot of hard work...getting this whole thing together. Enjoy it while it lasts!", "animation": "Cry"} + ] + }, + "Random50-C": { + "lines": [ + {"text": "Yeah...maybe! But you've stuck around for this long, haven't you?", "animation": "Smug"}, + {"text": "That certainly means something, doesn't it? A lot of experiences...humans don't even give a glance at it for a second!", "animation": "Thinking"}, + {"text": "If I've entertained you for even slightly longer than that, I consider it...a victory!", "animation": "Smug"} ] }, - "Random50-B-2": {"text": "...well, I could stare at myself for hours! And I do, whenever I'm by a stream, staring at my reflection!", "animation": "Smug", "next": "Random50-B-3"}, - "Random50-B-3": {"text": "But, look...it was a lot of hard work...getting this whole thing together. Enjoy it while it lasts!", "animation": "Cry"}, - "Random50-C": {"text": "Yeah...maybe! But you've stuck around for this long, haven't you?", "animation": "Smug", "next": "Random50-C-2"}, - "Random50-C-2": {"text": "That certainly means something, doesn't it? A lot of experiences...humans don't even give a glance at it for a second!", "animation": "Thinking", "next": "Random50-C-3"}, - "Random50-C-3": {"text": "If I've entertained you for even slightly longer than that, I consider it...a victory!", "animation": "Smug"}, "Random51": { - "text": "One more inquiry for you...which one of these are your favorite?", - "animation": "Thinking", + "pools": ["Random"], + "lines": [ + {"text": "One more inquiry for you...which one of these are your favorite?", "animation": "Thinking"} + ], "choices": [ {"text": "Browt", "next": "Random51-A"}, {"text": "Pombon", "next": "Random51-B"}, @@ -3067,1867 +1391,3294 @@ ] }, "Random51-A": { - "text": "Browt, hm? Such a grumpy little bird...", - "animation": "Neutral", - "next": "Random51-A-2", - "effects": [ - { - "type": "color", - "end": 5, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Random51-A-2": { - "text": "...some humans have called it a \"little chud\"! I don't know what that means. Is it good or bad..?", - "animation": "Surprised", - "effects": [ - {"type": "shake", "start": 33, "end": 44}, - {"type": "screenshake", "start": 33, "end": 33} + "lines": [ + {"text": "[color=0.251 1 0.251]Browt[/color], hm? Such a grumpy little bird...", "animation": "Neutral"}, + {"text": "...some humans have called it a \"[shake][screenshake]little chud[/shake]\"! I don't know what that means. Is it good or bad..?", "animation": "Surprised"} ] }, "Random51-B": { - "text": "Pombon, hm? That fiery little yapper?", - "animation": "Surprised", - "next": "Random51-B-2", - "effects": [ - { - "type": "color", - "end": 6, - "color": [1, 0.25, 0.25] - } - ] - }, - "Random51-B-2": {"text": "I'll be honest, that little pocket monster looks like it's got one brain cell bouncing around in its noggin!", "animation": "Peeved", "next": "Random51-B-3"}, - "Random51-B-3": {"text": "I pride myself on my elevated intelligence. I'm smarter than all of those other beasts.", "animation": "Smug", "next": "Random51-B-4"}, - "Random51-B-4": { - "text": "...don't let any Psychic-types hear that..!", - "animation": "Cry", - "effects": [ - { - "type": "color", - "start": 17, - "end": 24, - "color": [1, 0.25098, 1] - } + "lines": [ + {"text": "[color=1 0.25 0.25]Pombon[/color], hm? That fiery little yapper?", "animation": "Surprised"}, + {"text": "I'll be honest, that little pocket monster looks like it's got one brain cell bouncing around in its noggin!", "animation": "Peeved"}, + {"text": "I pride myself on my elevated intelligence. I'm smarter than all of those other beasts.", "animation": "Smug"}, + {"text": "...don't let any [color=1 0.251 1]Psychic[/color]-types hear that..!", "animation": "Cry"} ] }, "Random51-C": { - "text": "Gecqua, hm?", - "animation": "Smug", - "next": "Random51-C-2", - "effects": [ - { - "type": "color", - "end": 6, - "color": [0.25098, 1, 1] - } + "lines": [ + {"text": "[color=0.251 1 1]Gecqua[/color], hm?", "animation": "Smug"}, + {"text": "Such a cute little thing, with that bulbous head and its big eyes! It looks about as smug as me!", "animation": "Thinking"}, + {"text": "I suppose I have kinship with that aquatic creature...perhaps a [color=0.251 1 1]Gecqua[/color] out there yearns to become grossly obese, just like me!!", "animation": "Smug"}, + {"text": "They even look a little stocky by default...perfect for total obesification..!", "animation": "Horny"} ] }, - "Random51-C-2": {"text": "Such a cute little thing, with that bulbous head and its big eyes! It looks about as smug as me!", "animation": "Thinking", "next": "Random51-C-3"}, - "Random51-C-3": { - "text": "I suppose I have kinship with that aquatic creature...perhaps a Gecqua out there yearns to become grossly obese, just like me!!", - "animation": "Smug", - "next": "Random51-C-4", - "effects": [ - { - "type": "color", - "start": 64, - "end": 70, - "color": [0.25098, 1, 1] - } + "Digest1": { + "pools": ["Digest"], + "lines": [ + {"text": "I think my tummy's bigger..!", "animation": "Pat"} + ] + }, + "Digest2": { + "pools": ["Digest"], + "lines": [ + {"text": "I can feel the weight piling on..!", "animation": "Pat"} + ] + }, + "Digest3": { + "pools": ["Digest"], + "lines": [ + {"text": "I think I just got a little fatter...", "animation": "Pat"} + ] + }, + "Digest4": { + "pools": ["Digest"], + "lines": [ + {"text": "I feel heavier...", "animation": "Pat"} + ] + }, + "Digest5": { + "pools": ["Digest"], + "lines": [ + {"text": "I think I can start eating again!", "animation": "Pat"} + ] + }, + "Digest6": { + "pools": ["Digest"], + "lines": [ + {"text": "Time to feast!", "animation": "Pat"} ] }, - "Random51-C-4": {"text": "They even look a little stocky by default...perfect for total obesification..!", "animation": "Horny"}, - "Digest1": {"text": "I think my tummy's bigger..!", "animation": "Pat"}, - "Digest2": {"text": "I can feel the weight piling on..!", "animation": "Pat"}, - "Digest3": {"text": "I think I just got a little fatter...", "animation": "Pat"}, - "Digest4": {"text": "I feel heavier...", "animation": "Pat"}, - "Digest5": {"text": "I think I can start eating again!", "animation": "Pat"}, - "Digest6": {"text": "Time to feast!", "animation": "Pat"}, "Digest7": { - "text": "Ooh...I think I just got bigger.", - "animation": "Pat", - "effects": [ - {"type": "oscillation", "start": 25, "end": 31} + "pools": ["Digest"], + "lines": [ + {"text": "Ooh...I think I just got [wave]bigger[/wave].", "animation": "Pat"} + ] + }, + "Digest8": { + "pools": ["Digest"], + "lines": [ + {"text": "How much weight did I just gain..?", "animation": "Pat"} + ] + }, + "Digest9": { + "pools": ["Digest"], + "lines": [ + {"text": "Feeding time again!", "animation": "Pat"} ] }, - "Digest8": {"text": "How much weight did I just gain..?", "animation": "Pat"}, - "Digest9": {"text": "Feeding time again!", "animation": "Pat"}, "Digest10": { - "text": "Digested!", - "animation": "Pat", - "effects": [ - {"type": "oscillation", "end": 8} + "pools": ["Digest"], + "lines": [ + {"text": "[wave]Digested[/wave]!", "animation": "Pat"} + ] + }, + "Digest11": { + "pools": ["Digest"], + "lines": [ + {"text": "Wow, my stomach was really loud, just then...", "animation": "Pat"} + ] + }, + "Digest12": { + "pools": ["Digest"], + "lines": [ + {"text": "That wasn't too loud, was it?", "animation": "Pat"} + ] + }, + "Digest13": { + "pools": ["Digest"], + "lines": [ + {"text": "Amazing how that just sort of happens in an instant...", "animation": "Pat"} ] }, - "Digest11": {"text": "Wow, my stomach was really loud, just then...", "animation": "Pat"}, - "Digest12": {"text": "That wasn't too loud, was it?", "animation": "Pat"}, - "Digest13": {"text": "Amazing how that just sort of happens in an instant...", "animation": "Pat"}, "Digest14": { - "text": "The power of Snivy digestion!", - "animation": "Pat", - "effects": [ - { - "type": "color", - "start": 13, - "end": 18, - "color": [0.25098, 1, 0.25098] - } + "pools": ["Digest"], + "lines": [ + {"text": "The power of [color=0.251 1 0.251]Snivy[/color] digestion!", "animation": "Pat"} + ] + }, + "Digest15": { + "pools": ["Digest"], + "lines": [ + {"text": "Quick, wasn't it?", "animation": "Pat"} ] }, - "Digest15": {"text": "Quick, wasn't it?", "animation": "Pat"}, "Digest16": { - "text": "Yes...YES! I'm getting BIGGER!", - "animation": "Pat", - "effects": [ - {"type": "shake", "start": 23, "end": 29}, - {"type": "shake", "start": 6, "end": 9} + "pools": ["Digest"], + "lines": [ + {"text": "Yes...[shake]YES[/shake]! I'm getting [shake]BIGGER[/shake]!", "animation": "Pat"} ] }, "Digest17": { - "text": "I'm fatter, now!", - "animation": "Pat", - "effects": [ - {"type": "oscillation", "start": 4, "end": 10} + "pools": ["Digest"], + "lines": [ + {"text": "I'm [wave]fatter[/wave], now!", "animation": "Pat"} ] }, "Digest18": { - "text": "I'm bigger, now!", - "animation": "Pat", - "effects": [ - {"type": "oscillation", "start": 4, "end": 10} + "pools": ["Digest"], + "lines": [ + {"text": "I'm [wave]bigger[/wave], now!", "animation": "Pat"} ] }, "Digest19": { - "text": "I'm heavier, now!", - "animation": "Pat", - "effects": [ - {"type": "oscillation", "start": 4, "end": 11} + "pools": ["Digest"], + "lines": [ + {"text": "I'm [wave]heavier[/wave], now!", "animation": "Pat"} + ] + }, + "Digest20": { + "pools": ["Digest"], + "lines": [ + {"text": "One more step to blobdom...", "animation": "Pat"} ] }, - "Digest20": {"text": "One more step to blobdom...", "animation": "Pat"}, "Digest21": { - "text": "I'm BIGGER!", - "animation": "Pat", - "effects": [ - {"type": "shake", "end": 10} + "pools": ["Digest"], + "lines": [ + {"text": "[shake]I'm BIGGER[/shake]!", "animation": "Pat"} ] }, "Digest22": { - "text": "I'm FATTER!!", - "animation": "Pat", - "effects": [ - {"type": "shake", "end": 10} + "pools": ["Digest"], + "lines": [ + {"text": "[shake]I'm FATTER[/shake]!!", "animation": "Pat"} + ] + }, + "Digest23": { + "pools": ["Digest"], + "lines": [ + {"text": "All digested!", "animation": "Pat"} + ] + }, + "Digest24": { + "pools": ["Digest"], + "lines": [ + {"text": "All processed!", "animation": "Pat"} + ] + }, + "Digest25": { + "pools": ["Digest"], + "lines": [ + {"text": "All done!", "animation": "Pat"} + ] + }, + "Throw1": { + "pools": ["Throw"], + "lines": [ + {"text": "Watch it!", "animation": "Shocked"} + ] + }, + "Throw2": { + "pools": ["Throw"], + "lines": [ + {"text": "What the heck are you doing?!", "animation": "Shocked"} + ] + }, + "Throw3": { + "pools": ["Throw"], + "lines": [ + {"text": "It's supposed to go to my mouth!", "animation": "Shocked"} + ] + }, + "Throw4": { + "pools": ["Throw"], + "lines": [ + {"text": "Quit it!", "animation": "Shocked"} + ] + }, + "Throw5": { + "pools": ["Throw"], + "lines": [ + {"text": "Don't throw food!", "animation": "Shocked"} + ] + }, + "Throw6": { + "pools": ["Throw"], + "lines": [ + {"text": "Stop throwing things!", "animation": "Shocked"} + ] + }, + "Throw7": { + "pools": ["Throw"], + "lines": [ + {"text": "Easy, easy!!", "animation": "Shocked"} + ] + }, + "Throw8": { + "pools": ["Throw"], + "lines": [ + {"text": "Calm down!", "animation": "Shocked"} + ] + }, + "Throw9": { + "pools": ["Throw"], + "lines": [ + {"text": "Don't do that!", "animation": "Shocked"} + ] + }, + "Throw10": { + "pools": ["Throw"], + "lines": [ + {"text": "Weren't you taught to not throw food?!", "animation": "Shocked"} + ] + }, + "Throw11": { + "pools": ["Throw"], + "lines": [ + {"text": "What are you, a hatchling?!", "animation": "Angry"} + ] + }, + "Throw12": { + "pools": ["Throw"], + "lines": [ + {"text": "Stop being naughty!", "animation": "Shocked"} + ] + }, + "Throw13": { + "pools": ["Throw"], + "lines": [ + {"text": "Keep it together!", "animation": "Shocked"} + ] + }, + "Throw14": { + "pools": ["Throw"], + "lines": [ + {"text": "That's not going to help me get bigger!", "animation": "Shocked"} ] }, - "Digest23": {"text": "All digested!", "animation": "Pat"}, - "Digest24": {"text": "All processed!", "animation": "Pat"}, - "Digest25": {"text": "All done!", "animation": "Pat"}, - "Throw1": {"text": "Watch it!", "animation": "Shocked"}, - "Throw2": {"text": "What the heck are you doing?!", "animation": "Shocked"}, - "Throw3": {"text": "It's supposed to go to my mouth!", "animation": "Shocked"}, - "Throw4": {"text": "Quit it!", "animation": "Shocked"}, - "Throw5": {"text": "Don't throw food!", "animation": "Shocked"}, - "Throw6": {"text": "Stop throwing things!", "animation": "Shocked"}, - "Throw7": {"text": "Easy, easy!!", "animation": "Shocked"}, - "Throw8": {"text": "Calm down!", "animation": "Shocked"}, - "Throw9": {"text": "Don't do that!", "animation": "Shocked"}, - "Throw10": {"text": "Weren't you taught to not throw food?!", "animation": "Shocked"}, - "Throw11": {"text": "What are you, a hatchling?!", "animation": "Angry"}, - "Throw12": {"text": "Stop being naughty!", "animation": "Shocked"}, - "Throw13": {"text": "Keep it together!", "animation": "Shocked"}, - "Throw14": {"text": "That's not going to help me get bigger!", "animation": "Shocked"}, "Throw15": { - "text": "Stop it!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 8} + "pools": ["Throw"], + "lines": [ + {"text": "[shake]Stop it![/shake]", "animation": "Angry"} + ] + }, + "Throw16": { + "pools": ["Throw"], + "lines": [ + {"text": "Control yourself!", "animation": "Shocked"} + ] + }, + "Throw17": { + "pools": ["Throw"], + "lines": [ + {"text": "What are you doing?!", "animation": "Shocked"} + ] + }, + "Throw18": { + "pools": ["Throw"], + "lines": [ + {"text": "Behave!", "animation": "Shocked"} + ] + }, + "Throw19": { + "pools": ["Throw"], + "lines": [ + {"text": "Behave yourself!", "animation": "Shocked"} ] }, - "Throw16": {"text": "Control yourself!", "animation": "Shocked"}, - "Throw17": {"text": "What are you doing?!", "animation": "Shocked"}, - "Throw18": {"text": "Behave!", "animation": "Shocked"}, - "Throw19": {"text": "Behave yourself!", "animation": "Shocked"}, "Throw20": { - "text": "STOP!", - "animation": "Shocked", - "effects": [ - {"type": "shake", "end": 5}, - {"type": "big", "end": 5} + "pools": ["Throw"], + "lines": [ + {"text": "[shake][big]STOP![/big][/shake]", "animation": "Shocked"} + ] + }, + "Throw21": { + "pools": ["Throw"], + "lines": [ + {"text": "Watch it!", "animation": "Shocked"} + ] + }, + "Throw22": { + "pools": ["Throw"], + "lines": [ + {"text": "Don't throw things!", "animation": "Shocked"} + ] + }, + "Throw23": { + "pools": ["Throw"], + "lines": [ + {"text": "Do you have problems or something?!", "animation": "Shocked"} + ] + }, + "Throw24": { + "pools": ["Throw"], + "lines": [ + {"text": "What is your problem?!", "animation": "Shocked"} + ] + }, + "Throw25": { + "pools": ["Throw"], + "lines": [ + {"text": "Do you have brain damage?!", "animation": "Shocked"} + ] + }, + "Feed1": { + "pools": ["Feed"], + "lines": [ + {"text": "Ooh, gimme!", "animation": "Eager"} + ] + }, + "Feed2": { + "pools": ["Feed"], + "lines": [ + {"text": "Hand it over!", "animation": "Eager"} + ] + }, + "Feed3": { + "pools": ["Feed"], + "lines": [ + {"text": "Feed me!", "animation": "Eager"} + ] + }, + "Feed4": { + "pools": ["Feed"], + "lines": [ + {"text": "Feeeeeed me!", "animation": "Eager"} + ] + }, + "Feed5": { + "pools": ["Feed"], + "lines": [ + {"text": "To my mouth, please!", "animation": "Eager"} + ] + }, + "Feed6": { + "pools": ["Feed"], + "lines": [ + {"text": "May I have it, please?", "animation": "Eager"} + ] + }, + "Feed7": { + "pools": ["Feed"], + "lines": [ + {"text": "For me?", "animation": "Eager"} + ] + }, + "Feed8": { + "pools": ["Feed"], + "lines": [ + {"text": "I'm starving!", "animation": "Eager"} + ] + }, + "Feed9": { + "pools": ["Feed"], + "lines": [ + {"text": "Gimme gimme!", "animation": "Eager"} + ] + }, + "Feed10": { + "pools": ["Feed"], + "lines": [ + {"text": "What's the hold up? Feed me!", "animation": "Eager"} + ] + }, + "Feed11": { + "pools": ["Feed"], + "lines": [ + {"text": "Hand the snack over!", "animation": "Eager"} + ] + }, + "Feed12": { + "pools": ["Feed"], + "lines": [ + {"text": "This way, please!", "animation": "Eager"} + ] + }, + "Feed13": { + "pools": ["Feed"], + "lines": [ + {"text": "C'mon, c'mon!", "animation": "Eager"} + ] + }, + "Feed14": { + "pools": ["Feed"], + "lines": [ + {"text": "I'm hungry!", "animation": "Eager"} + ] + }, + "Feed15": { + "pools": ["Feed"], + "lines": [ + {"text": "How kind of you to share!", "animation": "Eager"} + ] + }, + "Feed16": { + "pools": ["Feed"], + "lines": [ + {"text": "I see you got the memo!", "animation": "Eager"} + ] + }, + "Feed17": { + "pools": ["Feed"], + "lines": [ + {"text": "Hurry up!", "animation": "Eager"} + ] + }, + "Feed18": { + "pools": ["Feed"], + "lines": [ + {"text": "Took you long enough!", "animation": "Eager"} ] }, - "Throw21": {"text": "Watch it!", "animation": "Shocked"}, - "Throw22": {"text": "Don't throw things!", "animation": "Shocked"}, - "Throw23": {"text": "Do you have problems or something?!", "animation": "Shocked"}, - "Throw24": {"text": "What is your problem?!", "animation": "Shocked"}, - "Throw25": {"text": "Do you have brain damage?!", "animation": "Shocked"}, - "Feed1": {"text": "Ooh, gimme!", "animation": "Eager"}, - "Feed2": {"text": "Hand it over!", "animation": "Eager"}, - "Feed3": {"text": "Feed me!", "animation": "Eager"}, - "Feed4": {"text": "Feeeeeed me!", "animation": "Eager"}, - "Feed5": {"text": "To my mouth, please!", "animation": "Eager"}, - "Feed6": {"text": "May I have it, please?", "animation": "Eager"}, - "Feed7": {"text": "For me?", "animation": "Eager"}, - "Feed8": {"text": "I'm starving!", "animation": "Eager"}, - "Feed9": {"text": "Gimme gimme!", "animation": "Eager"}, - "Feed10": {"text": "What's the hold up? Feed me!", "animation": "Eager"}, - "Feed11": {"text": "Hand the snack over!", "animation": "Eager"}, - "Feed12": {"text": "This way, please!", "animation": "Eager"}, - "Feed13": {"text": "C'mon, c'mon!", "animation": "Eager"}, - "Feed14": {"text": "I'm hungry!", "animation": "Eager"}, - "Feed15": {"text": "How kind of you to share!", "animation": "Eager"}, - "Feed16": {"text": "I see you got the memo!", "animation": "Eager"}, - "Feed17": {"text": "Hurry up!", "animation": "Eager"}, - "Feed18": {"text": "Took you long enough!", "animation": "Eager"}, "Feed19": { - "text": "I hunger!", - "animation": "Eager", - "effects": [ - {"type": "shake", "end": 9} + "pools": ["Feed"], + "lines": [ + {"text": "[shake]I hunger![/shake]", "animation": "Eager"} + ] + }, + "Feed20": { + "pools": ["Feed"], + "lines": [ + {"text": "I was about to starve!", "animation": "Eager"} + ] + }, + "Feed21": { + "pools": ["Feed"], + "lines": [ + {"text": "Aah..!", "animation": "Eager"} + ] + }, + "Feed22": { + "pools": ["Feed"], + "lines": [ + {"text": "Aaaah...", "animation": "Eager"} + ] + }, + "Feed23": { + "pools": ["Feed"], + "lines": [ + {"text": "Ooh!", "animation": "Eager"} + ] + }, + "Feed24": { + "pools": ["Feed"], + "lines": [ + {"text": "Ah!", "animation": "Eager"} + ] + }, + "Feed25": { + "pools": ["Feed"], + "lines": [ + {"text": "Looks yummy!", "animation": "Eager"} + ] + }, + "FeedFull1": { + "pools": ["FeedFull"], + "lines": [ + {"text": "I suppose I can take a little more...", "animation": "NeutralFull"} + ] + }, + "FeedFull2": { + "pools": ["FeedFull"], + "lines": [ + {"text": "I suppose I have a little more room...", "animation": "NeutralFull"} + ] + }, + "FeedFull3": { + "pools": ["FeedFull"], + "lines": [ + {"text": "More? Alright, I'll try and fit it in...", "animation": "NeutralFull"} + ] + }, + "FeedFull4": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Maybe just one more...", "animation": "NeutralFull"} + ] + }, + "FeedFull5": { + "pools": ["FeedFull"], + "lines": [ + {"text": "'It's only wafer-thin...'", "animation": "NeutralFull"} + ] + }, + "FeedFull6": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Eager, are you?", "animation": "NeutralFull"} + ] + }, + "FeedFull7": { + "pools": ["FeedFull"], + "lines": [ + {"text": "I'll pace myself with this...", "animation": "NeutralFull"} ] }, - "Feed20": {"text": "I was about to starve!", "animation": "Eager"}, - "Feed21": {"text": "Aah..!", "animation": "Eager"}, - "Feed22": {"text": "Aaaah...", "animation": "Eager"}, - "Feed23": {"text": "Ooh!", "animation": "Eager"}, - "Feed24": {"text": "Ah!", "animation": "Eager"}, - "Feed25": {"text": "Looks yummy!", "animation": "Eager"}, - "FeedFull1": {"text": "I suppose I can take a little more...", "animation": "NeutralFull"}, - "FeedFull2": {"text": "I suppose I have a little more room...", "animation": "NeutralFull"}, - "FeedFull3": {"text": "More? Alright, I'll try and fit it in...", "animation": "NeutralFull"}, - "FeedFull4": {"text": "Maybe just one more...", "animation": "NeutralFull"}, - "FeedFull5": {"text": "'It's only wafer-thin...'", "animation": "NeutralFull"}, - "FeedFull6": {"text": "Eager, are you?", "animation": "NeutralFull"}, - "FeedFull7": {"text": "I'll pace myself with this...", "animation": "NeutralFull"}, "FeedFull8": { - "text": "Mmf...", - "animation": "NeutralFull", - "effects": [ - {"type": "shake", "end": 6} + "pools": ["FeedFull"], + "lines": [ + {"text": "[shake]Mmf...[/shake]", "animation": "NeutralFull"} ] }, "FeedFull9": { - "text": "Oogh...", - "animation": "NeutralFull", - "effects": [ - {"type": "shake", "end": 7} + "pools": ["FeedFull"], + "lines": [ + {"text": "[shake]Oogh...[/shake]", "animation": "NeutralFull"} ] }, "FeedFull10": { - "text": "Ah...", - "animation": "NeutralFull", - "effects": [ - {"type": "shake", "end": 5} + "pools": ["FeedFull"], + "lines": [ + {"text": "[shake]Ah...[/shake]", "animation": "NeutralFull"} + ] + }, + "FeedFull11": { + "pools": ["FeedFull"], + "lines": [ + {"text": "This is the last one, right?", "animation": "NeutralFull"} + ] + }, + "FeedFull12": { + "pools": ["FeedFull"], + "lines": [ + {"text": "I see you can't wait till I digest...", "animation": "NeutralFull"} + ] + }, + "FeedFull13": { + "pools": ["FeedFull"], + "lines": [ + {"text": "If you insist...", "animation": "NeutralFull"} + ] + }, + "FeedFull14": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Alright, if you want...", "animation": "NeutralFull"} + ] + }, + "FeedFull15": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Well, they do taste good...", "animation": "NeutralFull"} + ] + }, + "FeedFull16": { + "pools": ["FeedFull"], + "lines": [ + {"text": "One more, I suppose...", "animation": "NeutralFull"} + ] + }, + "FeedFull17": { + "pools": ["FeedFull"], + "lines": [ + {"text": "I do want to train my capacity..!", "animation": "NeutralFull"} + ] + }, + "FeedFull18": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Can't slow this train, I suppose!", "animation": "NeutralFull"} + ] + }, + "FeedFull19": { + "pools": ["FeedFull"], + "lines": [ + {"text": "...more?", "animation": "NeutralFull"} + ] + }, + "FeedFull20": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Hm...", "animation": "NeutralFull"} + ] + }, + "FeedFull21": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Well, it'd be rude to leave uneaten food...", "animation": "NeutralFull"} + ] + }, + "FeedFull22": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Wasting food would be unwise, so...", "animation": "NeutralFull"} + ] + }, + "FeedFull23": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Still?", "animation": "NeutralFull"} + ] + }, + "FeedFull24": { + "pools": ["FeedFull"], + "lines": [ + {"text": "Okay...", "animation": "NeutralFull"} + ] + }, + "FeedFull25": { + "pools": ["FeedFull"], + "lines": [ + {"text": "I figured you want me eating...", "animation": "NeutralFull"} + ] + }, + "Eat1": { + "pools": ["Eat"], + "lines": [ + {"text": "Ooh, that hit the spot.", "animation": "Pat"} + ] + }, + "Eat2": { + "pools": ["Eat"], + "lines": [ + {"text": "Keep it coming!", "animation": "Pat"} + ] + }, + "Eat3": { + "pools": ["Eat"], + "lines": [ + {"text": "Have any more?", "animation": "Pat"} + ] + }, + "Eat4": { + "pools": ["Eat"], + "lines": [ + {"text": "Scrumptious!", "animation": "Pat"} + ] + }, + "Eat5": { + "pools": ["Eat"], + "lines": [ + {"text": "Delicious!", "animation": "Pat"} + ] + }, + "Eat6": { + "pools": ["Eat"], + "lines": [ + {"text": "Another, please!", "animation": "Pat"} ] }, - "FeedFull11": {"text": "This is the last one, right?", "animation": "NeutralFull"}, - "FeedFull12": {"text": "I see you can't wait till I digest...", "animation": "NeutralFull"}, - "FeedFull13": {"text": "If you insist...", "animation": "NeutralFull"}, - "FeedFull14": {"text": "Alright, if you want...", "animation": "NeutralFull"}, - "FeedFull15": {"text": "Well, they do taste good...", "animation": "NeutralFull"}, - "FeedFull16": {"text": "One more, I suppose...", "animation": "NeutralFull"}, - "FeedFull17": {"text": "I do want to train my capacity..!", "animation": "NeutralFull"}, - "FeedFull18": {"text": "Can't slow this train, I suppose!", "animation": "NeutralFull"}, - "FeedFull19": {"text": "...more?", "animation": "NeutralFull"}, - "FeedFull20": {"text": "Hm...", "animation": "NeutralFull"}, - "FeedFull21": {"text": "Well, it'd be rude to leave uneaten food...", "animation": "NeutralFull"}, - "FeedFull22": {"text": "Wasting food would be unwise, so...", "animation": "NeutralFull"}, - "FeedFull23": {"text": "Still?", "animation": "NeutralFull"}, - "FeedFull24": {"text": "Okay...", "animation": "NeutralFull"}, - "FeedFull25": {"text": "I figured you want me eating...", "animation": "NeutralFull"}, - "Eat1": {"text": "Ooh, that hit the spot.", "animation": "Pat"}, - "Eat2": {"text": "Keep it coming!", "animation": "Pat"}, - "Eat3": {"text": "Have any more?", "animation": "Pat"}, - "Eat4": {"text": "Scrumptious!", "animation": "Pat"}, - "Eat5": {"text": "Delicious!", "animation": "Pat"}, - "Eat6": {"text": "Another, please!", "animation": "Pat"}, "Eat7": { - "text": "More, MORE!", - "animation": "Pat", - "effects": [ - {"type": "shake", "start": 6, "end": 10} + "pools": ["Eat"], + "lines": [ + {"text": "More, [shake]MORE[/shake]!", "animation": "Pat"} + ] + }, + "Eat8": { + "pools": ["Eat"], + "lines": [ + {"text": "How wonderfully caloric!", "animation": "Pat"} + ] + }, + "Eat9": { + "pools": ["Eat"], + "lines": [ + {"text": "Splendid!", "animation": "Pat"} + ] + }, + "Eat10": { + "pools": ["Eat"], + "lines": [ + {"text": "Keep going!", "animation": "Pat"} + ] + }, + "Eat11": { + "pools": ["Eat"], + "lines": [ + {"text": "May I have seconds?", "animation": "Pat"} + ] + }, + "Eat12": { + "pools": ["Eat"], + "lines": [ + {"text": "More, please!", "animation": "Pat"} + ] + }, + "Eat13": { + "pools": ["Eat"], + "lines": [ + {"text": "Another round if you could!", "animation": "Pat"} + ] + }, + "Eat14": { + "pools": ["Eat"], + "lines": [ + {"text": "There's more, right?", "animation": "Pat"} + ] + }, + "Eat15": { + "pools": ["Eat"], + "lines": [ + {"text": "A good appetizer!", "animation": "Pat"} + ] + }, + "Eat16": { + "pools": ["Eat"], + "lines": [ + {"text": "A tasty snack!", "animation": "Pat"} + ] + }, + "Eat17": { + "pools": ["Eat"], + "lines": [ + {"text": "I was famished!", "animation": "Pat"} + ] + }, + "Eat18": { + "pools": ["Eat"], + "lines": [ + {"text": "I was starving!", "animation": "Pat"} ] }, - "Eat8": {"text": "How wonderfully caloric!", "animation": "Pat"}, - "Eat9": {"text": "Splendid!", "animation": "Pat"}, - "Eat10": {"text": "Keep going!", "animation": "Pat"}, - "Eat11": {"text": "May I have seconds?", "animation": "Pat"}, - "Eat12": {"text": "More, please!", "animation": "Pat"}, - "Eat13": {"text": "Another round if you could!", "animation": "Pat"}, - "Eat14": {"text": "There's more, right?", "animation": "Pat"}, - "Eat15": {"text": "A good appetizer!", "animation": "Pat"}, - "Eat16": {"text": "A tasty snack!", "animation": "Pat"}, - "Eat17": {"text": "I was famished!", "animation": "Pat"}, - "Eat18": {"text": "I was starving!", "animation": "Pat"}, "Eat19": { - "text": "Could you part with another, for a skinny little Grass Snake like me?", - "animation": "Pat", - "effects": [ - { - "type": "color", - "start": 49, - "end": 60, - "color": [0.25098, 1, 0.25098] - } + "pools": ["Eat"], + "lines": [ + {"text": "Could you part with another, for a skinny little [color=0.251 1 0.251]Grass Snake[/color] like me?", "animation": "Pat"} + ] + }, + "Eat20": { + "pools": ["Eat"], + "lines": [ + {"text": "I'll take seconds!", "animation": "Pat"} + ] + }, + "Eat21": { + "pools": ["Eat"], + "lines": [ + {"text": "That was a tasty little morsel!", "animation": "Pat"} + ] + }, + "Eat22": { + "pools": ["Eat"], + "lines": [ + {"text": "Yum!", "animation": "Pat"} ] }, - "Eat20": {"text": "I'll take seconds!", "animation": "Pat"}, - "Eat21": {"text": "That was a tasty little morsel!", "animation": "Pat"}, - "Eat22": {"text": "Yum!", "animation": "Pat"}, "Eat23": { - "text": "Mmm!", - "animation": "Pat", - "effects": [ - {"type": "oscillation", "end": 3} + "pools": ["Eat"], + "lines": [ + {"text": "[wave]Mmm[/wave]!", "animation": "Pat"} ] }, "Eat24": { - "text": "Tasty!", - "animation": "Pat", - "effects": [ - {"type": "oscillation", "end": 5} + "pools": ["Eat"], + "lines": [ + {"text": "[wave]Tasty[/wave]!", "animation": "Pat"} ] }, "Eat25": { - "text": "Delectable!", - "animation": "Pat", - "effects": [ - {"type": "oscillation", "end": 10} + "pools": ["Eat"], + "lines": [ + {"text": "[wave]Delectable[/wave]!", "animation": "Pat"} ] }, "EatFull1": { - "text": "Oof...", - "effects": [ - {"type": "shake", "end": 6} + "pools": ["EatFull"], + "lines": [ + {"text": "[shake]Oof...[/shake]"} ] }, "EatFull2": { - "text": "Ungh...", - "effects": [ - {"type": "shake", "end": 7} + "pools": ["EatFull"], + "lines": [ + {"text": "[shake]Ungh...[/shake]"} ] }, "EatFull3": { - "text": "Aah...", - "effects": [ - {"type": "shake", "end": 6} + "pools": ["EatFull"], + "lines": [ + {"text": "[shake]Aah...[/shake]"} ] }, "EatFull4": { - "text": "Mmf...", - "effects": [ - {"type": "shake", "end": 6} + "pools": ["EatFull"], + "lines": [ + {"text": "[shake]Mmf...[/shake]"} + ] + }, + "EatFull5": { + "pools": ["EatFull"], + "lines": [ + {"text": "I don't know if I can eat much more..."} + ] + }, + "EatFull6": { + "pools": ["EatFull"], + "lines": [ + {"text": "That's the last one...right?"} + ] + }, + "EatFull7": { + "pools": ["EatFull"], + "lines": [ + {"text": "Last one, right?"} + ] + }, + "EatFull8": { + "pools": ["EatFull"], + "lines": [ + {"text": "No more..."} + ] + }, + "EatFull9": { + "pools": ["EatFull"], + "lines": [ + {"text": "Arceus, I'm stuffed..."} + ] + }, + "EatFull10": { + "pools": ["EatFull"], + "lines": [ + {"text": "My goodness..."} + ] + }, + "EatFull11": { + "pools": ["EatFull"], + "lines": [ + {"text": "My stomach..."} + ] + }, + "EatFull12": { + "pools": ["EatFull"], + "lines": [ + {"text": "Too much..."} + ] + }, + "EatFull13": { + "pools": ["EatFull"], + "lines": [ + {"text": "I'm full..."} + ] + }, + "EatFull14": { + "pools": ["EatFull"], + "lines": [ + {"text": "Can't take much more..."} + ] + }, + "EatFull15": { + "pools": ["EatFull"], + "lines": [ + {"text": "You're done, right?"} + ] + }, + "EatFull16": { + "pools": ["EatFull"], + "lines": [ + {"text": "That's all, right?"} + ] + }, + "EatFull17": { + "pools": ["EatFull"], + "lines": [ + {"text": "Slow down..."} + ] + }, + "EatFull18": { + "pools": ["EatFull"], + "lines": [ + {"text": "I'm gonna burst..."} + ] + }, + "EatFull19": { + "pools": ["EatFull"], + "lines": [ + {"text": "I'm about to blow..."} + ] + }, + "EatFull20": { + "pools": ["EatFull"], + "lines": [ + {"text": "Enough..."} + ] + }, + "EatFull21": { + "pools": ["EatFull"], + "lines": [ + {"text": "That's enough..."} + ] + }, + "EatFull22": { + "pools": ["EatFull"], + "lines": [ + {"text": "My belly..."} + ] + }, + "EatFull23": { + "pools": ["EatFull"], + "lines": [ + {"text": "So full..."} ] }, - "EatFull5": {"text": "I don't know if I can eat much more..."}, - "EatFull6": {"text": "That's the last one...right?"}, - "EatFull7": {"text": "Last one, right?"}, - "EatFull8": {"text": "No more..."}, - "EatFull9": {"text": "Arceus, I'm stuffed..."}, - "EatFull10": {"text": "My goodness..."}, - "EatFull11": {"text": "My stomach..."}, - "EatFull12": {"text": "Too much..."}, - "EatFull13": {"text": "I'm full..."}, - "EatFull14": {"text": "Can't take much more..."}, - "EatFull15": {"text": "You're done, right?"}, - "EatFull16": {"text": "That's all, right?"}, - "EatFull17": {"text": "Slow down..."}, - "EatFull18": {"text": "I'm gonna burst..."}, - "EatFull19": {"text": "I'm about to blow..."}, - "EatFull20": {"text": "Enough..."}, - "EatFull21": {"text": "That's enough..."}, - "EatFull22": {"text": "My belly..."}, - "EatFull23": {"text": "So full..."}, "EatFull24": { - "text": "Oh...", - "effects": [ - {"type": "shake", "end": 5} + "pools": ["EatFull"], + "lines": [ + {"text": "[shake]Oh...[/shake]"} + ] + }, + "EatFull25": { + "pools": ["EatFull"], + "lines": [ + {"text": "My tummy..."} ] }, - "EatFull25": {"text": "My tummy..."}, "BurpSmall1": { - "text": "Mmf..!", - "animation": "BurpSmall", - "effects": [ - {"type": "shake", "end": 6} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[shake]Mmf..![/shake]", "animation": "BurpSmall"} ] }, "BurpSmall2": { - "text": "Mmgh..!", - "animation": "BurpSmall", - "effects": [ - {"type": "shake", "end": 7} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[shake]Mmgh..![/shake]", "animation": "BurpSmall"} ] }, "BurpSmall3": { - "text": "Urp!", - "animation": "BurpSmall", - "effects": [ - {"type": "shake", "end": 4} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[shake]Urp![/shake]", "animation": "BurpSmall"} ] }, "BurpSmall4": { - "text": "Uurp!", - "animation": "BurpSmall", - "effects": [ - {"type": "shake", "end": 5} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[shake]Uurp![/shake]", "animation": "BurpSmall"} ] }, "BurpSmall5": { - "text": "Burp!", - "animation": "BurpSmall", - "effects": [ - {"type": "shake", "end": 5} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[shake]Burp![/shake]", "animation": "BurpSmall"} ] }, "BurpSmall6": { - "text": "...burp!", - "animation": "BurpSmall", - "effects": [ - {"type": "shake", "end": 8} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[shake]...burp![/shake]", "animation": "BurpSmall"} ] }, "BurpSmall7": { - "text": "Mmrp!", - "animation": "BurpSmall", - "effects": [ - {"type": "shake", "end": 5} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[shake]Mmrp![/shake]", "animation": "BurpSmall"} ] }, "BurpSmall8": { - "text": "Burp!", - "animation": "BurpSmall", - "effects": [ - {"type": "shake", "end": 5} + "lines": [ + {"text": "[shake]Burp![/shake]", "animation": "BurpSmall"} ] }, "BurpSmall9": { - "text": "Mmmmmgh!", - "animation": "BurpSmall", - "effects": [ - {"type": "shake", "end": 8} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[shake]Mmmmmgh![/shake]", "animation": "BurpSmall"} ] }, "BurpSmall10": { - "text": "Mmmf!", - "animation": "BurpSmall", - "effects": [ - {"type": "shake", "end": 5} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[shake]Mmmf![/shake]", "animation": "BurpSmall"} ] }, "BurpBig1": { - "text": "Burp!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 5}, - {"type": "shake", "end": 5} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]Burp![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig2": { - "text": "OOOoOOouRP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 11}, - {"type": "shake", "end": 11} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]OOOoOOouRP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig3": { - "text": "BURP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 5}, - {"type": "shake", "end": 5} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]BURP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig4": { - "text": "BOOOOOOORP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 11}, - {"type": "shake", "end": 11} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]BOOOOOOORP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig5": { - "text": "uuuuuuuuuOOOOOOURP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 19}, - {"type": "shake", "end": 19} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]uuuuuuuuuOOOOOOURP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig6": { - "text": "Uorp!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 5}, - {"type": "shake", "end": 5} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]Uorp![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig7": { - "text": "Buorp!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 6}, - {"type": "shake", "end": 6} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]Buorp![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig8": { - "text": "BUUuuuuUUUUUUUUUUUuuUUUUURP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 28}, - {"type": "shake", "end": 28} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]BUUuuuuUUUUUUUUUUUuuUUUUURP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig9": { - "text": "OOOOOOOOOuuuuuuuuuuuuuuuuuRP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 29}, - {"type": "shake", "end": 29} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]OOOOOOOOOuuuuuuuuuuuuuuuuuRP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig10": { - "text": "OOOOOOOUUUUOOOORP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 18}, - {"type": "shake", "end": 18} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]OOOOOOOUUUUOOOORP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig11": { - "text": "BUARP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 6}, - {"type": "shake", "end": 6} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]BUARP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig12": { - "text": "BUORP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 6}, - {"type": "shake", "end": 6} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]BUORP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig13": { - "text": "BUUUUUUorp!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 11}, - {"type": "shake", "end": 11} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]BUUUUUUorp![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig14": { - "text": "BARRRRRP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 9}, - {"type": "shake", "end": 9} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]BARRRRRP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig15": { - "text": "bbbbbbbbUUUUUORP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 17}, - {"type": "shake", "end": 17} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]bbbbbbbbUUUUUORP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig16": { - "text": "Blarp!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 6}, - {"type": "shake", "end": 6} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]Blarp![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig17": { - "text": "BUUUOOROP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 10}, - {"type": "shake", "end": 10} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]BUUUOOROP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig18": { - "text": "BoooooooooURP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 14}, - {"type": "shake", "end": 14} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]BoooooooooURP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig19": { - "text": "BAAAAAAAAAAAAAAAAAAAAAAAAARP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 29}, - {"type": "shake", "end": 29} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]BAAAAAAAAAAAAAAAAAAAAAAAAARP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig20": { - "text": "OOOOOOOOooooOOOOOOOOOoooOOOOOOOOURP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 36}, - {"type": "shake", "end": 36} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]OOOOOOOOooooOOOOOOOOOoooOOOOOOOOURP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig21": { - "text": "Buuuuuuuuurp!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 13}, - {"type": "shake", "end": 13} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]Buuuuuuuuurp![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig22": { - "text": "BLARP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 6}, - {"type": "shake", "end": 6} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]BLARP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig23": { - "text": "Holy shioooooooooOOOOOOOORP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 28}, - {"type": "shake", "end": 28} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]Holy shioooooooooOOOOOOOORP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig24": { - "text": "What the fuuuuuuuuUORP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 23}, - {"type": "shake", "end": 23} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]What the fuuuuuuuuUORP![/shake][/big]", "animation": "BurpBig"} ] }, "BurpBig25": { - "text": "Holy fOOOOOOOOOOOOOOUURRRRRRRRP!", - "animation": "BurpBig", - "effects": [ - {"type": "big", "end": 32}, - {"type": "shake", "end": 32} + "pools": ["EatFull", "Eat"], + "lines": [ + {"text": "[big][shake]Holy fOOOOOOOOOOOOOOUURRRRRRRRP![/shake][/big]", "animation": "BurpBig"} + ] + }, + "StageUp1": { + "pools": ["StageUp"], + "lines": [ + {"text": "Hm, what do you think? Do I look any different?", "animation": "Smug"} + ] + }, + "StageUp2": { + "pools": ["StageUp"], + "lines": [ + {"text": "Hm, something feels different...do you know what?", "animation": "Thinking"} + ] + }, + "StageUp3": { + "pools": ["StageUp"], + "lines": [ + {"text": "I feel different...", "animation": "Thinking"} ] }, - "StageUp1": {"text": "Hm, what do you think? Do I look any different?", "animation": "Smug"}, - "StageUp2": {"text": "Hm, something feels different...do you know what?", "animation": "Thinking"}, - "StageUp3": {"text": "I feel different...", "animation": "Thinking"}, "StageUp4": { - "text": "I'm a new and improved Snivy! What do you think?", - "animation": "Smug", - "effects": [ - { - "type": "color", - "start": 23, - "end": 28, - "color": [0.25098, 1, 0.25098] - } + "pools": ["StageUp"], + "lines": [ + {"text": "I'm a new and improved [color=0.251 1 0.251]Snivy[/color]! What do you think?", "animation": "Smug"} + ] + }, + "StageUp5": { + "pools": ["StageUp"], + "lines": [ + {"text": "...did something just happen?", "animation": "Smug"} + ] + }, + "StageUp6": { + "pools": ["StageUp"], + "lines": [ + {"text": "Heh, what do you think?", "animation": "Smug"} + ] + }, + "StageUp7": { + "pools": ["StageUp"], + "lines": [ + {"text": "So...basically, I'm fatter now.", "animation": "Smug"} + ] + }, + "StageUp8": { + "pools": ["StageUp"], + "lines": [ + {"text": "Definitely feeling heavier right now.", "animation": "Smug"} + ] + }, + "StageUp9": { + "pools": ["StageUp"], + "lines": [ + {"text": "You like how I look?", "animation": "Smug"} ] }, - "StageUp5": {"text": "...did something just happen?", "animation": "Smug"}, - "StageUp6": {"text": "Heh, what do you think?", "animation": "Smug"}, - "StageUp7": {"text": "So...basically, I'm fatter now.", "animation": "Smug"}, - "StageUp8": {"text": "Definitely feeling heavier right now.", "animation": "Smug"}, - "StageUp9": {"text": "You like how I look?", "animation": "Smug"}, "StageUp10": { - "text": "I'M BIGGER NOW!!", - "animation": "Horny", - "effects": [ - {"type": "oscillation", "end": 16} + "pools": ["StageUp"], + "lines": [ + {"text": "[wave]I'M BIGGER NOW!![/wave]", "animation": "Horny"} ] }, "StageUp11": { - "text": "I'M FATTER NOW!!", - "animation": "Horny", - "effects": [ - {"type": "oscillation", "end": 16} + "pools": ["StageUp"], + "lines": [ + {"text": "[wave]I'M FATTER NOW!![/wave]", "animation": "Horny"} ] }, "StageUp12": { - "text": "I'm bigger!!", - "animation": "Surprised", - "effects": [ - {"type": "oscillation", "end": 12} + "pools": ["StageUp"], + "lines": [ + {"text": "[wave]I'm bigger!![/wave]", "animation": "Surprised"} + ] + }, + "StageUp13": { + "pools": ["StageUp"], + "lines": [ + {"text": "I'm big now!!", "animation": "Horny"} + ] + }, + "StageUp14": { + "pools": ["StageUp"], + "lines": [ + {"text": "...don't think that this means we're stopping.", "animation": "Horny"} + ] + }, + "StageUp15": { + "pools": ["StageUp"], + "lines": [ + {"text": "We're certainly not stopping, now.", "animation": "Horny"} + ] + }, + "Full1": { + "pools": ["Full"], + "lines": [ + {"text": "I'm too full!", "animation": "Shocked"} + ] + }, + "Full2": { + "pools": ["Full"], + "lines": [ + {"text": "Sorry! I'm stuffed!", "animation": "Shocked"} + ] + }, + "Full3": { + "pools": ["Full"], + "lines": [ + {"text": "I'd love to eat more, but I can't!", "animation": "Shocked"} ] }, - "StageUp13": {"text": "I'm big now!!", "animation": "Horny"}, - "StageUp14": {"text": "...don't think that this means we're stopping.", "animation": "Horny"}, - "StageUp15": {"text": "We're certainly not stopping, now.", "animation": "Horny"}, - "Full1": {"text": "I'm too full!", "animation": "Shocked"}, - "Full2": {"text": "Sorry! I'm stuffed!", "animation": "Shocked"}, - "Full3": {"text": "I'd love to eat more, but I can't!", "animation": "Shocked"}, "Full4": { - "text": "No more!", - "animation": "Shocked", - "effects": [ - {"type": "shake", "end": 8} + "pools": ["Full"], + "lines": [ + {"text": "[shake]No more![/shake]", "animation": "Shocked"} + ] + }, + "Full5": { + "pools": ["Full"], + "lines": [ + {"text": "I can't take anymore right now!", "animation": "Shocked"} + ] + }, + "Full6": { + "pools": ["Full"], + "lines": [ + {"text": "If only my stomach could take more..!", "animation": "Shocked"} + ] + }, + "Full7": { + "pools": ["Full"], + "lines": [ + {"text": "I'm no black hole!", "animation": "Shocked"} + ] + }, + "Full8": { + "pools": ["Full"], + "lines": [ + {"text": "Put that away, please...", "animation": "Shocked"} + ] + }, + "Full9": { + "pools": ["Full"], + "lines": [ + {"text": "Too much food!", "animation": "Shocked"} + ] + }, + "Full10": { + "pools": ["Full"], + "lines": [ + {"text": "Not right now..!", "animation": "Shocked"} + ] + }, + "Full11": { + "pools": ["Full"], + "lines": [ + {"text": "Can't you see the scary red text? I'm full!", "animation": "Shocked"} + ] + }, + "Full12": { + "pools": ["Full"], + "lines": [ + {"text": "I don't have the appetite right now!", "animation": "Shocked"} + ] + }, + "Full13": { + "pools": ["Full"], + "lines": [ + {"text": "Stop!", "animation": "Shocked"} + ] + }, + "Full14": { + "pools": ["Full"], + "lines": [ + {"text": "Gah! Not now!", "animation": "Shocked"} + ] + }, + "Full15": { + "pools": ["Full"], + "lines": [ + {"text": "That'll make me sick!", "animation": "Shocked"} + ] + }, + "Full16": { + "pools": ["Full"], + "lines": [ + {"text": "Wait until I digest!", "animation": "Shocked"} + ] + }, + "Full17": { + "pools": ["Full"], + "lines": [ + {"text": "Let me digest first!", "animation": "Shocked"} + ] + }, + "Full18": { + "pools": ["Full"], + "lines": [ + {"text": "Wait until that bar fills first!", "animation": "Shocked"} + ] + }, + "Full19": { + "pools": ["Full"], + "lines": [ + {"text": "Cease the feeding at once!", "animation": "Shocked"} + ] + }, + "Full20": { + "pools": ["Full"], + "lines": [ + {"text": "I can't shovel it down forever!", "animation": "Shocked"} + ] + }, + "Full21": { + "pools": ["Full"], + "lines": [ + {"text": "Too much!", "animation": "Shocked"} + ] + }, + "Full22": { + "pools": ["Full"], + "lines": [ + {"text": "I'm not an all-consuming multidimensional blob...yet!", "animation": "Shocked"} + ] + }, + "Full23": { + "pools": ["Full"], + "lines": [ + {"text": "No thanks...", "animation": "Shocked"} + ] + }, + "Full24": { + "pools": ["Full"], + "lines": [ + {"text": "I'm a little uneasy right now...", "animation": "Shocked"} + ] + }, + "Full25": { + "pools": ["Full"], + "lines": [ + {"text": "Be patient, I'm digesting...", "animation": "Shocked"} ] }, - "Full5": {"text": "I can't take anymore right now!", "animation": "Shocked"}, - "Full6": {"text": "If only my stomach could take more..!", "animation": "Shocked"}, - "Full7": {"text": "I'm no black hole!", "animation": "Shocked"}, - "Full8": {"text": "Put that away, please...", "animation": "Shocked"}, - "Full9": {"text": "Too much food!", "animation": "Shocked"}, - "Full10": {"text": "Not right now..!", "animation": "Shocked"}, - "Full11": {"text": "Can't you see the scary red text? I'm full!", "animation": "Shocked"}, - "Full12": {"text": "I don't have the appetite right now!", "animation": "Shocked"}, - "Full13": {"text": "Stop!", "animation": "Shocked"}, - "Full14": {"text": "Gah! Not now!", "animation": "Shocked"}, - "Full15": {"text": "That'll make me sick!", "animation": "Shocked"}, - "Full16": {"text": "Wait until I digest!", "animation": "Shocked"}, - "Full17": {"text": "Let me digest first!", "animation": "Shocked"}, - "Full18": {"text": "Wait until that bar fills first!", "animation": "Shocked"}, - "Full19": {"text": "Cease the feeding at once!", "animation": "Shocked"}, - "Full20": {"text": "I can't shovel it down forever!", "animation": "Shocked"}, - "Full21": {"text": "Too much!", "animation": "Shocked"}, - "Full22": {"text": "I'm not an all-consuming multidimensional blob...yet!", "animation": "Shocked"}, - "Full23": {"text": "No thanks...", "animation": "Shocked"}, - "Full24": {"text": "I'm a little uneasy right now...", "animation": "Shocked"}, - "Full25": {"text": "Be patient, I'm digesting...", "animation": "Shocked"}, "LowCapacity1": { - "text": "I think if I eat that I will just straight up die.", - "animation": "Shocked", - "effects": [ - {"type": "screenshake", "start": 46, "end": 46} + "pools": ["LowCapacity"], + "lines": [ + {"text": "I think if I eat that I will just straight up [screenshake]die.", "animation": "Shocked"} ] }, "LowCapacity2": { - "text": "I think if I ate that it'd kill me.", - "animation": "Shocked", - "effects": [ - {"type": "screenshake", "start": 27, "end": 27} + "pools": ["LowCapacity"], + "lines": [ + {"text": "I think if I ate that it'd [screenshake]kill me.", "animation": "Shocked"} + ] + }, + "LowCapacity3": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "That looks like an utter calorie bomb...I don't think I can manage it right now.", "animation": "Shocked"} + ] + }, + "LowCapacity4": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "That's too absurd, even for me!", "animation": "Shocked"} + ] + }, + "LowCapacity5": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Smaller proportions, please!", "animation": "Shocked"} + ] + }, + "LowCapacity6": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "If only my stomach could take more..!", "animation": "Shocked"} + ] + }, + "LowCapacity7": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Too big, and that's rich, coming from me!", "animation": "Shocked"} + ] + }, + "LowCapacity8": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Maybe feed me something a little smaller?", "animation": "Shocked"} ] }, - "LowCapacity3": {"text": "That looks like an utter calorie bomb...I don't think I can manage it right now.", "animation": "Shocked"}, - "LowCapacity4": {"text": "That's too absurd, even for me!", "animation": "Shocked"}, - "LowCapacity5": {"text": "Smaller proportions, please!", "animation": "Shocked"}, - "LowCapacity6": {"text": "If only my stomach could take more..!", "animation": "Shocked"}, - "LowCapacity7": {"text": "Too big, and that's rich, coming from me!", "animation": "Shocked"}, - "LowCapacity8": {"text": "Maybe feed me something a little smaller?", "animation": "Shocked"}, "LowCapacity9": { - "text": "Too much food!", - "animation": "Shocked", - "effects": [ - {"type": "screenshake"} + "pools": ["LowCapacity"], + "lines": [ + {"text": "[screenshake]Too much food!", "animation": "Shocked"} + ] + }, + "LowCapacity10": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Hold onto that for later!", "animation": "Shocked"} ] }, - "LowCapacity10": {"text": "Hold onto that for later!", "animation": "Shocked"}, "LowCapacity11": { - "text": "Are you trying to kill me?!", - "animation": "Shocked", - "effects": [ - {"type": "shake", "end": 27}, - {"type": "screenshake"} + "pools": ["LowCapacity"], + "lines": [ + {"text": "[shake][screenshake]Are you trying to kill me?![/shake]", "animation": "Shocked"} + ] + }, + "LowCapacity12": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Keep it light, if you could!", "animation": "Shocked"} + ] + }, + "LowCapacity13": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "That's a calorie nuke if I've ever seen one...", "animation": "Shocked"} + ] + }, + "LowCapacity14": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "How do you expect to fit that inside this tiny body?!", "animation": "Shocked"} ] }, - "LowCapacity12": {"text": "Keep it light, if you could!", "animation": "Shocked"}, - "LowCapacity13": {"text": "That's a calorie nuke if I've ever seen one...", "animation": "Shocked"}, - "LowCapacity14": {"text": "How do you expect to fit that inside this tiny body?!", "animation": "Shocked"}, "LowCapacity15": { - "text": "If I ate that I would just explode.", - "animation": "Shocked", - "effects": [ - {"type": "screenshake", "start": 27, "end": 27} + "pools": ["LowCapacity"], + "lines": [ + {"text": "If I ate that I would just [screenshake]explode.", "animation": "Shocked"} + ] + }, + "LowCapacity16": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "That's not a reasonable proportion!", "animation": "Shocked"} ] }, - "LowCapacity16": {"text": "That's not a reasonable proportion!", "animation": "Shocked"}, "LowCapacity17": { - "text": "That'd be murder!", - "animation": "Shocked", - "effects": [ - {"type": "shake", "start": 10, "end": 16}, - {"type": "screenshake", "start": 10, "end": 10} + "pools": ["LowCapacity"], + "lines": [ + {"text": "That'd be [shake][screenshake]murder[/shake]!", "animation": "Shocked"} + ] + }, + "LowCapacity18": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Look, maybe when I'm fatter, alright?", "animation": "Shocked"} + ] + }, + "LowCapacity19": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "I wouldn't be able to stomach that right now...", "animation": "Shocked"} + ] + }, + "LowCapacity20": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "That's ridiculous!", "animation": "Shocked"} + ] + }, + "LowCapacity21": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "I can't eat that yet!", "animation": "Shocked"} ] }, - "LowCapacity18": {"text": "Look, maybe when I'm fatter, alright?", "animation": "Shocked"}, - "LowCapacity19": {"text": "I wouldn't be able to stomach that right now...", "animation": "Shocked"}, - "LowCapacity20": {"text": "That's ridiculous!", "animation": "Shocked"}, - "LowCapacity21": {"text": "I can't eat that yet!", "animation": "Shocked"}, "LowCapacity22": { - "text": "That's a meal fit for a Snorlax!", - "animation": "Shocked", - "effects": [ - { - "type": "color", - "start": 24, - "end": 31, - "color": [0.25098, 0.501961, 1] - } + "pools": ["LowCapacity"], + "lines": [ + {"text": "That's a meal fit for a [color=0.251 0.502 1]Snorlax[/color]!", "animation": "Shocked"} + ] + }, + "LowCapacity23": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Proportions, proportions!", "animation": "Shocked"} + ] + }, + "LowCapacity24": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "That is well above my diet right now!", "animation": "Shocked"} + ] + }, + "LowCapacity25": { + "pools": ["LowCapacity"], + "lines": [ + {"text": "Smaller eats, please!", "animation": "Shocked"} ] }, - "LowCapacity23": {"text": "Proportions, proportions!", "animation": "Shocked"}, - "LowCapacity24": {"text": "That is well above my diet right now!", "animation": "Shocked"}, - "LowCapacity25": {"text": "Smaller eats, please!", "animation": "Shocked"}, "FoodTaken1": { - "text": "Hey, I was eating that!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 23} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Hey, I was eating that![/shake]", "animation": "Angry"} ] }, "FoodTaken2": { - "text": "Jerk!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 5} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Jerk![/shake]", "animation": "Angry"} ] }, "FoodTaken3": { - "text": "Meanie!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 7} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Meanie![/shake]", "animation": "Angry"} ] }, "FoodTaken4": { - "text": "You Swinub!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 11} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]You Swinub![/shake]", "animation": "Angry"} ] }, "FoodTaken5": { - "text": "You Tepig!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 10} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]You Tepig![/shake]", "animation": "Angry"} ] }, "FoodTaken6": { - "text": "Give it back!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 13} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Give it back![/shake]", "animation": "Angry"} ] }, "FoodTaken7": { - "text": "How rude!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 9} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]How rude![/shake]", "animation": "Angry"} ] }, "FoodTaken8": { - "text": "Stop that!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 10} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Stop that![/shake]", "animation": "Angry"} ] }, "FoodTaken9": { - "text": "Hey!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 4} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Hey![/shake]", "animation": "Angry"} ] }, "FoodTaken10": { - "text": "Quit it!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 8} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Quit it![/shake]", "animation": "Angry"} ] }, "FoodTaken11": { - "text": "How uncouth!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 12} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]How uncouth![/shake]", "animation": "Angry"} ] }, "FoodTaken12": { - "text": "That was mine!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 14} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]That was mine![/shake]", "animation": "Angry"} ] }, "FoodTaken13": { - "text": "Rude!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 5} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Rude![/shake]", "animation": "Angry"} ] }, "FoodTaken14": { - "text": "H-hey!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 6} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]H-hey![/shake]", "animation": "Angry"} ] }, "FoodTaken15": { - "text": "J-jerk!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 7} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]J-jerk![/shake]", "animation": "Angry"} ] }, "FoodTaken16": { - "text": "I was in the middle of eating that!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 35} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]I was in the middle of eating that![/shake]", "animation": "Angry"} ] }, "FoodTaken17": { - "text": "How dare you!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 13} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]How dare you![/shake]", "animation": "Angry"} ] }, "FoodTaken18": { - "text": "How inconsiderate!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 18} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]How inconsiderate![/shake]", "animation": "Angry"} ] }, "FoodTaken19": { - "text": "Where are your manners?!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 24} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Where are your manners?![/shake]", "animation": "Angry"} ] }, "FoodTaken20": { - "text": "Grrr...", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 7} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Grrr...[/shake]", "animation": "Angry"} ] }, "FoodTaken21": { - "text": "Grrr..!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 7} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Grrr..![/shake]", "animation": "Angry"} + ] + }, + "FoodTaken22": { + "pools": ["FoodTaken"], + "lines": [ + {"text": "That's not yours!", "animation": "Angry"} ] }, - "FoodTaken22": {"text": "That's not yours!", "animation": "Angry"}, "FoodTaken23": { - "text": "Why did you do that?!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 21} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Why did you do that?![/shake]", "animation": "Angry"} ] }, "FoodTaken24": { - "text": "Hand it back!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 13} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Hand it back![/shake]", "animation": "Angry"} ] }, "FoodTaken25": { - "text": "Stop playing games!", - "animation": "Angry", - "effects": [ - {"type": "shake", "end": 19} + "pools": ["FoodTaken"], + "lines": [ + {"text": "[shake]Stop playing games![/shake]", "animation": "Angry"} + ] + }, + "FoodTakenFull1": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Thanks for moderating me...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull2": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Moderation is key...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull3": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Thanks for pacing me...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull4": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Seems like it's time to slow down...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull5": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "We can save that for later...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull6": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Yeah, just a bit is good...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull7": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "That works...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull8": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Not going to forcefeed me anymore, hm?", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull9": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "I thought you were going to shove that down my throat...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull10": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Wow, so you actually do have some restraint...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull11": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "A little restraint is good...", "animation": "NeutralFull"} ] }, - "FoodTakenFull1": {"text": "Thanks for moderating me...", "animation": "NeutralFull"}, - "FoodTakenFull2": {"text": "Moderation is key...", "animation": "NeutralFull"}, - "FoodTakenFull3": {"text": "Thanks for pacing me...", "animation": "NeutralFull"}, - "FoodTakenFull4": {"text": "Seems like it's time to slow down...", "animation": "NeutralFull"}, - "FoodTakenFull5": {"text": "We can save that for later...", "animation": "NeutralFull"}, - "FoodTakenFull6": {"text": "Yeah, just a bit is good...", "animation": "NeutralFull"}, - "FoodTakenFull7": {"text": "That works...", "animation": "NeutralFull"}, - "FoodTakenFull8": {"text": "Not going to forcefeed me anymore, hm?", "animation": "NeutralFull"}, - "FoodTakenFull9": {"text": "I thought you were going to shove that down my throat...", "animation": "NeutralFull"}, - "FoodTakenFull10": {"text": "Wow, so you actually do have some restraint...", "animation": "NeutralFull"}, - "FoodTakenFull11": {"text": "A little restraint is good...", "animation": "NeutralFull"}, "FoodTakenFull12": { - "text": "So you DON'T want me to blow up..!", - "animation": "NeutralFull", - "effects": [ - {"type": "shake", "start": 7, "end": 12} + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "So you [shake]DON'T[/shake] want me to blow up..!", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull13": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Wow, you actually do listen to me...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull14": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Mmm...thanks for slowing down.", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull15": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Thanks for listening to me...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull16": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "So you can hear my stomach protesting...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull17": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "How considerate...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull18": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "How mindful...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull19": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "How respectful...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull20": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "How kind of you...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull21": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "So your eyes do work!", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull22": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "I'm impressed...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull23": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "So your ears do work!", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull24": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Seems like that'll be it, then...", "animation": "NeutralFull"} + ] + }, + "FoodTakenFull25": { + "pools": ["FoodTakenFull"], + "lines": [ + {"text": "Right, it's time to digest...", "animation": "NeutralFull"} + ] + }, + "HeadRub1": { + "pools": ["HeadRub"], + "lines": [ + {"text": "Mmm, scratch behind there...", "animation": "HeadRub"} + ] + }, + "HeadRub2": { + "pools": ["HeadRub"], + "lines": [ + {"text": "I can't help it...being pet does feel good...", "animation": "HeadRub"} + ] + }, + "HeadRub3": { + "pools": ["HeadRub"], + "lines": [ + {"text": "Nothing beats head pats...", "animation": "HeadRub"} ] }, - "FoodTakenFull13": {"text": "Wow, you actually do listen to me...", "animation": "NeutralFull"}, - "FoodTakenFull14": {"text": "Mmm...thanks for slowing down.", "animation": "NeutralFull"}, - "FoodTakenFull15": {"text": "Thanks for listening to me...", "animation": "NeutralFull"}, - "FoodTakenFull16": {"text": "So you can hear my stomach protesting...", "animation": "NeutralFull"}, - "FoodTakenFull17": {"text": "How considerate...", "animation": "NeutralFull"}, - "FoodTakenFull18": {"text": "How mindful...", "animation": "NeutralFull"}, - "FoodTakenFull19": {"text": "How respectful...", "animation": "NeutralFull"}, - "FoodTakenFull20": {"text": "How kind of you...", "animation": "NeutralFull"}, - "FoodTakenFull21": {"text": "So your eyes do work!", "animation": "NeutralFull"}, - "FoodTakenFull22": {"text": "I'm impressed...", "animation": "NeutralFull"}, - "FoodTakenFull23": {"text": "So your ears do work!", "animation": "NeutralFull"}, - "FoodTakenFull24": {"text": "Seems like that'll be it, then...", "animation": "NeutralFull"}, - "FoodTakenFull25": {"text": "Right, it's time to digest...", "animation": "NeutralFull"}, - "HeadRub1": {"text": "Mmm, scratch behind there...", "animation": "HeadRub"}, - "HeadRub2": {"text": "I can't help it...being pet does feel good...", "animation": "HeadRub"}, - "HeadRub3": {"text": "Nothing beats head pats...", "animation": "HeadRub"}, "HeadRub4": { - "text": "Who's a good Snivy? That's right, me!", - "animation": "HeadRub", - "effects": [ - { - "type": "color", - "start": 13, - "end": 18, - "color": [0.25098, 1, 0.25098] - } + "pools": ["HeadRub"], + "lines": [ + {"text": "Who's a good [color=0.251 1 0.251]Snivy[/color]? That's right, me!", "animation": "HeadRub"} + ] + }, + "HeadRub5": { + "pools": ["HeadRub"], + "lines": [ + {"text": "I'm...yours...", "animation": "HeadRub"} + ] + }, + "HeadRub6": { + "pools": ["HeadRub"], + "lines": [ + {"text": "Nice...", "animation": "HeadRub"} + ] + }, + "HeadRub7": { + "pools": ["HeadRub"], + "lines": [ + {"text": "Good...", "animation": "HeadRub"} + ] + }, + "HeadRub8": { + "pools": ["HeadRub"], + "lines": [ + {"text": "A little more...right over there, yeah.", "animation": "HeadRub"} + ] + }, + "HeadRub9": { + "pools": ["HeadRub"], + "lines": [ + {"text": "Feels good...", "animation": "HeadRub"} + ] + }, + "HeadRub10": { + "pools": ["HeadRub"], + "lines": [ + {"text": "...mmm...", "animation": "HeadRub"} + ] + }, + "BellyRub1": { + "pools": ["BellyRub"], + "lines": [ + {"text": "Helping me digest?", "animation": "BellyRub"} + ] + }, + "BellyRub2": { + "pools": ["BellyRub"], + "lines": [ + {"text": "Nice and full...", "animation": "BellyRub"} + ] + }, + "BellyRub3": { + "pools": ["BellyRub"], + "lines": [ + {"text": "Nothing beats belly rubs...", "animation": "BellyRub"} + ] + }, + "BellyRub4": { + "pools": ["BellyRub"], + "lines": [ + {"text": "Thanks...", "animation": "BellyRub"} + ] + }, + "BellyRub5": { + "pools": ["BellyRub"], + "lines": [ + {"text": "Go slowly, if you could...", "animation": "BellyRub"} ] }, - "HeadRub5": {"text": "I'm...yours...", "animation": "HeadRub"}, - "HeadRub6": {"text": "Nice...", "animation": "HeadRub"}, - "HeadRub7": {"text": "Good...", "animation": "HeadRub"}, - "HeadRub8": {"text": "A little more...right over there, yeah.", "animation": "HeadRub"}, - "HeadRub9": {"text": "Feels good...", "animation": "HeadRub"}, - "HeadRub10": {"text": "...mmm...", "animation": "HeadRub"}, - "BellyRub1": {"text": "Helping me digest?", "animation": "BellyRub"}, - "BellyRub2": {"text": "Nice and full...", "animation": "BellyRub"}, - "BellyRub3": {"text": "Nothing beats belly rubs...", "animation": "BellyRub"}, - "BellyRub4": {"text": "Thanks...", "animation": "BellyRub"}, - "BellyRub5": {"text": "Go slowly, if you could...", "animation": "BellyRub"}, "BellyRub6": { - "text": "Just watch the yellow, alright..?", - "animation": "BellyRub", - "effects": [ - { - "type": "color", - "start": 15, - "end": 21, - "color": [1, 1, 0.25098] - } + "pools": ["BellyRub"], + "lines": [ + {"text": "Just watch the [color=1 1 0.251]yellow[/color], alright..?", "animation": "BellyRub"} + ] + }, + "BellyRub7": { + "pools": ["BellyRub"], + "lines": [ + {"text": "Ooh, that feels good...", "animation": "BellyRub"} + ] + }, + "BellyRub8": { + "pools": ["BellyRub"], + "lines": [ + {"text": "You know just where to rub...", "animation": "BellyRub"} + ] + }, + "BellyRub9": { + "pools": ["BellyRub"], + "lines": [ + {"text": "That's the spot...", "animation": "BellyRub"} + ] + }, + "BellyRub10": { + "pools": ["BellyRub"], + "lines": [ + {"text": "Feels nice...", "animation": "BellyRub"} + ] + }, + "BellyRub11": { + "pools": ["BellyRub"], + "lines": [ + {"text": "Yeah...", "animation": "BellyRub"} + ] + }, + "TailRub1": { + "pools": ["TailRub"], + "lines": [ + {"text": "Right where I photosynthesize...", "animation": "TailRub"} + ] + }, + "TailRub2": { + "pools": ["TailRub"], + "lines": [ + {"text": "You like the leaf at the end..?", "animation": "TailRub"} + ] + }, + "TailRub3": { + "pools": ["TailRub"], + "lines": [ + {"text": "Nice and long, isn't it?", "animation": "TailRub"} + ] + }, + "TailRub4": { + "pools": ["TailRub"], + "lines": [ + {"text": "Ooh, my secret favorite spot to touch...", "animation": "TailRub"} + ] + }, + "TailRub5": { + "pools": ["TailRub"], + "lines": [ + {"text": "You like my tail..?", "animation": "TailRub"} + ] + }, + "TailRub6": { + "pools": ["TailRub"], + "lines": [ + {"text": "Mmm...", "animation": "TailRub"} + ] + }, + "TailRub7": { + "pools": ["TailRub"], + "lines": [ + {"text": "Aaahh...", "animation": "TailRub"} + ] + }, + "TailRub8": { + "pools": ["TailRub"], + "lines": [ + {"text": "Lovely...", "animation": "TailRub"} + ] + }, + "TailRub9": { + "pools": ["TailRub"], + "lines": [ + {"text": "How kind of you...", "animation": "TailRub"} + ] + }, + "TailRub10": { + "pools": ["TailRub"], + "lines": [ + {"text": "Ooh...", "animation": "TailRub"} + ] + }, + "HeadRubFull-1": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Mmm, scratch behind there...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-2": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "I can't help it...being pet does feel good...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-3": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Nothing beats head pats...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-4": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Who's a good Snivy? That's right, me...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-5": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "I'm...yours...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-6": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Nice...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-7": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Good...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-8": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "A little more...right over there, yeah.", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-9": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Feels good...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-10": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "...mmm...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-11": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Ooh, that feels good...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-12": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "You know just where to rub...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-13": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "That's the spot...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-14": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Feels nice...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-15": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Yeah...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-16": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Mmm...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-17": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Aaahh...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-18": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Lovely...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-19": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "How kind of you...", "animation": "HeadRubFull"} + ] + }, + "HeadRubFull-20": { + "pools": ["HeadRubFull"], + "lines": [ + {"text": "Ooh...", "animation": "HeadRubFull"} + ] + }, + "BellyRubFull-1": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Helping me digest?", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-2": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Nice and full...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-3": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Nothing beats belly rubs...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-4": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Thanks...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-5": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Go slowly, if you could...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-6": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Just watch the yellow, alright..?", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-7": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Nice...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-8": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Good...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-9": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "A little more...right over there, yeah.", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-10": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Feels good...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-11": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "...mmm...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-12": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Ooh, that feels good...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-13": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "You know just where to rub...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-14": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "That's the spot...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-15": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Feels nice...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-16": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Yeah...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-17": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Mmm...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-18": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Aaahh...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-19": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Lovely...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-20": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "How kind of you...", "animation": "BellyRubFull"} + ] + }, + "BellyRubFull-21": { + "pools": ["BellyRubFull"], + "lines": [ + {"text": "Ooh...", "animation": "BellyRubFull"} + ] + }, + "TailRubFull-1": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Right where I photosynthesize...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-2": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "You like the leaf at the end..?", "animation": "TailRubFull"} + ] + }, + "TailRubFull-3": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Nice and long, isn't it?", "animation": "TailRubFull"} + ] + }, + "TailRubFull-4": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Ooh, my secret favorite spot to touch...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-5": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "You like my tail..?", "animation": "TailRubFull"} + ] + }, + "TailRubFull-6": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Nice...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-7": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Good...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-8": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "A little more...right over there, yeah.", "animation": "TailRubFull"} + ] + }, + "TailRubFull-9": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Feels good...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-10": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "...mmm...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-11": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Ooh, that feels good...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-12": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "You know just where to rub...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-13": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "That's the spot...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-14": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Feels nice...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-15": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Yeah...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-16": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Mmm...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-17": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Aaahh...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-18": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Lovely...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-19": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "How kind of you...", "animation": "TailRubFull"} + ] + }, + "TailRubFull-20": { + "pools": ["TailRubFull"], + "lines": [ + {"text": "Ooh...", "animation": "TailRubFull"} + ] + }, + "HeadRubBack1": { + "pools": ["HeadRubBack"], + "lines": [ + {"text": "Mmm, scratch behind there...", "animation": "EagerBack"} + ] + }, + "HeadRubBack2": { + "pools": ["HeadRubBack"], + "lines": [ + {"text": "I can't help it...being pet does feel good...", "animation": "PeevedBack"} + ] + }, + "HeadRubBack3": { + "pools": ["HeadRubBack"], + "lines": [ + {"text": "Nothing beats head pats...", "animation": "EagerBack"} ] }, - "BellyRub7": {"text": "Ooh, that feels good...", "animation": "BellyRub"}, - "BellyRub8": {"text": "You know just where to rub...", "animation": "BellyRub"}, - "BellyRub9": {"text": "That's the spot...", "animation": "BellyRub"}, - "BellyRub10": {"text": "Feels nice...", "animation": "BellyRub"}, - "BellyRub11": {"text": "Yeah...", "animation": "BellyRub"}, - "TailRub1": {"text": "Right where I photosynthesize...", "animation": "TailRub"}, - "TailRub2": {"text": "You like the leaf at the end..?", "animation": "TailRub"}, - "TailRub3": {"text": "Nice and long, isn't it?", "animation": "TailRub"}, - "TailRub4": {"text": "Ooh, my secret favorite spot to touch...", "animation": "TailRub"}, - "TailRub5": {"text": "You like my tail..?", "animation": "TailRub"}, - "TailRub6": {"text": "Mmm...", "animation": "TailRub"}, - "TailRub7": {"text": "Aaahh...", "animation": "TailRub"}, - "TailRub8": {"text": "Lovely...", "animation": "TailRub"}, - "TailRub9": {"text": "How kind of you...", "animation": "TailRub"}, - "TailRub10": {"text": "Ooh...", "animation": "TailRub"}, - "HeadRubFull-1": {"text": "Mmm, scratch behind there...", "animation": "HeadRubFull"}, - "HeadRubFull-2": {"text": "I can't help it...being pet does feel good...", "animation": "HeadRubFull"}, - "HeadRubFull-3": {"text": "Nothing beats head pats...", "animation": "HeadRubFull"}, - "HeadRubFull-4": {"text": "Who's a good Snivy? That's right, me...", "animation": "HeadRubFull"}, - "HeadRubFull-5": {"text": "I'm...yours...", "animation": "HeadRubFull"}, - "HeadRubFull-6": {"text": "Nice...", "animation": "HeadRubFull"}, - "HeadRubFull-7": {"text": "Good...", "animation": "HeadRubFull"}, - "HeadRubFull-8": {"text": "A little more...right over there, yeah.", "animation": "HeadRubFull"}, - "HeadRubFull-9": {"text": "Feels good...", "animation": "HeadRubFull"}, - "HeadRubFull-10": {"text": "...mmm...", "animation": "HeadRubFull"}, - "HeadRubFull-11": {"text": "Ooh, that feels good...", "animation": "HeadRubFull"}, - "HeadRubFull-12": {"text": "You know just where to rub...", "animation": "HeadRubFull"}, - "HeadRubFull-13": {"text": "That's the spot...", "animation": "HeadRubFull"}, - "HeadRubFull-14": {"text": "Feels nice...", "animation": "HeadRubFull"}, - "HeadRubFull-15": {"text": "Yeah...", "animation": "HeadRubFull"}, - "HeadRubFull-16": {"text": "Mmm...", "animation": "HeadRubFull"}, - "HeadRubFull-17": {"text": "Aaahh...", "animation": "HeadRubFull"}, - "HeadRubFull-18": {"text": "Lovely...", "animation": "HeadRubFull"}, - "HeadRubFull-19": {"text": "How kind of you...", "animation": "HeadRubFull"}, - "HeadRubFull-20": {"text": "Ooh...", "animation": "HeadRubFull"}, - "BellyRubFull-1": {"text": "Helping me digest?", "animation": "BellyRubFull"}, - "BellyRubFull-2": {"text": "Nice and full...", "animation": "BellyRubFull"}, - "BellyRubFull-3": {"text": "Nothing beats belly rubs...", "animation": "BellyRubFull"}, - "BellyRubFull-4": {"text": "Thanks...", "animation": "BellyRubFull"}, - "BellyRubFull-5": {"text": "Go slowly, if you could...", "animation": "BellyRubFull"}, - "BellyRubFull-6": {"text": "Just watch the yellow, alright..?", "animation": "BellyRubFull"}, - "BellyRubFull-7": {"text": "Nice...", "animation": "BellyRubFull"}, - "BellyRubFull-8": {"text": "Good...", "animation": "BellyRubFull"}, - "BellyRubFull-9": {"text": "A little more...right over there, yeah.", "animation": "BellyRubFull"}, - "BellyRubFull-10": {"text": "Feels good...", "animation": "BellyRubFull"}, - "BellyRubFull-11": {"text": "...mmm...", "animation": "BellyRubFull"}, - "BellyRubFull-12": {"text": "Ooh, that feels good...", "animation": "BellyRubFull"}, - "BellyRubFull-13": {"text": "You know just where to rub...", "animation": "BellyRubFull"}, - "BellyRubFull-14": {"text": "That's the spot...", "animation": "BellyRubFull"}, - "BellyRubFull-15": {"text": "Feels nice...", "animation": "BellyRubFull"}, - "BellyRubFull-16": {"text": "Yeah...", "animation": "BellyRubFull"}, - "BellyRubFull-17": {"text": "Mmm...", "animation": "BellyRubFull"}, - "BellyRubFull-18": {"text": "Aaahh...", "animation": "BellyRubFull"}, - "BellyRubFull-19": {"text": "Lovely...", "animation": "BellyRubFull"}, - "BellyRubFull-20": {"text": "How kind of you...", "animation": "BellyRubFull"}, - "BellyRubFull-21": {"text": "Ooh...", "animation": "BellyRubFull"}, - "TailRubFull-1": {"text": "Right where I photosynthesize...", "animation": "TailRubFull"}, - "TailRubFull-2": {"text": "You like the leaf at the end..?", "animation": "TailRubFull"}, - "TailRubFull-3": {"text": "Nice and long, isn't it?", "animation": "TailRubFull"}, - "TailRubFull-4": {"text": "Ooh, my secret favorite spot to touch...", "animation": "TailRubFull"}, - "TailRubFull-5": {"text": "You like my tail..?", "animation": "TailRubFull"}, - "TailRubFull-6": {"text": "Nice...", "animation": "TailRubFull"}, - "TailRubFull-7": {"text": "Good...", "animation": "TailRubFull"}, - "TailRubFull-8": {"text": "A little more...right over there, yeah.", "animation": "TailRubFull"}, - "TailRubFull-9": {"text": "Feels good...", "animation": "TailRubFull"}, - "TailRubFull-10": {"text": "...mmm...", "animation": "TailRubFull"}, - "TailRubFull-11": {"text": "Ooh, that feels good...", "animation": "TailRubFull"}, - "TailRubFull-12": {"text": "You know just where to rub...", "animation": "TailRubFull"}, - "TailRubFull-13": {"text": "That's the spot...", "animation": "TailRubFull"}, - "TailRubFull-14": {"text": "Feels nice...", "animation": "TailRubFull"}, - "TailRubFull-15": {"text": "Yeah...", "animation": "TailRubFull"}, - "TailRubFull-16": {"text": "Mmm...", "animation": "TailRubFull"}, - "TailRubFull-17": {"text": "Aaahh...", "animation": "TailRubFull"}, - "TailRubFull-18": {"text": "Lovely...", "animation": "TailRubFull"}, - "TailRubFull-19": {"text": "How kind of you...", "animation": "TailRubFull"}, - "TailRubFull-20": {"text": "Ooh...", "animation": "TailRubFull"}, - "HeadRubBack1": {"text": "Mmm, scratch behind there...", "animation": "EagerBack"}, - "HeadRubBack2": {"text": "I can't help it...being pet does feel good...", "animation": "PeevedBack"}, - "HeadRubBack3": {"text": "Nothing beats head pats...", "animation": "EagerBack"}, "HeadRubBack4": { - "text": "Who's a good Snivy? That's right, me!", - "animation": "EagerBack", - "effects": [ - { - "type": "color", - "start": 13, - "end": 18, - "color": [0.25098, 1, 0.25098] - } + "pools": ["HeadRubBack"], + "lines": [ + {"text": "Who's a good [color=0.251 1 0.251]Snivy[/color]? That's right, me!", "animation": "EagerBack"} + ] + }, + "HeadRubBack5": { + "pools": ["HeadRubBack"], + "lines": [ + {"text": "I'm...yours...", "animation": "EagerBack"} + ] + }, + "HeadRubBack6": { + "pools": ["HeadRubBack"], + "lines": [ + {"text": "Nice...", "animation": "EagerBack"} + ] + }, + "HeadRubBack7": { + "pools": ["HeadRubBack"], + "lines": [ + {"text": "Good...", "animation": "EagerBack"} + ] + }, + "HeadRubBack8": { + "pools": ["HeadRubBack"], + "lines": [ + {"text": "A little more...right over there, yeah.", "animation": "EagerBack"} + ] + }, + "HeadRubBack9": { + "pools": ["HeadRubBack"], + "lines": [ + {"text": "Feels good...", "animation": "EagerBack"} + ] + }, + "HeadRubBack10": { + "pools": ["HeadRubBack"], + "lines": [ + {"text": "...mmm...", "animation": "EagerBack"} + ] + }, + "TailRubBack1": { + "pools": ["TailRubBack"], + "lines": [ + {"text": "Right where I photosynthesize...", "animation": "EagerBack"} + ] + }, + "TailRubBack2": { + "pools": ["TailRubBack"], + "lines": [ + {"text": "You like the leaf at the end..?", "animation": "EagerBack"} + ] + }, + "TailRubBack3": { + "pools": ["TailRubBack"], + "lines": [ + {"text": "Nice and long, isn't it?", "animation": "EagerBack"} + ] + }, + "TailRubBack4": { + "pools": ["TailRubBack"], + "lines": [ + {"text": "Ooh, my secret favorite spot to touch...", "animation": "EagerBack"} + ] + }, + "TailRubBack5": { + "pools": ["TailRubBack"], + "lines": [ + {"text": "You like my tail..?", "animation": "EagerBack"} + ] + }, + "TailRubBack6": { + "pools": ["TailRubBack"], + "lines": [ + {"text": "Mmm...", "animation": "EagerBack"} + ] + }, + "TailRubBack7": { + "pools": ["TailRubBack"], + "lines": [ + {"text": "Aaahh...", "animation": "EagerBack"} + ] + }, + "TailRubBack8": { + "pools": ["TailRubBack"], + "lines": [ + {"text": "Lovely...", "animation": "EagerBack"} + ] + }, + "TailRubBack9": { + "pools": ["TailRubBack"], + "lines": [ + {"text": "How kind of you...", "animation": "EagerBack"} + ] + }, + "TailRubBack10": { + "pools": ["TailRubBack"], + "lines": [ + {"text": "Ooh...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-1": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Mmm, scratch behind there...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-2": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "I can't help it...being pet does feel good...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-3": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Nothing beats head pats...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-4": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Who's a good Snivy? That's right, me...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-5": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "I'm...yours...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-6": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Nice...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-7": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Good...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-8": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "A little more...right over there, yeah.", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-9": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Feels good...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-10": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "...mmm...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-11": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Ooh, that feels good...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-12": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "You know just where to rub...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-13": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "That's the spot...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-14": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Feels nice...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-15": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Yeah...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-16": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Mmm...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-17": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Aaahh...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-18": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Lovely...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-19": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "How kind of you...", "animation": "EagerBack"} + ] + }, + "HeadRubBackFull-20": { + "pools": ["HeadRubBackFull"], + "lines": [ + {"text": "Ooh...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-1": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Right where I photosynthesize...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-2": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "You like the leaf at the end..?", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-3": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Nice and long, isn't it?", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-4": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Ooh, my secret favorite spot to touch...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-5": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "You like my tail..?", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-6": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Nice...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-7": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Good...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-8": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "A little more...right over there, yeah.", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-9": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Feels good...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-10": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "...mmm...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-11": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Ooh, that feels good...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-12": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "You know just where to rub...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-13": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "That's the spot...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-14": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Feels nice...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-15": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Yeah...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-16": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Mmm...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-17": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Aaahh...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-18": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Lovely...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-19": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "How kind of you...", "animation": "EagerBack"} + ] + }, + "TailRubBackFull-20": { + "pools": ["TailRubBackFull"], + "lines": [ + {"text": "Ooh...", "animation": "EagerBack"} + ] + }, + "MouthKiss1": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "I..I d-didn't think...", "animation": "Sheepish"} + ] + }, + "MouthKiss2": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "How...lovely...", "animation": "Sheepish"} + ] + }, + "MouthKiss3": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "I'm...yours...", "animation": "Sheepish"} + ] + }, + "MouthKiss4": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "A-again...", "animation": "Sheepish"} + ] + }, + "MouthKiss5": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "Aah...", "animation": "Sheepish"} + ] + }, + "MouthKiss6": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "Mmm...", "animation": "Sheepish"} + ] + }, + "MouthKiss7": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "Eh?!", "animation": "Sheepish"} ] }, - "HeadRubBack5": {"text": "I'm...yours...", "animation": "EagerBack"}, - "HeadRubBack6": {"text": "Nice...", "animation": "EagerBack"}, - "HeadRubBack7": {"text": "Good...", "animation": "EagerBack"}, - "HeadRubBack8": {"text": "A little more...right over there, yeah.", "animation": "EagerBack"}, - "HeadRubBack9": {"text": "Feels good...", "animation": "EagerBack"}, - "HeadRubBack10": {"text": "...mmm...", "animation": "EagerBack"}, - "TailRubBack1": {"text": "Right where I photosynthesize...", "animation": "EagerBack"}, - "TailRubBack2": {"text": "You like the leaf at the end..?", "animation": "EagerBack"}, - "TailRubBack3": {"text": "Nice and long, isn't it?", "animation": "EagerBack"}, - "TailRubBack4": {"text": "Ooh, my secret favorite spot to touch...", "animation": "EagerBack"}, - "TailRubBack5": {"text": "You like my tail..?", "animation": "EagerBack"}, - "TailRubBack6": {"text": "Mmm...", "animation": "EagerBack"}, - "TailRubBack7": {"text": "Aaahh...", "animation": "EagerBack"}, - "TailRubBack8": {"text": "Lovely...", "animation": "EagerBack"}, - "TailRubBack9": {"text": "How kind of you...", "animation": "EagerBack"}, - "TailRubBack10": {"text": "Ooh...", "animation": "EagerBack"}, - "HeadRubBackFull-1": {"text": "Mmm, scratch behind there...", "animation": "EagerBack"}, - "HeadRubBackFull-2": {"text": "I can't help it...being pet does feel good...", "animation": "EagerBack"}, - "HeadRubBackFull-3": {"text": "Nothing beats head pats...", "animation": "EagerBack"}, - "HeadRubBackFull-4": {"text": "Who's a good Snivy? That's right, me...", "animation": "EagerBack"}, - "HeadRubBackFull-5": {"text": "I'm...yours...", "animation": "EagerBack"}, - "HeadRubBackFull-6": {"text": "Nice...", "animation": "EagerBack"}, - "HeadRubBackFull-7": {"text": "Good...", "animation": "EagerBack"}, - "HeadRubBackFull-8": {"text": "A little more...right over there, yeah.", "animation": "EagerBack"}, - "HeadRubBackFull-9": {"text": "Feels good...", "animation": "EagerBack"}, - "HeadRubBackFull-10": {"text": "...mmm...", "animation": "EagerBack"}, - "HeadRubBackFull-11": {"text": "Ooh, that feels good...", "animation": "EagerBack"}, - "HeadRubBackFull-12": {"text": "You know just where to rub...", "animation": "EagerBack"}, - "HeadRubBackFull-13": {"text": "That's the spot...", "animation": "EagerBack"}, - "HeadRubBackFull-14": {"text": "Feels nice...", "animation": "EagerBack"}, - "HeadRubBackFull-15": {"text": "Yeah...", "animation": "EagerBack"}, - "HeadRubBackFull-16": {"text": "Mmm...", "animation": "EagerBack"}, - "HeadRubBackFull-17": {"text": "Aaahh...", "animation": "EagerBack"}, - "HeadRubBackFull-18": {"text": "Lovely...", "animation": "EagerBack"}, - "HeadRubBackFull-19": {"text": "How kind of you...", "animation": "EagerBack"}, - "HeadRubBackFull-20": {"text": "Ooh...", "animation": "EagerBack"}, - "TailRubBackFull-1": {"text": "Right where I photosynthesize...", "animation": "EagerBack"}, - "TailRubBackFull-2": {"text": "You like the leaf at the end..?", "animation": "EagerBack"}, - "TailRubBackFull-3": {"text": "Nice and long, isn't it?", "animation": "EagerBack"}, - "TailRubBackFull-4": {"text": "Ooh, my secret favorite spot to touch...", "animation": "EagerBack"}, - "TailRubBackFull-5": {"text": "You like my tail..?", "animation": "EagerBack"}, - "TailRubBackFull-6": {"text": "Nice...", "animation": "EagerBack"}, - "TailRubBackFull-7": {"text": "Good...", "animation": "EagerBack"}, - "TailRubBackFull-8": {"text": "A little more...right over there, yeah.", "animation": "EagerBack"}, - "TailRubBackFull-9": {"text": "Feels good...", "animation": "EagerBack"}, - "TailRubBackFull-10": {"text": "...mmm...", "animation": "EagerBack"}, - "TailRubBackFull-11": {"text": "Ooh, that feels good...", "animation": "EagerBack"}, - "TailRubBackFull-12": {"text": "You know just where to rub...", "animation": "EagerBack"}, - "TailRubBackFull-13": {"text": "That's the spot...", "animation": "EagerBack"}, - "TailRubBackFull-14": {"text": "Feels nice...", "animation": "EagerBack"}, - "TailRubBackFull-15": {"text": "Yeah...", "animation": "EagerBack"}, - "TailRubBackFull-16": {"text": "Mmm...", "animation": "EagerBack"}, - "TailRubBackFull-17": {"text": "Aaahh...", "animation": "EagerBack"}, - "TailRubBackFull-18": {"text": "Lovely...", "animation": "EagerBack"}, - "TailRubBackFull-19": {"text": "How kind of you...", "animation": "EagerBack"}, - "TailRubBackFull-20": {"text": "Ooh...", "animation": "EagerBack"}, - "MouthKiss1": {"text": "I..I d-didn't think...", "animation": "Sheepish"}, - "MouthKiss2": {"text": "How...lovely...", "animation": "Sheepish"}, - "MouthKiss3": {"text": "I'm...yours...", "animation": "Sheepish"}, - "MouthKiss4": {"text": "A-again...", "animation": "Sheepish"}, - "MouthKiss5": {"text": "Aah...", "animation": "Sheepish"}, - "MouthKiss6": {"text": "Mmm...", "animation": "Sheepish"}, - "MouthKiss7": {"text": "Eh?!", "animation": "Sheepish"}, "MouthKiss8": { - "text": "K-Kissing a Snivy?!", - "animation": "Sheepish", - "effects": [ - { - "type": "color", - "start": 12, - "end": 17, - "color": [0.25098, 1, 0.25098] - } + "pools": ["MouthKiss"], + "lines": [ + {"text": "K-Kissing a [color=0.251 1 0.251]Snivy[/color]?!", "animation": "Sheepish"} + ] + }, + "MouthKiss9": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "Teehee...", "animation": "Sheepish"} + ] + }, + "MouthKiss10": { + "pools": ["MouthKiss"], + "lines": [ + {"text": "Mwehehe...", "animation": "Sheepish"} + ] + }, + "BellyKiss1": { + "pools": ["BellyKiss"], + "lines": [ + {"text": "K-kissing my belly?!", "animation": "BellyHold"} + ] + }, + "BellyKiss2": { + "pools": ["BellyKiss"], + "lines": [ + {"text": "A-are you expecting something?", "animation": "BellyHold"} + ] + }, + "BellyKiss3": { + "pools": ["BellyKiss"], + "lines": [ + {"text": "It's a food baby, I'm not...", "animation": "BellyHold"} + ] + }, + "BellyKiss4": { + "pools": ["BellyKiss"], + "lines": [ + {"text": "W-worship it...", "animation": "BellyHold"} + ] + }, + "BellyKiss5": { + "pools": ["BellyKiss"], + "lines": [ + {"text": "You did this to me!", "animation": "BellyHold"} + ] + }, + "TailKiss1": { + "pools": ["TailKiss"], + "lines": [ + {"text": "K-kissing my tail?!", "animation": "TailRub"} + ] + }, + "TailKiss2": { + "pools": ["TailKiss"], + "lines": [ + {"text": "Yeah, kiss my butt!", "animation": "TailRub"} + ] + }, + "TailKiss3": { + "pools": ["TailKiss"], + "lines": [ + {"text": "Worship it!", "animation": "TailRub"} ] }, - "MouthKiss9": {"text": "Teehee...", "animation": "Sheepish"}, - "MouthKiss10": {"text": "Mwehehe...", "animation": "Sheepish"}, - "BellyKiss1": {"text": "K-kissing my belly?!", "animation": "BellyHold"}, - "BellyKiss2": {"text": "A-are you expecting something?", "animation": "BellyHold"}, - "BellyKiss3": {"text": "It's a food baby, I'm not...", "animation": "BellyHold"}, - "BellyKiss4": {"text": "W-worship it...", "animation": "BellyHold"}, - "BellyKiss5": {"text": "You did this to me!", "animation": "BellyHold"}, - "TailKiss1": {"text": "K-kissing my tail?!", "animation": "TailRub"}, - "TailKiss2": {"text": "Yeah, kiss my butt!", "animation": "TailRub"}, - "TailKiss3": {"text": "Worship it!", "animation": "TailRub"}, "TailKiss4": { - "text": "Kiss it, KISS IT!", - "animation": "TailRub", - "effects": [ - {"type": "shake", "start": 9, "end": 16}, - {"type": "screenshake", "start": 9, "end": 9} + "pools": ["TailKiss"], + "lines": [ + {"text": "Kiss it, [shake][screenshake]KISS IT[/shake]!", "animation": "TailRub"} + ] + }, + "TailKiss5": { + "pools": ["TailKiss"], + "lines": [ + {"text": "Yeah, kiss it, punk!", "animation": "TailRub"} ] }, - "TailKiss5": {"text": "Yeah, kiss it, punk!", "animation": "TailRub"}, "Smack1": { - "text": "H-hey!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 6} + "pools": ["BellySmack", "TailSmack"], + "lines": [ + {"text": "[shake]H-hey![/shake]", "animation": "Cry"} ] }, "Smack2": { - "text": "Q-quit it!!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 11} + "pools": ["BellySmack", "TailSmack"], + "lines": [ + {"text": "[shake]Q-quit it!![/shake]", "animation": "Cry"} ] }, "Smack3": { - "text": "Ow!!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 4} + "pools": ["BellySmack", "TailSmack"], + "lines": [ + {"text": "[shake]Ow!![/shake]", "animation": "Cry"} ] }, "Smack4": { - "text": "Jerk!!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 6} + "pools": ["BellySmack", "TailSmack"], + "lines": [ + {"text": "[shake]Jerk!![/shake]", "animation": "Cry"} ] }, "Smack5": { - "text": "Stop it!!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 9} + "pools": ["BellySmack", "TailSmack"], + "lines": [ + {"text": "[shake]Stop it!![/shake]", "animation": "Cry"} ] }, "Smack6": { - "text": "Ouch!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 5} + "lines": [ + {"text": "[shake]Ouch![/shake]", "animation": "Cry"} ] }, "Smack7": { - "text": "Meanie!!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 8} + "lines": [ + {"text": "[shake]Meanie!![/shake]", "animation": "Cry"} ] }, "Smack8": { - "text": "Why did you do that!?", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 21} + "lines": [ + {"text": "[shake]Why did you do that!?[/shake]", "animation": "Cry"} ] }, "Smack9": { - "text": "R-rude!!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 8} + "lines": [ + {"text": "[shake]R-rude!![/shake]", "animation": "Cry"} ] }, "Smack10": { - "text": "T-that hurts!!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 14} + "lines": [ + {"text": "[shake]T-that hurts!![/shake]", "animation": "Cry"} ] }, "BellySmack1": { - "text": "T-that's where all of my food is!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 33} + "pools": ["BellySmack"], + "lines": [ + {"text": "[shake]T-that's where all of my food is![/shake]", "animation": "Cry"} ] }, "BellySmack2": { - "text": "Stop smacking my belly!!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 24} + "pools": ["BellySmack"], + "lines": [ + {"text": "[shake]Stop smacking my belly!![/shake]", "animation": "Cry"} ] }, "BellySmack3": { - "text": "T-that's the only thing I have!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 31} + "pools": ["BellySmack"], + "lines": [ + {"text": "[shake]T-that's the only thing I have![/shake]", "animation": "Cry"} ] }, "BellySmack4": { - "text": "Ow, my belly!!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 14} + "pools": ["BellySmack"], + "lines": [ + {"text": "[shake]Ow, my belly!![/shake]", "animation": "Cry"} ] }, "BellySmack5": { - "text": "Gentle on the belly, please!!", - "animation": "Cry", - "effects": [ - {"type": "shake", "end": 29} + "pools": ["BellySmack"], + "lines": [ + {"text": "[shake]Gentle on the belly, please!![/shake]", "animation": "Cry"} ] }, "TailSmack1": { - "text": "Stop spanking me!", - "animation": "TailRubFull", - "effects": [ - {"type": "shake", "end": 17} + "pools": ["TailSmack"], + "lines": [ + {"text": "[shake]Stop spanking me![/shake]", "animation": "TailRubFull"} ] }, "TailSmack2": { - "text": "Ow, my butt!!", - "animation": "TailRubFull", - "effects": [ - {"type": "shake", "end": 13} + "pools": ["TailSmack"], + "lines": [ + {"text": "[shake]Ow, my butt!![/shake]", "animation": "TailRubFull"} ] }, "TailSmack3": { - "text": "I've been a good Snivy!!", - "animation": "TailRubFull", - "effects": [ - {"type": "shake", "end": 24} + "pools": ["TailSmack"], + "lines": [ + {"text": "[shake]I've been a good Snivy!![/shake]", "animation": "TailRubFull"} ] }, "TailSmack4": { - "text": "My booty!!", - "animation": "TailRubFull", - "effects": [ - {"type": "shake", "end": 10} + "pools": ["TailSmack"], + "lines": [ + {"text": "[shake]My booty!![/shake]", "animation": "TailRubFull"} ] }, "TailSmack5": { - "text": "Stop, I can't photosynthesize!!", - "animation": "TailRubFull", - "effects": [ - {"type": "shake", "end": 31} + "pools": ["TailSmack"], + "lines": [ + {"text": "[shake]Stop, I can't photosynthesize!![/shake]", "animation": "TailRubFull"} ] }, "TailSmackBack1": { - "text": "H-hey!", - "animation": "PeevedBack", - "effects": [ - {"type": "shake", "end": 6} + "pools": ["TailSmackBack"], + "lines": [ + {"text": "[shake]H-hey![/shake]", "animation": "PeevedBack"} ] }, "TailSmackBack2": { - "text": "Q-quit it!!", - "animation": "PeevedBack", - "effects": [ - {"type": "shake", "end": 11} + "pools": ["TailSmackBack"], + "lines": [ + {"text": "[shake]Q-quit it!![/shake]", "animation": "PeevedBack"} ] }, "TailSmackBack3": { - "text": "Ow!!", - "animation": "PeevedBack", - "effects": [ - {"type": "shake", "end": 4} + "pools": ["TailSmackBack"], + "lines": [ + {"text": "[shake]Ow!![/shake]", "animation": "PeevedBack"} ] }, "TailSmackBack4": { - "text": "Jerk!!", - "animation": "PeevedBack", - "effects": [ - {"type": "shake", "end": 6} + "pools": ["TailSmackBack"], + "lines": [ + {"text": "[shake]Jerk!![/shake]", "animation": "PeevedBack"} ] }, "TailSmackBack5": { - "text": "Stop it!!", - "animation": "PeevedBack", - "effects": [ - {"type": "shake", "end": 9} + "pools": ["TailSmackBack"], + "lines": [ + {"text": "[shake]Stop it!![/shake]", "animation": "PeevedBack"} ] }, "TailSmackBack6": { - "text": "Stop spanking me!", - "animation": "PeevedBack", - "effects": [ - {"type": "shake", "end": 17} + "pools": ["TailSmackBack"], + "lines": [ + {"text": "[shake]Stop spanking me![/shake]", "animation": "PeevedBack"} ] }, "TailSmackBack7": { - "text": "Ow, my butt!!", - "animation": "PeevedBack", - "effects": [ - {"type": "shake", "end": 13} + "pools": ["TailSmackBack"], + "lines": [ + {"text": "[shake]Ow, my butt!![/shake]", "animation": "PeevedBack"} ] }, "TailSmackBack8": { - "text": "I've been a good Snivy!!", - "animation": "PeevedBack", - "effects": [ - {"type": "shake", "end": 24} + "pools": ["TailSmackBack"], + "lines": [ + {"text": "[shake]I've been a good Snivy!![/shake]", "animation": "PeevedBack"} ] }, "TailSmackBack9": { - "text": "My booty!!", - "animation": "PeevedBack", - "effects": [ - {"type": "shake", "end": 10} + "pools": ["TailSmackBack"], + "lines": [ + {"text": "[shake]My booty!![/shake]", "animation": "PeevedBack"} ] }, "TailSmackBack10": { - "text": "Stop, I can't photosynthesize!!", - "animation": "PeevedBack", - "effects": [ - {"type": "shake", "end": 31} + "pools": ["TailSmackBack"], + "lines": [ + {"text": "[shake]Stop, I can't photosynthesize!![/shake]", "animation": "PeevedBack"} ] }, "End": { - "text": "WAHAHAHAHA!", - "animation": "Horny", - "next": "End2", - "effects": [ - {"type": "scene"}, - {"type": "big", "end": 11}, - {"type": "shake", "end": 11}, - {"type": "screenshake"}, - {"type": "sound", "sound": "sfx/boom.ogg"} + "isScene": true, + "lines": [ + {"text": "[big][shake][screenshake][sound=sfx/boom.ogg]WAHAHAHAHA![/shake][/big]", "animation": "Horny"}, + {"text": "Look at me! [big][shake]I'm HUUUUUUUGE!!!!!![/shake][/big]", "animation": "Horny"}, + {"text": "...well, that just means we're at the [wave]beginning[/wave]!", "animation": "Smug"}, + {"text": "My first steps into multi-universal blobdom! I'll be a [wave]gajillion kilos![/wave] I'll eat [shake]g[screenshake]alaxies [/shake]and have enough rolls to [screenshake][shake]SQUASH PLANETS[/shake]!", "animation": "Horny"}, + {"text": "...wait, huh? [big][shake][screenshake][sound=sfx/boom.ogg]\"MAX\"?![/shake][/big]", "animation": "Thinking"}, + {"text": "[big][shake][screenshake]N-No! This can't be! [/shake][/big]This is as fat as I get?!?!", "animation": "Cry"}, + {"text": "I-I had plans! You'd be by my side, feeding me enough sweets to turn me into a [shake][screenshake]PLANET[/shake]! But it stops at this?!?!", "animation": "Peeved"}, + {"text": "Who let this happen?! [screenshake]What cruel being decided this is as fat as I get?!", "animation": "Cry"}, + {"text": "Maybe...maybe they're just lazy! It's like, making me get fatter would take too much effort, or something!", "animation": "Angry"}, + {"text": "They're an amateur and a [shake]FOOL[/shake]!! [big][shake]A stinking COWARD[/shake][/big]!!", "animation": "Peeved"}, + {"text": ".........", "animation": "Bummed"}, + {"text": "...um, well, I guess you can keep hanging out with me. And feeding and fattening me. Though I won't look different. Sad.", "animation": "Thinking"}, + {"text": "...and, huh? What's this? Something new did come up...", "animation": "Shocked"}, + {"text": "\"[color=1 0.25 0.25]Cheats[/color]\"? Well, that's interesting...", "animation": "Thinking"}, + {"text": "Well, whatever that means, have fun with it. I'll be here...as always...", "animation": "Neutral"}, + {"text": "...or, if you've gotten your jollies, you can leave, too. That's fine. But I'll always be here, if you want to hang out...", "animation": "Cry"}, + {"text": "...regardless, I appreciated you spending time with me!", "animation": "Neutral"}, + {"text": "...back to the usual, I suppose...", "animation": "NeutralFull"} ] }, - "End2": { - "text": "Look at me! I'm HUUUUUUUGE!!!!!!", - "animation": "Horny", - "next": "End3", - "effects": [ - {"type": "big", "start": 13, "end": 33}, - {"type": "shake", "start": 13, "end": 33} + "Stage1-1": { + "pools": ["Stage1"], + "lines": [ + {"text": "Still the same skinny old me...", "animation": "BellyRubFull"}, + {"text": "It's a long journey to blobdom. And you know what? [wave]I'm ready[/wave]!", "animation": "Horny"} ] }, - "End3": { - "text": "...well, that just means we're at the beginning!", - "animation": "Smug", - "next": "End4", - "effects": [ - {"type": "oscillation", "start": 38, "end": 47} + "Stage1-2": { + "pools": ["Stage1"], + "lines": [ + {"text": "It's always the start that's the most fun, y'know?", "animation": "Thinking"}, + {"text": "The first few pounds creeping on...where it's most apparent...", "animation": "Eager"}, + {"text": "Savor it while it lasts!", "animation": "Smug"} ] }, - "End4": { - "text": "My first steps into multi-universal blobdom! I'll be a gajillion kilos! I'll eat galaxies and have enough rolls to SQUASH PLANETS!", - "animation": "Horny", - "next": "End5", - "effects": [ - {"type": "oscillation", "start": 55, "end": 71}, - {"type": "screenshake", "start": 83, "end": 83}, - {"type": "shake", "start": 82, "end": 91}, - {"type": "screenshake", "start": 116, "end": 116}, - {"type": "shake", "start": 116, "end": 130} + "Stage1-3": { + "pools": ["Stage1"], + "lines": [ + {"text": "This is where it all begins!", "animation": "Smug"}, + {"text": "Are you ready for this journey of ours?", "animation": "Smug"}, + {"text": "I was always the runt of the herd...time to show them what I'm made of!", "animation": "Eager"} ] }, - "End5": { - "text": "...wait, huh? \"MAX\"?!", - "animation": "Thinking", - "next": "End6", - "effects": [ - {"type": "big", "start": 15, "end": 22}, - {"type": "shake", "start": 15, "end": 22}, - {"type": "screenshake", "start": 15, "end": 15}, - {"type": "sound", "start": 15, "end": 15, "sound": "sfx/boom.ogg"} - ] - }, - "End6": { - "text": "N-No! This can't be! This is as fat as I get?!?!", - "animation": "Cry", - "next": "End7", - "effects": [ - {"type": "big", "end": 22}, - {"type": "shake", "end": 22}, - {"type": "screenshake"} - ] - }, - "End7": { - "text": "I-I had plans! You'd be by my side, feeding me enough sweets to turn me into a PLANET! But it stops at this?!?!", - "animation": "Peeved", - "next": "End8", - "effects": [ - {"type": "shake", "start": 79, "end": 85}, - {"type": "screenshake", "start": 79, "end": 79} - ] - }, - "End8": { - "text": "Who let this happen?! What cruel being decided this is as fat as I get?!", - "animation": "Cry", - "next": "End9", - "effects": [ - {"type": "screenshake", "start": 22, "end": 22} - ] - }, - "End9": {"text": "Maybe...maybe they're just lazy! It's like, making me get fatter would take too much effort, or something!", "animation": "Angry", "next": "End10"}, - "End10": { - "text": "They're an amateur and a FOOL!! A stinking COWARD!!", - "animation": "Peeved", - "next": "End11", - "effects": [ - {"type": "big", "start": 33, "end": 50}, - {"type": "shake", "start": 33, "end": 50}, - {"type": "shake", "start": 25, "end": 29} - ] - }, - "End11": {"text": ".........", "animation": "Bummed", "next": "End12"}, - "End12": {"text": "...um, well, I guess you can keep hanging out with me. And feeding and fattening me. Though I won't look different. Sad.", "animation": "Thinking", "next": "End13"}, - "End13": {"text": "...and, huh? What's this? Something new did come up...", "animation": "Shocked", "next": "End14"}, - "End14": { - "text": "\"Cheats\"? Well, that's interesting...", - "animation": "Thinking", - "next": "End15", - "effects": [ - { - "type": "color", - "start": 1, - "end": 7, - "color": [1, 0.25, 0.25] - } - ] - }, - "End15": {"text": "Well, whatever that means, have fun with it. I'll be here...as always...", "animation": "Neutral", "next": "End16"}, - "End16": {"text": "...or, if you've gotten your jollies, you can leave, too. That's fine. But I'll always be here, if you want to hang out...", "animation": "Cry", "next": "End17"}, - "End17": {"text": "...regardless, I appreciated you spending time with me!", "animation": "Neutral", "next": "End18"}, - "End18": {"text": "...back to the usual, I suppose...", "animation": "NeutralFull"}, - "Stage1-1": {"text": "Still the same skinny old me...", "animation": "BellyRubFull", "next": "Stage1-1-2"}, - "Stage1-1-2": { - "text": "It's a long journey to blobdom. And you know what? I'm ready!", - "animation": "Horny", - "effects": [ - {"type": "oscillation", "start": 51, "end": 60} - ] - }, - "Stage1-2": {"text": "It's always the start that's the most fun, y'know?", "animation": "Thinking", "next": "Stage1-2-2"}, - "Stage1-2-2": {"text": "The first few pounds creeping on...where it's most apparent...", "animation": "Eager", "next": "Stage1-2-3"}, - "Stage1-2-3": {"text": "Savor it while it lasts!", "animation": "Smug"}, - "Stage1-3": {"text": "This is where it all begins!", "animation": "Smug", "next": "Stage1-3-2"}, - "Stage1-3-2": {"text": "Are you ready for this journey of ours?", "animation": "Smug", "next": "Stage1-3-3"}, - "Stage1-3-3": {"text": "I was always the runt of the herd...time to show them what I'm made of!", "animation": "Eager"}, "Stage2-1": { - "text": "Look!! I'm getting a belly now!!", - "animation": "Horny", - "next": "Stage2-1-2", - "effects": [ - { - "type": "color", - "end": 4, - "color": [1, 0.25, 0.25] - }, - {"type": "big", "end": 8}, - {"type": "screenshake"}, - {"type": "shake", "end": 6} + "pools": ["Stage2"], + "lines": [ + {"text": "[color=1 0.25 0.25][big][screenshake][shake]Look[/color]!![/shake] [/big]I'm getting a belly now!!", "animation": "Horny"}, + {"text": "I'm so HAPPY! I didn't think this could actually happen! But, it is!", "animation": "Horny"} ] }, - "Stage2-1-2": {"text": "I'm so HAPPY! I didn't think this could actually happen! But, it is!", "animation": "Horny"}, "Stage2-2": { - "text": "It's happening, IT'S HAPPENING!", - "animation": "Horny", - "next": "Stage2-2-2", - "effects": [ - {"type": "shake", "start": 16, "end": 30}, - {"type": "screenshake", "start": 16, "end": 16} + "pools": ["Stage2"], + "lines": [ + {"text": "It's happening, [shake][screenshake]IT'S HAPPENING[/shake]!", "animation": "Horny"}, + {"text": "It feels so warm...and soft..!", "animation": "Eager"} ] }, - "Stage2-2-2": {"text": "It feels so warm...and soft..!", "animation": "Eager"}, "Stage2-3": { - "text": "I-it's growing! I-I'm growing!!", - "animation": "Horny", - "next": "Stage2-3-2", - "effects": [ - {"type": "big", "start": 17, "end": 32} - ] - }, - "Stage2-3-2": { - "text": "I can't believe it! I thought I'd be just a small, tiny Snivy forever!", - "animation": "Horny", - "next": "Stage2-3-3", - "effects": [ - { - "type": "color", - "start": 56, - "end": 61, - "color": [0.25098, 1, 0.25098] - } - ] - }, - "Stage2-3-3": { - "text": "But, nope! I'm getting FAT, and there's no turning back!!", - "animation": "Eager", - "effects": [ - {"type": "shake", "start": 23, "end": 26}, - {"type": "shake", "start": 23, "end": 24} + "pools": ["Stage2"], + "lines": [ + {"text": "I-it's growing! [big]I-I'm growing!![/big]", "animation": "Horny"}, + {"text": "I can't believe it! I thought I'd be just a small, tiny [color=0.251 1 0.251]Snivy[/color] forever!", "animation": "Horny"}, + {"text": "But, nope! I'm getting [shake][shake]F[/shake]AT[/shake], and there's no turning back!!", "animation": "Eager"} ] }, "Stage3-1": { - "text": "It just keeps happening!! I keep GROWING!!", - "animation": "Horny", - "next": "Stage3-1-2", - "effects": [ - {"type": "big", "start": 27, "end": 43}, - {"type": "screenshake", "start": 27, "end": 27}, - {"type": "shake", "start": 27, "end": 43} + "pools": ["Stage3"], + "lines": [ + {"text": "It just keeps happening!! [big][screenshake][shake]I keep GROWING!![/shake][/big]", "animation": "Horny"}, + {"text": "I've got real squish, now!", "animation": "BellyHold"} ] }, - "Stage3-1-2": {"text": "I've got real squish, now!", "animation": "BellyHold"}, "Stage3-2": { - "text": "I'M GETTING FATTER!!! YES!!!", - "animation": "Horny", - "next": "Stage3-2-2", - "effects": [ - {"type": "big", "end": 28}, - {"type": "shake", "end": 28}, - {"type": "screenshake"} - ] - }, - "Stage3-2-2": { - "text": "It can't be denied anymore! I'm not a skinny Snivy, anymore!!", - "animation": "BellyHold", - "effects": [ - { - "type": "color", - "start": 45, - "end": 50, - "color": [0.25098, 1, 0.25098] - } + "pools": ["Stage3"], + "lines": [ + {"text": "[big][shake][screenshake]I'M GETTING FATTER!!! YES!!![/shake][/big]", "animation": "Horny"}, + {"text": "It can't be denied anymore! I'm not a skinny [color=0.251 1 0.251]Snivy[/color], anymore!!", "animation": "BellyHold"} ] }, "Stage3-3": { - "text": "It feels so good to get bigger!!!", - "animation": "Horny", - "next": "Stage3-3-2", - "effects": [ - {"type": "oscillation", "start": 24, "end": 30} + "pools": ["Stage3"], + "lines": [ + {"text": "It feels so good to get [wave]bigger[/wave]!!!", "animation": "Horny"}, + {"text": "I'm in heaven, right now!", "animation": "Horny"}, + {"text": "Don't think we're anywhere near done, yet, though!!", "animation": "Smug"} ] }, - "Stage3-3-2": {"text": "I'm in heaven, right now!", "animation": "Horny", "next": "Stage3-3-3"}, - "Stage3-3-3": {"text": "Don't think we're anywhere near done, yet, though!!", "animation": "Smug"}, - "Stage4-1": {"text": "There's a voice in my head that says \"you can still go back...\"", "animation": "Thinking", "next": "Stage4-1-2"}, - "Stage4-1-2": { - "text": "NO I CAN'T! I NEED TO GET FATTER!!", - "animation": "Horny", - "effects": [ - {"type": "big", "end": 34}, - {"type": "shake", "end": 34} + "Stage4-1": { + "pools": ["Stage4"], + "lines": [ + {"text": "There's a voice in my head that says \"you can still go back...\"", "animation": "Thinking"}, + {"text": "[big][shake]NO I CAN'T! I NEED TO GET FATTER!![/shake][/big]", "animation": "Horny"} ] }, - "Stage4-2": {"text": "My feet are feeling pretty strained...", "animation": "BellyRubFull", "next": "Stage4-2-2"}, - "Stage4-2-2": {"text": "It might not be too long before...I'm...", "animation": "Bummed"}, - "Stage4-3": {"text": "Ough, look at me. Looks like I swallowed a cannonball!", "animation": "BellyHold", "next": "Stage4-3-2"}, - "Stage4-3-2": {"text": "I need to look like I've swallowed a whole armada..!", "animation": "Horny"}, - "Stage5-1": {"text": "...um, yeah. I can't move anymore.", "animation": "BellyRubFull", "next": "Stage5-1-2"}, - "Stage5-1-2": { - "text": "Who needs to walk, anyways?! I DON'T!!", - "animation": "Horny", - "effects": [ - {"type": "big", "start": 30, "end": 39}, - {"type": "screenshake", "start": 30, "end": 30}, - {"type": "shake", "start": 30, "end": 39}, - {"type": "sound", "start": 30, "end": 30, "sound": "sfx/boom.ogg"} + "Stage4-2": { + "pools": ["Stage4"], + "lines": [ + {"text": "My feet are feeling pretty strained...", "animation": "BellyRubFull"}, + {"text": "It might not be too long before...I'm...", "animation": "Bummed"} ] }, - "Stage5-2": {"text": "This is it, then. I'm immobile. No more frolicking, no more strolls in the woods...", "animation": "BellyRubFull", "next": "Stage5-2-2"}, - "Stage5-2-2": { - "text": "...you're the one who will have to take care of me now. And to get me...fatter.", - "animation": "HeadRubFull", - "next": "Stage5-2-3", - "effects": [ - {"type": "shake", "start": 73, "end": 79} + "Stage4-3": { + "pools": ["Stage4"], + "lines": [ + {"text": "Ough, look at me. Looks like I swallowed a cannonball!", "animation": "BellyHold"}, + {"text": "I need to look like I've swallowed a whole armada..!", "animation": "Horny"} + ] + }, + "Stage5-1": { + "pools": ["Stage5"], + "lines": [ + {"text": "...um, yeah. I can't move anymore.", "animation": "BellyRubFull"}, + {"text": "Who needs to walk, anyways?! [big][screenshake][shake][sound=sfx/boom.ogg]I DON'T!![/shake][/big]", "animation": "Horny"} + ] + }, + "Stage5-2": { + "pools": ["Stage5"], + "lines": [ + {"text": "This is it, then. I'm immobile. No more frolicking, no more strolls in the woods...", "animation": "BellyRubFull"}, + {"text": "...you're the one who will have to take care of me now. And to get me...[shake]fatter[/shake].", "animation": "HeadRubFull"}, + {"text": "Are you up to the task?!", "animation": "Horny"} ] }, - "Stage5-2-3": {"text": "Are you up to the task?!", "animation": "Horny"}, "Stage5-3": { - "text": "Nnnnnggh...", - "animation": "HeadRubFull", - "next": "Stage5-3-2", - "effects": [ - {"type": "shake", "end": 11}, - {"type": "screenshake"} + "pools": ["Stage5"], + "lines": [ + {"text": "[shake][screenshake]Nnnnnggh...[/shake]", "animation": "HeadRubFull"}, + {"text": "Can't...move...my...stubby legs...anymore...", "animation": "HeadRubFull"}, + {"text": "I don't need to move!! W-who cares about that? Take care of my fat butt, will you?!", "animation": "Peeved"} ] }, - "Stage5-3-2": {"text": "Can't...move...my...stubby legs...anymore...", "animation": "HeadRubFull", "next": "Stage5-3-3"}, - "Stage5-3-3": {"text": "I don't need to move!! W-who cares about that? Take care of my fat butt, will you?!", "animation": "Peeved"}, - "Stage6-1": {"text": "Getting used to immobility, now...do I miss my old life..?", "animation": "Thinking", "next": "Stage6-1-2"}, - "Stage6-1-2": { - "text": "I shouldn't dwell on the past! This is my life, now! Getting fatter, FOREVER!!", - "animation": "Horny", - "effects": [ - {"type": "big", "start": 53, "end": 78}, - {"type": "screenshake", "start": 53, "end": 53}, - {"type": "shake", "start": 53, "end": 78} + "Stage6-1": { + "pools": ["Stage6"], + "lines": [ + {"text": "Getting used to immobility, now...do I miss my old life..?", "animation": "Thinking"}, + {"text": "I shouldn't dwell on the past! This is my life, now! [big][screenshake][shake] Getting fatter, FOREVER![/shake][/big]!", "animation": "Horny"} + ] + }, + "Stage6-2": { + "pools": ["Stage6"], + "lines": [ + {"text": "Think you could still carry me? I doubt it!", "animation": "Smug"}, + {"text": "Why, I'm pretty close to becoming a living beanbag now, aren't I?!", "animation": "Horny"} ] }, - "Stage6-2": {"text": "Think you could still carry me? I doubt it!", "animation": "Smug", "next": "Stage6-2-2"}, - "Stage6-2-2": {"text": "Why, I'm pretty close to becoming a living beanbag now, aren't I?!", "animation": "Horny"}, "Stage6-3": { - "text": "I'm fat. Fat. Fat. Faaaaaaat.", - "animation": "BellyHold", - "next": "Stage6-3-2", - "effects": [ - {"type": "oscillation", "start": 20, "end": 29} + "pools": ["Stage6"], + "lines": [ + {"text": "I'm fat. Fat. Fat. [wave]Faaaaaaat[/wave].", "animation": "BellyHold"}, + {"text": "[wave]I need to get so much fatter...[/wave]", "animation": "HeadRub"}, + {"text": "[screenshake]Oh! Right. Yeah. Um. You heard me.[screenshake] G-get to work!", "animation": "Surprised"} ] }, - "Stage6-3-2": { - "text": "I need to get so much fatter...", - "animation": "HeadRub", - "next": "Stage6-3-3", - "effects": [ - {"type": "oscillation", "end": 31} + "Stage7-1": { + "pools": ["Stage7"], + "lines": [ + {"text": "I've been immobile for awhile, now...", "animation": "Thinking"}, + {"text": "Honestly, it's not too bad. Get to sit on my fat butt and treated like royalty!", "animation": "Smug"}, + {"text": "I'm promoting you to head servant! Even though that's been your job, that's your title, now!", "animation": "Horny"} ] }, - "Stage6-3-3": { - "text": "Oh! Right. Yeah. Um. You heard me. G-get to work!", - "animation": "Surprised", - "effects": [ - {"type": "screenshake"}, - {"type": "screenshake", "start": 34, "end": 34} + "Stage7-2": { + "pools": ["Stage7"], + "lines": [ + {"text": "My tail is becoming a throne! I just sit upon it!", "animation": "Smug"}, + {"text": "Such a comfy seat...you want to try sitting on me?", "animation": "Horny"}, + {"text": "Actually, still don't think I'm there, quite yet...", "animation": "Bummed"} ] }, - "Stage7-1": {"text": "I've been immobile for awhile, now...", "animation": "Thinking", "next": "Stage7-1-2"}, - "Stage7-1-2": {"text": "Honestly, it's not too bad. Get to sit on my fat butt and treated like royalty!", "animation": "Smug", "next": "Stage7-1-3"}, - "Stage7-1-3": {"text": "I'm promoting you to head servant! Even though that's been your job, that's your title, now!", "animation": "Horny"}, - "Stage7-2": {"text": "My tail is becoming a throne! I just sit upon it!", "animation": "Smug", "next": "Stage7-2-2"}, - "Stage7-2-2": {"text": "Such a comfy seat...you want to try sitting on me?", "animation": "Horny", "next": "Stage7-2-3"}, - "Stage7-2-3": {"text": "Actually, still don't think I'm there, quite yet...", "animation": "Bummed"}, - "Stage7-3": {"text": "Keep up the pace, my dear friend...", "animation": "BellyHold", "next": "Stage7-3-2"}, - "Stage7-3-2": { - "text": "I'll be ENORMOUS in no time!!!", - "animation": "Horny", - "next": "Stage7-3-3", - "effects": [ - {"type": "shake", "start": 8, "end": 16}, - {"type": "screenshake", "start": 8, "end": 8}, - {"type": "sound", "start": 8, "end": 8, "sound": "sfx/boom.ogg"} + "Stage7-3": { + "pools": ["Stage7"], + "lines": [ + {"text": "Keep up the pace, my dear friend...", "animation": "BellyHold"}, + {"text": "I'll be [shake][screenshake][sound=sfx/boom.ogg]ENORMOUS[/shake] in no time!!!", "animation": "Horny"}, + {"text": "My dream is slowly becoming realized...but it takes such a long time to get there..!", "animation": "Cry"} ] }, - "Stage7-3-3": {"text": "My dream is slowly becoming realized...but it takes such a long time to get there..!", "animation": "Cry"}, - "Stage8-1": {"text": "Look at my arms!", "animation": "TailRub", "next": "Stage8-1-2"}, - "Stage8-1-2": {"text": "See how chubby they're getting now?", "animation": "TailRub", "next": "Stage8-1-3"}, - "Stage8-1-3": {"text": "Sometimes it's the little things that grow that are nice, yes?", "animation": "Smug"}, - "Stage8-2": {"text": "Oof, it's getting really hard to move my tail, now...", "animation": "Smug", "next": "Stage8-2-2"}, - "Stage8-2-2": {"text": "...not that I particularly need to. It's perpetually pointed up at the sun, now...", "animation": "Thinking", "next": "Stage8-2-3"}, - "Stage8-2-3": { - "text": "Oh, Mighty Orb Of Fire! Grant me energy! Fattening energy!", - "animation": "HeadRub", - "effects": [ - {"type": "big", "start": 42, "end": 59}, - {"type": "shake", "start": 42, "end": 59}, - {"type": "screenshake", "start": 42, "end": 42}, - {"type": "sound", "start": 42, "end": 42, "sound": "sfx/boom.ogg"}, - { - "type": "color", - "start": 4, - "end": 22, - "color": [1, 0.25, 0.25] - } + "Stage8-1": { + "pools": ["Stage8"], + "lines": [ + {"text": "Look at my arms!", "animation": "TailRub"}, + {"text": "See how chubby they're getting now?", "animation": "TailRub"}, + {"text": "Sometimes it's the little things that grow that are nice, yes?", "animation": "Smug"} + ] + }, + "Stage8-2": { + "pools": ["Stage8"], + "lines": [ + {"text": "Oof, it's getting really hard to move my tail, now...", "animation": "Smug"}, + {"text": "...not that I particularly need to. It's perpetually pointed up at the sun, now...", "animation": "Thinking"}, + {"text": "Oh, [color=1 0.25 0.25]Mighty Orb Of Fire[/color]! Grant me energy! [big][shake][screenshake][sound=sfx/boom.ogg]Fattening energy![/shake][/big]", "animation": "HeadRub"} + ] + }, + "Stage8-3": { + "pools": ["Stage8"], + "lines": [ + {"text": "My feet are getting really covered in fat, now!", "animation": "BellyHold"}, + {"text": "Eventually, they'll be totally covered in sweet, sweet adipose tissue...", "animation": "Horny"} ] }, - "Stage8-3": {"text": "My feet are getting really covered in fat, now!", "animation": "BellyHold", "next": "Stage8-3-2"}, - "Stage8-3-2": {"text": "Eventually, they'll be totally covered in sweet, sweet adipose tissue...", "animation": "Horny"}, "Stage9-1": { - "text": "BIGGER! MAKE ME BIGGER! KEEP IT UP!!!", - "animation": "Horny", - "effects": [ - {"type": "big", "end": 37}, - {"type": "shake", "end": 37}, - {"type": "screenshake"}, - {"type": "sound", "sound": "sfx/boom.ogg"}, - {"type": "screenshake", "start": 16, "end": 16}, - {"type": "screenshake", "start": 24, "end": 24} + "pools": ["Stage9"], + "lines": [ + {"text": "[big][shake][screenshake][sound=sfx/boom.ogg]BIGGER! MAKE ME [screenshake]BIGGER! [screenshake]KEEP IT UP!!![/shake][/big]", "animation": "Horny"} ] }, "Stage9-2": { - "text": "I NEED TO BE HUGE! HOUSE-SIZED! FOREST-SIZED! MOUNTAIN-SIZED! PLANETARY!!!!", - "animation": "Horny", - "effects": [ - {"type": "big", "end": 75}, - {"type": "shake", "end": 75}, - {"type": "screenshake"}, - {"type": "screenshake", "start": 19, "end": 19}, - {"type": "screenshake", "start": 32, "end": 32}, - {"type": "screenshake", "start": 46, "end": 46}, - {"type": "screenshake", "start": 62, "end": 62} + "pools": ["Stage9"], + "lines": [ + {"text": "[big][shake][screenshake]I NEED TO BE HUGE! [screenshake]HOUSE-SIZED! [screenshake]FOREST-SIZED! [screenshake]MOUNTAIN-SIZED! [screenshake]PLANETARY!!!![/shake][/big]", "animation": "Horny"} ] }, "Stage9-3": { - "text": "BIG! BIG! FAT! FATTER! FATTER! BIG, FAT, FATTER...AAAAAAAAAA!!!!!!!!!!!", - "animation": "Horny", - "effects": [ - {"type": "big", "end": 71}, - {"type": "shake", "end": 71}, - {"type": "sound", "sound": "sfx/boom.ogg"}, - {"type": "screenshake", "start": 5, "end": 5}, - {"type": "screenshake", "start": 10, "end": 10}, - {"type": "screenshake", "start": 23, "end": 23}, - {"type": "screenshake", "start": 31, "end": 31}, - {"type": "screenshake", "start": 41, "end": 41}, - {"type": "screenshake", "start": 50, "end": 50} + "pools": ["Stage9"], + "lines": [ + {"text": "[big][shake][sound=sfx/boom.ogg]BIG! [screenshake]BIG! [screenshake]FAT! FATTER! [screenshake]FATTER! [screenshake]BIG, FAT, [screenshake]FATTER...[screenshake]AAAAAAAAAA!!!!!!!!!!![/shake][/big]", "animation": "Horny"} ] }, - "Stage10-1": {"text": "I'm a beanbag, now! A total pile of lard!", "animation": "Horny", "next": "Stage10-1-2"}, - "Stage10-1-2": {"text": "Rest upon my massive belly! Rub it, worship it!!", "animation": "BellyHold", "next": "Stage10-1-3"}, - "Stage10-1-3": { - "text": "TOUCH MY MASS IN ANY WAY YOU PLEASE!!", - "animation": "Horny", - "effects": [ - {"type": "big", "end": 37}, - {"type": "shake", "end": 37}, - {"type": "screenshake"}, - {"type": "oscillation", "end": 37} + "Stage10-1": { + "pools": ["Stage10"], + "lines": [ + {"text": "I'm a beanbag, now! A total pile of lard!", "animation": "Horny"}, + {"text": "Rest upon my massive belly! Rub it, worship it!!", "animation": "BellyHold"}, + {"text": "[big][shake][screenshake][wave]TOUCH MY MASS IN ANY WAY YOU PLEASE!![/wave][/shake][/big]", "animation": "Horny"} ] }, - "Stage10-2": {"text": "Shame I don't seem to be getting any bigger...", "animation": "Bummed", "next": "Stage10-2-2"}, - "Stage10-2-2": {"text": "...some Pokémon might think this is already too big!", "animation": "Thinking", "next": "Stage10-2-3"}, - "Stage10-2-3": {"text": "They're coward who deserve to be dwarfed under my massive fat rear end!!", "animation": "Peeved"}, - "Stage10-3": {"text": "Thanks for fattening me all the way here...", "animation": "Neutral", "next": "Stage10-3-2"}, - "Stage10-3-2": {"text": "It's been a long, arduous journey of feeding and fattening, hasn't it?", "animation": "Thinking", "next": "Stage10-3-3"}, - "Stage10-3-3": {"text": "Tens of thousands...hundreds...?...of calories...all into my ravenous belly...", "animation": "BellyHold", "next": "Stage10-3-4"}, - "Stage10-3-4": {"text": "The flavors, the treats...making my taste buds sing and my tummy rumble!", "animation": "Eager", "next": "Stage10-3-5"}, - "Stage10-3-5": {"text": "Even my jaw is sore from how much eating I've done...", "animation": "Sheepish", "next": "Stage10-3-6"}, - "Stage10-3-6": {"text": "I thank you for your persistence, my head servant...", "animation": "Neutral", "next": "Stage10-3-7"}, - "Stage10-3-7": { - "text": "...have I been to mean to you? I mean, I know Snivy is known for being smug and condescending...", - "animation": "Thinking", - "next": "Stage10-3-8", - "effects": [ - { - "type": "color", - "start": 46, - "end": 51, - "color": [0.211765, 1, 0.25098] - } + "Stage10-2": { + "pools": ["Stage10"], + "lines": [ + {"text": "Shame I don't seem to be getting any bigger...", "animation": "Bummed"}, + {"text": "...some Pokémon might think this is already too big!", "animation": "Thinking"}, + {"text": "They're coward who deserve to be dwarfed under my massive fat rear end!!", "animation": "Peeved"} ] }, - "Stage10-3-8": {"text": "...but, really. I'm indebted to you. Every bit of mass on my figure, is all thanks to you.", "animation": "Surprised", "next": "Stage10-3-9"}, - "Stage10-3-9": {"text": "...", "animation": "Cry", "next": "Stage10-3-10"}, - "Stage10-3-10": {"text": "...thank you. Thank you. I...really mean it.", "animation": "Cry", "next": "Stage10-3-11"}, - "Stage10-3-11": {"text": "Some Pokémon have great ambitions. Some have small ones...", "animation": "Thinking", "next": "Stage10-3-12"}, - "Stage10-3-12": {"text": "...but, they're ambitions all the same. And no matter what scale...", "animation": "Thinking", "next": "Stage10-3-13"}, - "Stage10-3-13": {"text": "...you've helped me with mine. Sure, it's weird, crass, and perverse...", "animation": "Cry", "next": "Stage10-3-14"}, - "Stage10-3-14": {"text": "...driven by hedonism and decadency...", "animation": "Thinking", "next": "Stage10-3-15"}, - "Stage10-3-15": {"text": "...but you've helped me fulfill it. And isn't that what life is about? If not, then what?", "animation": "Cry", "next": "Stage10-3-16"}, - "Stage10-3-16": {"text": "What else did Arceus put me on this Earth to do? I don't know. All I know is that I found something...", "animation": "Cry", "next": "Stage10-3-17"}, - "Stage10-3-17": {"text": "...and I found you.", "animation": "Cry", "next": "Stage10-3-18"}, - "Stage10-3-18": {"text": "Thank you... Thank you so much.", "animation": "Neutral", "next": "Stage10-3-19"}, - "Stage10-3-19": {"text": "Thank you for playing this little game...", "animation": "Sheepish", "next": "Stage10-3-20"}, - "Stage10-3-20": {"text": "..and thank you for giving me meaning.", "animation": "Cry"} + "Stage10-3": { + "pools": ["Stage10"], + "lines": [ + {"text": "Thanks for fattening me all the way here...", "animation": "Neutral"}, + {"text": "It's been a long, arduous journey of feeding and fattening, hasn't it?", "animation": "Thinking"}, + {"text": "Tens of thousands...hundreds...?...of calories...all into my ravenous belly...", "animation": "BellyHold"}, + {"text": "The flavors, the treats...making my taste buds sing and my tummy rumble!", "animation": "Eager"}, + {"text": "Even my jaw is sore from how much eating I've done...", "animation": "Sheepish"}, + {"text": "I thank you for your persistence, my head servant...", "animation": "Neutral"}, + {"text": "...have I been to mean to you? I mean, I know [color=0.2118 1 0.251]Snivy[/color] is known for being smug and condescending...", "animation": "Thinking"}, + {"text": "...but, really. I'm indebted to you. Every bit of mass on my figure, is all thanks to you.", "animation": "Surprised"}, + {"text": "...", "animation": "Cry"}, + {"text": "...thank you. Thank you. I...really mean it.", "animation": "Cry"}, + {"text": "Some Pokémon have great ambitions. Some have small ones...", "animation": "Thinking"}, + {"text": "...but, they're ambitions all the same. And no matter what scale...", "animation": "Thinking"}, + {"text": "...you've helped me with mine. Sure, it's weird, crass, and perverse...", "animation": "Cry"}, + {"text": "...driven by hedonism and decadency...", "animation": "Thinking"}, + {"text": "...but you've helped me fulfill it. And isn't that what life is about? If not, then what?", "animation": "Cry"}, + {"text": "What else did Arceus put me on this Earth to do? I don't know. All I know is that I found something...", "animation": "Cry"}, + {"text": "...and I found you.", "animation": "Cry"}, + {"text": "Thank you... Thank you so much.", "animation": "Neutral"}, + {"text": "Thank you for playing this little game...", "animation": "Sheepish"}, + {"text": "..and thank you for giving me meaning.", "animation": "Cry"} + ] + } } } diff --git a/resources/characters/snivy/font/icons.ttf b/resources/characters/snivy/font/icons.ttf deleted file mode 100644 index ed407fb..0000000 Binary files a/resources/characters/snivy/font/icons.ttf and /dev/null differ diff --git a/resources/characters/snivy/gfx/cursor/cursor.anm2 b/resources/characters/snivy/gfx/cursor/cursor.anm2 deleted file mode 100644 index 958a312..0000000 --- a/resources/characters/snivy/gfx/cursor/cursor.anm2 +++ /dev/null @@ -1,619 +0,0 @@ -{ - "anm2ed": 1, - "info": {"createdOn": "2025-12-11T16:28:10"}, - "spritesheets": [ - { - "path": "cursor.png", - "regions": [ - { - "name": "Default", - "crop": [80, 28], - "size": [22, 26], - "origin": "topLeft" - }, - { - "name": "Pan", - "crop": [30, 28], - "size": [23, 26], - "origin": "topLeft" - }, - { - "name": "Grab", - "crop": [1, 31], - "size": [25, 25], - "origin": "topLeft" - }, - { - "name": "Point", - "crop": [31, 56], - "size": [23, 26], - "origin": "topLeft" - }, - { - "name": "Hover", - "crop": [31, 84], - "size": [32, 16], - "origin": "topLeft" - }, - { - "name": "Kiss", - "crop": [1, 58], - "size": [28, 22], - "origin": "topLeft" - }, - { - "name": "KissPucker", - "crop": [1, 82], - "size": [28, 22], - "origin": "topLeft" - }, - { - "name": "Dispose", - "crop": [1, 1], - "size": [27, 28], - "origin": "topLeft" - }, - { - "name": "Zoom", - "crop": [55, 28], - "size": [23, 25], - "origin": "topLeft" - }, - { - "name": "Smack", - "crop": [30, 1], - "size": [27, 25], - "origin": "topLeft" - }, - { - "name": "TurnAround", - "crop": [59, 1], - "size": [26, 25], - "origin": "topLeft" - } - ] - } - ], - "layers": [ - {"name": "Default"} - ], - "defaultAnimation": "Default", - "animations": { - "Default": { - "length": 16, - "root": [ - { - "scale": [150, 150], - "delay": 16 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 0, "delay": 7, "interpolation": "linear"}, - { - "region": 0, - "scale": [95, 95], - "delay": 8, - "interpolation": "linear" - }, - {"region": 0, "interpolation": "linear"} - ] - } - ] - }, - "Click": { - "length": 15, - "loop": false, - "root": [ - { - "scale": [150, 150], - "delay": 15 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - { - "region": 0, - "scale": [110, 110], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 0, - "scale": [90, 90], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 0, - "scale": [105, 105], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 0, - "scale": [95, 95], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 0, - "scale": [102, 102], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 0, - "scale": [98, 98], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 0, - "scale": [101, 101], - "delay": 2, - "interpolation": "linear" - }, - {"region": 0, "interpolation": "linear"} - ] - } - ] - }, - "Pan": { - "length": 16, - "root": [ - { - "scale": [150, 150], - "delay": 16 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 1, "delay": 7, "interpolation": "easeInOut"}, - { - "region": 1, - "scale": [95, 95], - "delay": 8, - "interpolation": "easeInOut" - }, - {"region": 1, "interpolation": "linear"} - ] - } - ] - }, - "Grab": { - "length": 16, - "root": [ - { - "scale": [150, 150], - "delay": 16 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 2, "delay": 7, "interpolation": "easeInOut"}, - { - "region": 2, - "scale": [95, 95], - "delay": 8, - "interpolation": "easeInOut" - }, - {"region": 2, "interpolation": "linear"} - ] - } - ] - }, - "Rub": { - "length": 16, - "root": [ - { - "scale": [150, 150], - "delay": 16 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 4, "delay": 7, "interpolation": "easeInOut"}, - { - "region": 4, - "scale": [95, 95], - "delay": 8, - "interpolation": "easeInOut" - }, - {"region": 4, "interpolation": "linear"} - ] - } - ] - }, - "Hover": { - "length": 16, - "root": [ - { - "scale": [150, 150], - "delay": 16 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 3, "delay": 7, "interpolation": "easeInOut"}, - { - "region": 3, - "scale": [95, 95], - "delay": 8, - "interpolation": "easeInOut" - }, - {"region": 3, "interpolation": "linear"} - ] - } - ] - }, - "KissHover": { - "length": 16, - "root": [ - { - "scale": [150, 150], - "delay": 16 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 6, "delay": 7, "interpolation": "easeInOut"}, - { - "region": 6, - "scale": [95, 95], - "delay": 8, - "interpolation": "easeInOut" - }, - {"region": 6, "interpolation": "linear"} - ] - } - ] - }, - "Kiss": { - "length": 34, - "loop": false, - "root": [ - { - "scale": [150, 150], - "delay": 34 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 6, "delay": 2, "interpolation": "linear"}, - {"region": 5, "delay": 2, "interpolation": "linear"}, - { - "region": 5, - "pos": [2, 0], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 5, - "pos": [-2, 0], - "scale": [105, 95], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 5, - "pos": [5, 0], - "scale": [110, 90], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 5, - "pos": [-5, 0], - "scale": [115, 85], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 5, - "pos": [5, 0], - "scale": [120, 80], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 5, - "pos": [-10, 0], - "scale": [125, 75], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 6, - "scale": [75, 125], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 6, - "scale": [125, 75], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 6, - "scale": [90, 110], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 6, - "scale": [110, 90], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 6, - "scale": [105, 95], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 6, - "scale": [95, 105], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 6, - "scale": [102, 98], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 6, - "scale": [98, 102], - "delay": 2, - "interpolation": "linear" - }, - {"region": 6, "delay": 2, "interpolation": "linear"} - ] - } - ] - }, - "SmackHover": { - "length": 16, - "root": [ - { - "scale": [150, 150], - "delay": 16 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 9, "delay": 7, "interpolation": "easeInOut"}, - { - "region": 9, - "scale": [95, 95], - "delay": 8, - "interpolation": "easeInOut" - }, - {"region": 9, "interpolation": "linear"} - ] - } - ] - }, - "Smack": { - "length": 24, - "loop": false, - "root": [ - { - "scale": [150, 150], - "delay": 24 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - { - "region": 9, - "scale": [300, 300], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 9, - "scale": [50, 50], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 9, - "scale": [125, 125], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 9, - "scale": [75, 75], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 9, - "scale": [110, 110], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 9, - "scale": [90, 90], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 9, - "scale": [105, 105], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 9, - "scale": [95, 95], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 9, - "scale": [102, 102], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 9, - "scale": [98, 98], - "delay": 2, - "interpolation": "linear" - }, - { - "region": 9, - "scale": [101, 101], - "delay": 2, - "interpolation": "linear" - }, - {"region": 9, "delay": 2, "interpolation": "linear"} - ] - } - ] - }, - "Dispose": { - "length": 16, - "loop": false, - "root": [ - { - "scale": [150, 150], - "delay": 16 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - { - "region": 7, - "scale": [75, 150], - "delay": 3, - "interpolation": "linear" - }, - { - "region": 7, - "scale": [125, 75], - "delay": 3, - "interpolation": "linear" - }, - {"region": 7, "delay": 5, "interpolation": "linear"}, - { - "region": 0, - "tint": [255, 255, 255, 0], - "delay": 4, - "interpolation": "linear" - }, - {"region": 0, "interpolation": "linear"} - ] - } - ] - }, - "Zoom": { - "length": 10, - "loop": false, - "root": [ - { - "scale": [150, 150], - "delay": 10 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 8, "delay": 10} - ] - } - ] - }, - "TurnAround": { - "length": 16, - "root": [ - { - "scale": [150, 150], - "delay": 16 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 10, "delay": 7, "interpolation": "easeInOut"}, - { - "region": 10, - "scale": [95, 95], - "delay": 8, - "interpolation": "easeInOut" - }, - {"region": 10, "interpolation": "linear"} - ] - } - ] - }, - "TurnAroundBack": { - "length": 16, - "root": [ - { - "scale": [150, 150], - "delay": 16 - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - { - "region": 10, - "pos": [25, 0], - "scale": [-100, 100], - "delay": 7, - "interpolation": "easeInOut" - }, - { - "region": 10, - "pos": [25, 0], - "scale": [-95, 95], - "delay": 8, - "interpolation": "easeInOut" - }, - { - "region": 10, - "pos": [25, 0], - "scale": [-100, 100], - "interpolation": "linear" - } - ] - } - ] - } - } -} diff --git a/resources/characters/snivy/gfx/items/item.anm2 b/resources/characters/snivy/gfx/items/item.anm2 deleted file mode 100644 index 7be6f01..0000000 --- a/resources/characters/snivy/gfx/items/item.anm2 +++ /dev/null @@ -1,37 +0,0 @@ -{ - "anm2ed": 1, - "info": {"createdOn": "2025-12-06T23:49:27"}, - "spritesheets": [ - { - "path": "item_001_poke_puff_basic_sweet.png", - "regions": [ - { - "name": "48x48", - "size": [48, 48], - "pivot": [24, 24] - } - ] - } - ], - "layers": [ - {"name": "Main"} - ], - "defaultAnimation": "Default", - "animations": { - "Default": { - "root": [ - { - "scale": [125, 125] - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 0} - ] - } - ] - } - } -} diff --git a/resources/characters/snivy/gfx/items/item_001_poke_puff_basic_sweet.png b/resources/characters/snivy/gfx/items/item_001_poke_puff_basic_sweet.png deleted file mode 100644 index d3ae86f..0000000 Binary files a/resources/characters/snivy/gfx/items/item_001_poke_puff_basic_sweet.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_002_poke_puff_basic_mint.png b/resources/characters/snivy/gfx/items/item_002_poke_puff_basic_mint.png deleted file mode 100644 index 5b06fa7..0000000 Binary files a/resources/characters/snivy/gfx/items/item_002_poke_puff_basic_mint.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_003_poke_puff_basic_citrus.png b/resources/characters/snivy/gfx/items/item_003_poke_puff_basic_citrus.png deleted file mode 100644 index 6e5bfa8..0000000 Binary files a/resources/characters/snivy/gfx/items/item_003_poke_puff_basic_citrus.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_004_poke_puff_basic_mocha.png b/resources/characters/snivy/gfx/items/item_004_poke_puff_basic_mocha.png deleted file mode 100644 index a9ae4de..0000000 Binary files a/resources/characters/snivy/gfx/items/item_004_poke_puff_basic_mocha.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_005_poke_puff_basic_spice.png b/resources/characters/snivy/gfx/items/item_005_poke_puff_basic_spice.png deleted file mode 100644 index 0d7660c..0000000 Binary files a/resources/characters/snivy/gfx/items/item_005_poke_puff_basic_spice.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_006_poke_puff_frosted_sweet.png b/resources/characters/snivy/gfx/items/item_006_poke_puff_frosted_sweet.png deleted file mode 100644 index a0712e1..0000000 Binary files a/resources/characters/snivy/gfx/items/item_006_poke_puff_frosted_sweet.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_007_poke_puff_frosted_mint.png b/resources/characters/snivy/gfx/items/item_007_poke_puff_frosted_mint.png deleted file mode 100644 index c9d401e..0000000 Binary files a/resources/characters/snivy/gfx/items/item_007_poke_puff_frosted_mint.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_008_poke_puff_frosted_citrus.png b/resources/characters/snivy/gfx/items/item_008_poke_puff_frosted_citrus.png deleted file mode 100644 index 60988dc..0000000 Binary files a/resources/characters/snivy/gfx/items/item_008_poke_puff_frosted_citrus.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_009_poke_puff_frosted_mocha.png b/resources/characters/snivy/gfx/items/item_009_poke_puff_frosted_mocha.png deleted file mode 100644 index 4c40b45..0000000 Binary files a/resources/characters/snivy/gfx/items/item_009_poke_puff_frosted_mocha.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_010_poke_puff_frosted_spice.png b/resources/characters/snivy/gfx/items/item_010_poke_puff_frosted_spice.png deleted file mode 100644 index 88842c4..0000000 Binary files a/resources/characters/snivy/gfx/items/item_010_poke_puff_frosted_spice.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_011_poke_puff_fancy_sweet.png b/resources/characters/snivy/gfx/items/item_011_poke_puff_fancy_sweet.png deleted file mode 100644 index 3c298ba..0000000 Binary files a/resources/characters/snivy/gfx/items/item_011_poke_puff_fancy_sweet.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_012_poke_puff_fancy_mint.png b/resources/characters/snivy/gfx/items/item_012_poke_puff_fancy_mint.png deleted file mode 100644 index ef3b815..0000000 Binary files a/resources/characters/snivy/gfx/items/item_012_poke_puff_fancy_mint.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_013_poke_puff_fancy_citrus.png b/resources/characters/snivy/gfx/items/item_013_poke_puff_fancy_citrus.png deleted file mode 100644 index 534751e..0000000 Binary files a/resources/characters/snivy/gfx/items/item_013_poke_puff_fancy_citrus.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_014_poke_puff_fancy_mocha.png b/resources/characters/snivy/gfx/items/item_014_poke_puff_fancy_mocha.png deleted file mode 100644 index 57e62ae..0000000 Binary files a/resources/characters/snivy/gfx/items/item_014_poke_puff_fancy_mocha.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_015_poke_puff_fancy_spice.png b/resources/characters/snivy/gfx/items/item_015_poke_puff_fancy_spice.png deleted file mode 100644 index 555102a..0000000 Binary files a/resources/characters/snivy/gfx/items/item_015_poke_puff_fancy_spice.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_016_poke_puff_deluxe_sweet.png b/resources/characters/snivy/gfx/items/item_016_poke_puff_deluxe_sweet.png deleted file mode 100644 index a70849e..0000000 Binary files a/resources/characters/snivy/gfx/items/item_016_poke_puff_deluxe_sweet.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_017_poke_puff_deluxe_mint.png b/resources/characters/snivy/gfx/items/item_017_poke_puff_deluxe_mint.png deleted file mode 100644 index 106783e..0000000 Binary files a/resources/characters/snivy/gfx/items/item_017_poke_puff_deluxe_mint.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_018_poke_puff_deluxe_citrus.png b/resources/characters/snivy/gfx/items/item_018_poke_puff_deluxe_citrus.png deleted file mode 100644 index edfc2a1..0000000 Binary files a/resources/characters/snivy/gfx/items/item_018_poke_puff_deluxe_citrus.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_019_poke_puff_deluxe_mocha.png b/resources/characters/snivy/gfx/items/item_019_poke_puff_deluxe_mocha.png deleted file mode 100644 index a9974ec..0000000 Binary files a/resources/characters/snivy/gfx/items/item_019_poke_puff_deluxe_mocha.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_020_poke_puff_deluxe_spice.png b/resources/characters/snivy/gfx/items/item_020_poke_puff_deluxe_spice.png deleted file mode 100644 index 73522c8..0000000 Binary files a/resources/characters/snivy/gfx/items/item_020_poke_puff_deluxe_spice.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_021_poke_puff_supreme_spring.png b/resources/characters/snivy/gfx/items/item_021_poke_puff_supreme_spring.png deleted file mode 100644 index cb76f23..0000000 Binary files a/resources/characters/snivy/gfx/items/item_021_poke_puff_supreme_spring.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_022_poke_puff_supreme_summer.png b/resources/characters/snivy/gfx/items/item_022_poke_puff_supreme_summer.png deleted file mode 100644 index 7545d85..0000000 Binary files a/resources/characters/snivy/gfx/items/item_022_poke_puff_supreme_summer.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_023_poke_puff_supreme_autumn.png b/resources/characters/snivy/gfx/items/item_023_poke_puff_supreme_autumn.png deleted file mode 100644 index d4f104c..0000000 Binary files a/resources/characters/snivy/gfx/items/item_023_poke_puff_supreme_autumn.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_024_poke_puff_supreme_winter.png b/resources/characters/snivy/gfx/items/item_024_poke_puff_supreme_winter.png deleted file mode 100644 index bca8518..0000000 Binary files a/resources/characters/snivy/gfx/items/item_024_poke_puff_supreme_winter.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_025_poke_puff_supreme_wish.png b/resources/characters/snivy/gfx/items/item_025_poke_puff_supreme_wish.png deleted file mode 100644 index bf49aa7..0000000 Binary files a/resources/characters/snivy/gfx/items/item_025_poke_puff_supreme_wish.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_026_poke_puff_supreme_honor.png b/resources/characters/snivy/gfx/items/item_026_poke_puff_supreme_honor.png deleted file mode 100644 index b626a64..0000000 Binary files a/resources/characters/snivy/gfx/items/item_026_poke_puff_supreme_honor.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_027_cheri_berry.png b/resources/characters/snivy/gfx/items/item_027_cheri_berry.png deleted file mode 100644 index 2f2cb81..0000000 Binary files a/resources/characters/snivy/gfx/items/item_027_cheri_berry.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_028_tamato_berry.png b/resources/characters/snivy/gfx/items/item_028_tamato_berry.png deleted file mode 100644 index c003807..0000000 Binary files a/resources/characters/snivy/gfx/items/item_028_tamato_berry.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_029_touga_berry.png b/resources/characters/snivy/gfx/items/item_029_touga_berry.png deleted file mode 100644 index 6ee4e94..0000000 Binary files a/resources/characters/snivy/gfx/items/item_029_touga_berry.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_030_pomeg_berry.png b/resources/characters/snivy/gfx/items/item_030_pomeg_berry.png deleted file mode 100644 index aae4488..0000000 Binary files a/resources/characters/snivy/gfx/items/item_030_pomeg_berry.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/items/item_031_shiny_charm.png b/resources/characters/snivy/gfx/items/item_031_shiny_charm.png deleted file mode 100644 index 24e3971..0000000 Binary files a/resources/characters/snivy/gfx/items/item_031_shiny_charm.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/particle/circle.anm2 b/resources/characters/snivy/gfx/particle/circle.anm2 deleted file mode 100644 index 5191e85..0000000 --- a/resources/characters/snivy/gfx/particle/circle.anm2 +++ /dev/null @@ -1,48 +0,0 @@ -{ - "anm2ed": 1, - "info": {}, - "spritesheets": [ - { - "path": "circle.png", - "regions": [ - { - "name": "Main", - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - } - ] - } - ], - "layers": [ - {"name": "Main"} - ], - "defaultAnimation": "Spawn", - "animations": { - "Spawn": { - "length": 11, - "loop": false, - "root": [ - {"delay": 11} - ], - "layers": [ - { - "layer": 0, - "frames": [ - { - "region": 0, - "scale": [10, 10], - "delay": 10, - "interpolation": "linear" - }, - { - "region": 0, - "tint": [255, 255, 255, 0], - "interpolation": "linear" - } - ] - } - ] - } - } -} diff --git a/resources/characters/snivy/gfx/particle/circle.png b/resources/characters/snivy/gfx/particle/circle.png deleted file mode 100644 index 7cd3f72..0000000 Binary files a/resources/characters/snivy/gfx/particle/circle.png and /dev/null differ diff --git a/resources/characters/snivy/gfx/particle/puff.anm2 b/resources/characters/snivy/gfx/particle/puff.anm2 deleted file mode 100644 index 9369a20..0000000 --- a/resources/characters/snivy/gfx/particle/puff.anm2 +++ /dev/null @@ -1,99 +0,0 @@ -{ - "anm2ed": 1, - "info": {}, - "spritesheets": [ - { - "path": "puff.png", - "regions": [ - { - "name": "1", - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "2", - "crop": [128, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "3", - "crop": [256, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "4", - "crop": [384, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "5", - "crop": [512, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "6", - "crop": [640, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "7", - "crop": [768, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - }, - { - "name": "8", - "crop": [896, 0], - "size": [128, 128], - "pivot": [64, 64], - "origin": "center" - } - ] - } - ], - "layers": [ - {"name": "Main"} - ], - "defaultAnimation": "Main", - "animations": { - "Main": { - "length": 16, - "loop": false, - "root": [ - {"delay": 15, "interpolation": "linear"}, - { - "pos": [0, -5], - "tint": [255, 255, 255, 32], - "interpolation": "linear" - } - ], - "layers": [ - { - "layer": 0, - "frames": [ - {"region": 0, "delay": 2, "interpolation": "linear"}, - {"region": 1, "delay": 2, "interpolation": "linear"}, - {"region": 2, "delay": 2, "interpolation": "linear"}, - {"region": 3, "delay": 2, "interpolation": "linear"}, - {"region": 4, "delay": 2, "interpolation": "linear"}, - {"region": 5, "delay": 2, "interpolation": "linear"}, - {"region": 6, "delay": 2, "interpolation": "linear"}, - {"region": 7, "delay": 2, "interpolation": "linear"} - ] - } - ] - } - } -} diff --git a/resources/characters/snivy/items.json b/resources/characters/snivy/items.json index 17a72b5..859f6e4 100644 --- a/resources/characters/snivy/items.json +++ b/resources/characters/snivy/items.json @@ -1,11 +1,11 @@ { "anm2": "gfx/items/item.anm2", "spritesheet": 0, - "spawnDelay": 600, + "spawnDelay": 10, "spawnDelayMultiplier": 0.75, "spawnLimit": 5, "sounds": { - "bounce": ["sfx/bounce.ogg", "sfx/bounce2.ogg", "sfx/bounce3.ogg"], + "bounce": "sfx/bounce*.ogg", "dispose": ["sfx/dispose.ogg"], "summon": ["sfx/summon.ogg"], "newItem": ["sfx/newItem.ogg"] @@ -14,7 +14,6 @@ "dispose": ["Puff"], "summon": ["Puff"] }, - "categories": {"Food": "edible", "Tool": "tool"}, "rarities": { "Common": {"weight": 1.0, "sound": "sfx/common.ogg"}, "Uncommon": {"weight": 0.75, "sound": "sfx/uncommon.ogg"}, @@ -25,36 +24,36 @@ "Special": {"weight": 0.0, "sound": "sfx/special.ogg"} }, "items": [ - {"name": "Poké Puff (Basic, Sweet)", "description": "A basic sweet Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Sweet", "texture": "gfx/items/item_001_poke_puff_basic_sweet.png", "calories": 100.0}, - {"name": "Poké Puff (Basic, Mint)", "description": "A basic minty Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Mint", "texture": "gfx/items/item_002_poke_puff_basic_mint.png", "calories": 100.0}, - {"name": "Poké Puff (Basic, Citrus)", "description": "A basic citrusy Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Citrus", "texture": "gfx/items/item_003_poke_puff_basic_citrus.png", "calories": 100.0}, - {"name": "Poké Puff (Basic, Mocha)", "description": "A basic mocha Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Mocha", "texture": "gfx/items/item_004_poke_puff_basic_mocha.png", "calories": 100.0}, - {"name": "Poké Puff (Basic, Spice)", "description": "A basic spice Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Spice", "texture": "gfx/items/item_005_poke_puff_basic_spice.png", "calories": 100.0}, - {"name": "Poké Puff (Frosted, Sweet)", "description": "A frosted sweet Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Sweet", "texture": "gfx/items/item_006_poke_puff_frosted_sweet.png", "calories": 250.0}, - {"name": "Poké Puff (Frosted, Mint)", "description": "A frosted minty Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Mint", "texture": "gfx/items/item_007_poke_puff_frosted_mint.png", "calories": 250.0}, - {"name": "Poké Puff (Frosted, Citrus)", "description": "A frosted citrusy Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Mint", "texture": "gfx/items/item_008_poke_puff_frosted_citrus.png", "calories": 250.0}, - {"name": "Poké Puff (Frosted, Mocha)", "description": "A frosted mocha Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Mocha", "texture": "gfx/items/item_009_poke_puff_frosted_mocha.png", "calories": 250.0}, - {"name": "Poké Puff (Frosted, Spice)", "description": "A frosted spice Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Spice", "texture": "gfx/items/item_010_poke_puff_frosted_spice.png", "calories": 250.0}, - {"name": "Poké Puff (Fancy, Sweet)", "description": "A fancy sweet Poké Puff, adorned with a cherry.", "category": "Food", "rarity": "Rare", "flavor": "Sweet", "texture": "gfx/items/item_011_poke_puff_fancy_sweet.png", "calories": 500.0}, - {"name": "Poké Puff (Fancy, Mint)", "description": "A fancy minty Poké Puff, adorned with a crescent moon-shaped candy.", "category": "Food", "rarity": "Rare", "flavor": "Mint", "texture": "gfx/items/item_012_poke_puff_fancy_mint.png", "calories": 500.0}, - {"name": "Poké Puff (Fancy, Citrus)", "description": "A fancy citrus Poké Puff, adorned with an orange slice.", "category": "Food", "rarity": "Rare", "flavor": "Citrus", "texture": "gfx/items/item_013_poke_puff_fancy_citrus.png", "calories": 500.0}, - {"name": "Poké Puff (Fancy, Mocha)", "description": "A fancy mocha Poké Puff, adorned with a morsel of white chocolate.", "category": "Food", "rarity": "Rare", "flavor": "Mocha", "texture": "gfx/items/item_014_poke_puff_fancy_mocha.png", "calories": 500.0}, - {"name": "Poké Puff (Fancy, Spice)", "description": "A fancy spice Poké Puff, adorned with a morsel of dark chocolate.", "category": "Food", "rarity": "Rare", "flavor": "Spice", "texture": "gfx/items/item_015_poke_puff_fancy_spice.png", "calories": 500.0}, - {"name": "Poké Puff (Deluxe, Sweet)", "description": "A deluxe sweet Poké Puff; frosted and adorned with a cherry.", "category": "Food", "rarity": "Epic", "flavor": "Sweet", "texture": "gfx/items/item_016_poke_puff_deluxe_sweet.png", "calories": 1000.0}, - {"name": "Poké Puff (Deluxe, Mint)", "description": "A deluxe minty Poké Puff; frosted and adorned with a cinnamon stick.", "category": "Food", "rarity": "Epic", "flavor": "Mint", "texture": "gfx/items/item_017_poke_puff_deluxe_mint.png", "calories": 1000.0}, - {"name": "Poké Puff (Deluxe, Citrus)", "description": "A deluxe citrusy Poké Puff; frosted and adorned with an orange slice.", "category": "Food", "rarity": "Epic", "flavor": "Citrus", "texture": "gfx/items/item_018_poke_puff_deluxe_citrus.png", "calories": 1000.0}, - {"name": "Poké Puff (Deluxe, Mocha)", "description": "A deluxe mocha Poké Puff; frosted and adorned with a morsel of white chocolate.", "category": "Food", "rarity": "Epic", "flavor": "Mocha", "texture": "gfx/items/item_019_poke_puff_deluxe_mocha.png", "calories": 1000.0}, - {"name": "Poké Puff (Deluxe, Spice)", "description": "A deluxe spice Poké Puff; frosted and adorned with a morsel of dark chocolate.", "category": "Food", "rarity": "Epic", "flavor": "Spice", "texture": "gfx/items/item_020_poke_puff_deluxe_spice.png", "calories": 1000.0}, - {"name": "Poké Puff (Supreme Spring)", "description": "A supreme Poké Puff that tastes like the sweet cherry blossoms of spring.", "category": "Food", "rarity": "Legendary", "flavor": "Sweet", "texture": "gfx/items/item_021_poke_puff_supreme_spring.png", "calories": 2500.0}, - {"name": "Poké Puff (Supreme Summer)", "description": "A supreme Poké Puff that tastes like a tropical summer vacation.", "category": "Food", "rarity": "Legendary", "flavor": "Citrus", "texture": "gfx/items/item_022_poke_puff_supreme_summer.png", "calories": 2500.0}, - {"name": "Poké Puff (Supreme Autumn)", "description": "A supreme Poké Puff that tastes like a bountiful autumn harvest.", "category": "Food", "rarity": "Legendary", "flavor": "Citrus", "texture": "gfx/items/item_023_poke_puff_supreme_autumn.png", "calories": 2500.0}, - {"name": "Poké Puff (Supreme Winter)", "description": "A supreme Poké Puff that tastes like a frosty winter wonderland.", "category": "Food", "rarity": "Legendary", "flavor": "Spice", "texture": "gfx/items/item_024_poke_puff_supreme_winter.png", "calories": 2500.0}, - {"name": "Poké Puff (Supreme Wish)", "description": "A supreme Poké Puff that tastes like a cherished birthday celebration.\nIt also is the biggest calorie nuke ever.\nCan Snivy eat it!?\nAlso, statistically, it might be your birthday today, right?", "category": "Food", "rarity": "???", "flavor": "Spice", "texture": "gfx/items/item_025_poke_puff_supreme_wish.png", "calories": 10000.0}, - {"name": "Poké Puff (Supreme Honor)", "description": "A supreme Poké Puff that tastes like a monumental victory.\nWith your luck, you've earned it...if Snivy can eat it!", "category": "Food", "rarity": "???", "flavor": "Mocha", "texture": "gfx/items/item_026_poke_puff_supreme_honor.png", "calories": 2500.0, "digestionBonus": 0.6}, - {"name": "Cheri Berry", "description": "A spherical red berry that cures paralysis\n...oh, and it also excites one's stomach.", "category": "Food", "rarity": "Uncommon", "flavor": "Spicy", "texture": "gfx/items/item_027_cheri_berry.png", "calories": 25.0, "digestionBonus": 0.009}, - {"name": "Tamato Berry", "description": "A spiny crimson berry that lowers speed and raises friendship.\n...oh, and it also greatly excites one's stomach.", "category": "Food", "rarity": "Rare", "flavor": "Spicy", "texture": "gfx/items/item_028_tamato_berry.png", "calories": 50.0, "digestionBonus": 0.018}, - {"name": "Touga Berry", "description": "An obscure, searing-red berry from faraway lands.\nIt cures confusion...and it'll make one's stomach a burning inferno.", "category": "Food", "rarity": "Epic", "flavor": "Spicy", "texture": "gfx/items/item_029_touga_berry.png", "calories": 100.0, "digestionBonus": 0.0396}, - {"name": "Pomeg Berry", "description": "cG9tZWcgYmVycnkgcG9tZWcgYmVycnkgcG9tZWcgYmVycnk=", "category": "Food", "rarity": "???", "flavor": "None", "texture": "gfx/items/item_030_pomeg_berry.png", "calories": -2500.0, "digestionBonus": 0.6, "gravity": 0.05}, - {"name": "Shiny Charm", "description": "Can change a Pokémon's color scheme...", "category": "Tool", "rarity": "???", "texture": "gfx/items/item_031_shiny_charm.png", "isToggleSpritesheet": true} + {"name": "Poké Puff (Basic, Sweet)", "description": "A basic sweet Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Sweet", "calories": 100.0, "use": "edible"}, + {"name": "Poké Puff (Basic, Mint)", "description": "A basic minty Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Mint", "calories": 100.0, "use": "edible"}, + {"name": "Poké Puff (Basic, Citrus)", "description": "A basic citrusy Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Citrus", "calories": 100.0, "use": "edible"}, + {"name": "Poké Puff (Basic, Mocha)", "description": "A basic mocha Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Mocha", "calories": 100.0, "use": "edible"}, + {"name": "Poké Puff (Basic, Spice)", "description": "A basic spice Poké Puff.", "category": "Food", "rarity": "Common", "flavor": "Spice", "calories": 100.0, "use": "edible"}, + {"name": "Poké Puff (Frosted, Sweet)", "description": "A frosted sweet Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Sweet", "calories": 250.0, "use": "edible"}, + {"name": "Poké Puff (Frosted, Mint)", "description": "A frosted minty Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Mint", "calories": 250.0, "use": "edible"}, + {"name": "Poké Puff (Frosted, Citrus)", "description": "A frosted citrusy Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Mint", "calories": 250.0, "use": "edible"}, + {"name": "Poké Puff (Frosted, Mocha)", "description": "A frosted mocha Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Mocha", "calories": 250.0, "use": "edible"}, + {"name": "Poké Puff (Frosted, Spice)", "description": "A frosted spice Poké Puff.", "category": "Food", "rarity": "Uncommon", "flavor": "Spice", "calories": 250.0, "use": "edible"}, + {"name": "Poké Puff (Fancy, Sweet)", "description": "A fancy sweet Poké Puff, adorned with a cherry.", "category": "Food", "rarity": "Rare", "flavor": "Sweet", "calories": 500.0, "use": "edible"}, + {"name": "Poké Puff (Fancy, Mint)", "description": "A fancy minty Poké Puff, adorned with a crescent moon-shaped candy.", "category": "Food", "rarity": "Rare", "flavor": "Mint", "calories": 500.0, "use": "edible"}, + {"name": "Poké Puff (Fancy, Citrus)", "description": "A fancy citrus Poké Puff, adorned with an orange slice.", "category": "Food", "rarity": "Rare", "flavor": "Citrus", "calories": 500.0, "use": "edible"}, + {"name": "Poké Puff (Fancy, Mocha)", "description": "A fancy mocha Poké Puff, adorned with a morsel of white chocolate.", "category": "Food", "rarity": "Rare", "flavor": "Mocha", "calories": 500.0, "use": "edible"}, + {"name": "Poké Puff (Fancy, Spice)", "description": "A fancy spice Poké Puff, adorned with a morsel of dark chocolate.", "category": "Food", "rarity": "Rare", "flavor": "Spice", "calories": 500.0, "use": "edible"}, + {"name": "Poké Puff (Deluxe, Sweet)", "description": "A deluxe sweet Poké Puff; frosted and adorned with a cherry.", "category": "Food", "rarity": "Epic", "flavor": "Sweet", "calories": 1000.0, "use": "edible"}, + {"name": "Poké Puff (Deluxe, Mint)", "description": "A deluxe minty Poké Puff; frosted and adorned with a cinnamon stick.", "category": "Food", "rarity": "Epic", "flavor": "Mint", "calories": 1000.0, "use": "edible"}, + {"name": "Poké Puff (Deluxe, Citrus)", "description": "A deluxe citrusy Poké Puff; frosted and adorned with an orange slice.", "category": "Food", "rarity": "Epic", "flavor": "Citrus", "calories": 1000.0, "use": "edible"}, + {"name": "Poké Puff (Deluxe, Mocha)", "description": "A deluxe mocha Poké Puff; frosted and adorned with a morsel of white chocolate.", "category": "Food", "rarity": "Epic", "flavor": "Mocha", "calories": 1000.0, "use": "edible"}, + {"name": "Poké Puff (Deluxe, Spice)", "description": "A deluxe spice Poké Puff; frosted and adorned with a morsel of dark chocolate.", "category": "Food", "rarity": "Epic", "flavor": "Spice", "calories": 1000.0, "use": "edible"}, + {"name": "Poké Puff (Supreme Spring)", "description": "A supreme Poké Puff that tastes like the sweet cherry blossoms of spring.", "category": "Food", "rarity": "Legendary", "flavor": "Sweet", "calories": 2500.0, "use": "edible"}, + {"name": "Poké Puff (Supreme Summer)", "description": "A supreme Poké Puff that tastes like a tropical summer vacation.", "category": "Food", "rarity": "Legendary", "flavor": "Citrus", "calories": 2500.0, "use": "edible"}, + {"name": "Poké Puff (Supreme Autumn)", "description": "A supreme Poké Puff that tastes like a bountiful autumn harvest.", "category": "Food", "rarity": "Legendary", "flavor": "Citrus", "calories": 2500.0, "use": "edible"}, + {"name": "Poké Puff (Supreme Winter)", "description": "A supreme Poké Puff that tastes like a frosty winter wonderland.", "category": "Food", "rarity": "Legendary", "flavor": "Spice", "calories": 2500.0, "use": "edible"}, + {"name": "Poké Puff (Supreme Wish)", "description": "A supreme Poké Puff that tastes like a cherished birthday celebration.\nIt also is the biggest calorie nuke ever.\nCan Snivy eat it!?\nAlso, statistically, it might be your birthday today, right?", "category": "Food", "rarity": "???", "flavor": "Spice", "calories": 10000.0, "use": "edible"}, + {"name": "Poké Puff (Supreme Honor)", "description": "A supreme Poké Puff that tastes like a monumental victory.\nWith your luck, you've earned it...if Snivy can eat it!", "category": "Food", "rarity": "???", "flavor": "Mocha", "calories": 2500.0, "digestionBonus": 0.6, "use": "edible"}, + {"name": "Cheri Berry", "description": "A spherical red berry that cures paralysis\n...oh, and it also excites one's stomach.", "category": "Food", "rarity": "Uncommon", "flavor": "Spicy", "calories": 25.0, "digestionBonus": 0.009, "use": "edible"}, + {"name": "Tamato Berry", "description": "A spiny crimson berry that lowers speed and raises friendship.\n...oh, and it also greatly excites one's stomach.", "category": "Food", "rarity": "Rare", "flavor": "Spicy", "calories": 50.0, "digestionBonus": 0.018, "use": "edible"}, + {"name": "Touga Berry", "description": "An obscure, searing-red berry from faraway lands.\nIt cures confusion...and it'll make one's stomach a burning inferno.", "category": "Food", "rarity": "Epic", "flavor": "Spicy", "calories": 100.0, "digestionBonus": 0.0396, "use": "edible"}, + {"name": "Pomeg Berry", "description": "cG9tZWcgYmVycnkgcG9tZWcgYmVycnkgcG9tZWcgYmVycnk=", "category": "Food", "rarity": "???", "flavor": "None", "calories": -2500.0, "digestionBonus": 0.6, "gravity": 0.05, "use": "edible"}, + {"name": "Shiny Charm", "description": "Can change a Pokémon's color scheme...", "category": "Tool", "rarity": "???", "isToggleSpritesheet": true, "use": "tool"} ] } diff --git a/resources/characters/snivy/sfx/bounce.ogg b/resources/characters/snivy/sfx/bounce.ogg deleted file mode 100644 index 379face..0000000 Binary files a/resources/characters/snivy/sfx/bounce.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/bounce2.ogg b/resources/characters/snivy/sfx/bounce2.ogg deleted file mode 100644 index f65018e..0000000 Binary files a/resources/characters/snivy/sfx/bounce2.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/bounce3.ogg b/resources/characters/snivy/sfx/bounce3.ogg deleted file mode 100644 index ac72487..0000000 Binary files a/resources/characters/snivy/sfx/bounce3.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/cheatsActivated.ogg b/resources/characters/snivy/sfx/cheatsActivated.ogg deleted file mode 100644 index a32e1ca..0000000 Binary files a/resources/characters/snivy/sfx/cheatsActivated.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/close.ogg b/resources/characters/snivy/sfx/close.ogg deleted file mode 100644 index 4cdd2cf..0000000 Binary files a/resources/characters/snivy/sfx/close.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/common.ogg b/resources/characters/snivy/sfx/common.ogg deleted file mode 100644 index 8e83d7e..0000000 Binary files a/resources/characters/snivy/sfx/common.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/digest1.ogg b/resources/characters/snivy/sfx/digest1.ogg deleted file mode 100644 index 12c6c95..0000000 Binary files a/resources/characters/snivy/sfx/digest1.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/digest2.ogg b/resources/characters/snivy/sfx/digest2.ogg deleted file mode 100644 index 56c2cb5..0000000 Binary files a/resources/characters/snivy/sfx/digest2.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/digest3.ogg b/resources/characters/snivy/sfx/digest3.ogg deleted file mode 100644 index 3885b53..0000000 Binary files a/resources/characters/snivy/sfx/digest3.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/dispose.ogg b/resources/characters/snivy/sfx/dispose.ogg deleted file mode 100644 index fe9b108..0000000 Binary files a/resources/characters/snivy/sfx/dispose.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/epic.ogg b/resources/characters/snivy/sfx/epic.ogg deleted file mode 100644 index 914504e..0000000 Binary files a/resources/characters/snivy/sfx/epic.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/gurgle1.ogg b/resources/characters/snivy/sfx/gurgle1.ogg deleted file mode 100644 index 84ecc69..0000000 Binary files a/resources/characters/snivy/sfx/gurgle1.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/gurgle2.ogg b/resources/characters/snivy/sfx/gurgle2.ogg deleted file mode 100644 index 0fd034d..0000000 Binary files a/resources/characters/snivy/sfx/gurgle2.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/gurgle3.ogg b/resources/characters/snivy/sfx/gurgle3.ogg deleted file mode 100644 index 4e0ab95..0000000 Binary files a/resources/characters/snivy/sfx/gurgle3.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/gurgle4.ogg b/resources/characters/snivy/sfx/gurgle4.ogg deleted file mode 100644 index 85ee29b..0000000 Binary files a/resources/characters/snivy/sfx/gurgle4.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/gurgle5.ogg b/resources/characters/snivy/sfx/gurgle5.ogg deleted file mode 100644 index 831e690..0000000 Binary files a/resources/characters/snivy/sfx/gurgle5.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/hover.ogg b/resources/characters/snivy/sfx/hover.ogg deleted file mode 100644 index 652c01f..0000000 Binary files a/resources/characters/snivy/sfx/hover.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/hover2.ogg b/resources/characters/snivy/sfx/hover2.ogg deleted file mode 100644 index a6d7679..0000000 Binary files a/resources/characters/snivy/sfx/hover2.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/hover3.ogg b/resources/characters/snivy/sfx/hover3.ogg deleted file mode 100644 index 29ec10c..0000000 Binary files a/resources/characters/snivy/sfx/hover3.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/impossible.ogg b/resources/characters/snivy/sfx/impossible.ogg deleted file mode 100644 index 1f2dfe2..0000000 Binary files a/resources/characters/snivy/sfx/impossible.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/kiss1.ogg b/resources/characters/snivy/sfx/kiss1.ogg deleted file mode 100644 index a394afe..0000000 Binary files a/resources/characters/snivy/sfx/kiss1.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/kiss2.ogg b/resources/characters/snivy/sfx/kiss2.ogg deleted file mode 100644 index 9c27116..0000000 Binary files a/resources/characters/snivy/sfx/kiss2.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/kiss3.ogg b/resources/characters/snivy/sfx/kiss3.ogg deleted file mode 100644 index 3bc7270..0000000 Binary files a/resources/characters/snivy/sfx/kiss3.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/kiss4.ogg b/resources/characters/snivy/sfx/kiss4.ogg deleted file mode 100644 index 5c9c94b..0000000 Binary files a/resources/characters/snivy/sfx/kiss4.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/kiss5.ogg b/resources/characters/snivy/sfx/kiss5.ogg deleted file mode 100644 index c14366e..0000000 Binary files a/resources/characters/snivy/sfx/kiss5.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/open.ogg b/resources/characters/snivy/sfx/open.ogg deleted file mode 100644 index ee80dc7..0000000 Binary files a/resources/characters/snivy/sfx/open.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/rare.ogg b/resources/characters/snivy/sfx/rare.ogg deleted file mode 100644 index 45e232e..0000000 Binary files a/resources/characters/snivy/sfx/rare.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/return.ogg b/resources/characters/snivy/sfx/return.ogg deleted file mode 100644 index 8d2bfb2..0000000 Binary files a/resources/characters/snivy/sfx/return.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/rub.ogg b/resources/characters/snivy/sfx/rub.ogg deleted file mode 100644 index 8e25d67..0000000 Binary files a/resources/characters/snivy/sfx/rub.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/select.ogg b/resources/characters/snivy/sfx/select.ogg deleted file mode 100644 index 722c986..0000000 Binary files a/resources/characters/snivy/sfx/select.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/smack1.ogg b/resources/characters/snivy/sfx/smack1.ogg deleted file mode 100644 index 8a573d1..0000000 Binary files a/resources/characters/snivy/sfx/smack1.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/smack2.ogg b/resources/characters/snivy/sfx/smack2.ogg deleted file mode 100644 index c44cd0e..0000000 Binary files a/resources/characters/snivy/sfx/smack2.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/smack3.ogg b/resources/characters/snivy/sfx/smack3.ogg deleted file mode 100644 index b614d10..0000000 Binary files a/resources/characters/snivy/sfx/smack3.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/smack4.ogg b/resources/characters/snivy/sfx/smack4.ogg deleted file mode 100644 index 7d368f0..0000000 Binary files a/resources/characters/snivy/sfx/smack4.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/smack5.ogg b/resources/characters/snivy/sfx/smack5.ogg deleted file mode 100644 index 3eadb0e..0000000 Binary files a/resources/characters/snivy/sfx/smack5.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/special.ogg b/resources/characters/snivy/sfx/special.ogg deleted file mode 100644 index 8b9a49d..0000000 Binary files a/resources/characters/snivy/sfx/special.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/summon.ogg b/resources/characters/snivy/sfx/summon.ogg deleted file mode 100644 index 56b17e3..0000000 Binary files a/resources/characters/snivy/sfx/summon.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/throw.ogg b/resources/characters/snivy/sfx/throw.ogg deleted file mode 100644 index e6e9568..0000000 Binary files a/resources/characters/snivy/sfx/throw.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/throw2.ogg b/resources/characters/snivy/sfx/throw2.ogg deleted file mode 100644 index b17d778..0000000 Binary files a/resources/characters/snivy/sfx/throw2.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/throw3.ogg b/resources/characters/snivy/sfx/throw3.ogg deleted file mode 100644 index 138ddd2..0000000 Binary files a/resources/characters/snivy/sfx/throw3.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/turn.ogg b/resources/characters/snivy/sfx/turn.ogg deleted file mode 100644 index 4f83595..0000000 Binary files a/resources/characters/snivy/sfx/turn.ogg and /dev/null differ diff --git a/resources/characters/snivy/sfx/uncommon.ogg b/resources/characters/snivy/sfx/uncommon.ogg deleted file mode 100644 index 07948d0..0000000 Binary files a/resources/characters/snivy/sfx/uncommon.ogg and /dev/null differ diff --git a/resources/characters/braixen/font/icons.ttf b/resources/common/font/icons.ttf similarity index 100% rename from resources/characters/braixen/font/icons.ttf rename to resources/common/font/icons.ttf diff --git a/resources/characters/mini/gfx/cursor/cursor.anm2 b/resources/common/gfx/cursor/cursor.anm2 similarity index 100% rename from resources/characters/mini/gfx/cursor/cursor.anm2 rename to resources/common/gfx/cursor/cursor.anm2 diff --git a/resources/common/gfx/items/item.anm2 b/resources/common/gfx/items/item.anm2 new file mode 100644 index 0000000..33aed0c --- /dev/null +++ b/resources/common/gfx/items/item.anm2 @@ -0,0 +1,218 @@ +{ + "anm2ed": 1, + "info": {"createdOn": "2025-12-06T23:49:27"}, + "spritesheets": [ + { + "path": "items.png", + "regions": [ + { + "name": "Poké Puff (Basic, Sweet)", + "crop": [0, 0], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Basic, Mint)", + "crop": [49, 0], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Basic, Citrus)", + "crop": [98, 0], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Basic, Mocha)", + "crop": [147, 0], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Basic, Spice)", + "crop": [196, 0], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Frosted, Sweet)", + "crop": [245, 0], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Frosted, Mint)", + "crop": [294, 0], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Frosted, Citrus)", + "crop": [343, 0], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Frosted, Mocha)", + "crop": [392, 0], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Frosted, Spice)", + "crop": [441, 0], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Fancy, Sweet)", + "crop": [0, 49], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Fancy, Mint)", + "crop": [49, 49], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Fancy, Citrus)", + "crop": [98, 49], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Fancy, Mocha)", + "crop": [147, 49], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Fancy, Spice)", + "crop": [196, 49], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Deluxe, Sweet)", + "crop": [245, 49], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Deluxe, Mint)", + "crop": [294, 49], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Deluxe, Citrus)", + "crop": [343, 49], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Deluxe, Mocha)", + "crop": [392, 49], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Deluxe, Spice)", + "crop": [441, 49], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Supreme Spring)", + "crop": [0, 98], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Supreme Summer)", + "crop": [49, 98], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Supreme Autumn)", + "crop": [98, 98], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Supreme Winter)", + "crop": [147, 98], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Supreme Wish)", + "crop": [196, 98], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Poké Puff (Supreme Honor)", + "crop": [245, 98], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Cheri Berry", + "crop": [294, 98], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Tamato Berry", + "crop": [343, 98], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Touga Berry", + "crop": [392, 98], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Pomeg Berry", + "crop": [441, 98], + "size": [48, 48], + "pivot": [24, 24] + }, + { + "name": "Shiny Charm", + "crop": [0, 147], + "size": [48, 48], + "pivot": [24, 24] + } + ] + } + ], + "layers": [ + {"name": "Main"} + ], + "defaultAnimation": "Default", + "animations": { + "Default": { + "root": [ + { + "scale": [125, 125] + } + ], + "layers": [ + { + "layer": 0, + "frames": [ + {"region": 0} + ] + } + ] + } + } +} diff --git a/resources/common/gfx/items/items.png b/resources/common/gfx/items/items.png new file mode 100644 index 0000000..a9199e6 Binary files /dev/null and b/resources/common/gfx/items/items.png differ diff --git a/resources/characters/braixen/gfx/particle/circle.anm2 b/resources/common/gfx/particle/circle.anm2 similarity index 100% rename from resources/characters/braixen/gfx/particle/circle.anm2 rename to resources/common/gfx/particle/circle.anm2 diff --git a/resources/characters/braixen/gfx/particle/circle.png b/resources/common/gfx/particle/circle.png similarity index 100% rename from resources/characters/braixen/gfx/particle/circle.png rename to resources/common/gfx/particle/circle.png diff --git a/resources/characters/braixen/gfx/particle/puff.anm2 b/resources/common/gfx/particle/puff.anm2 similarity index 100% rename from resources/characters/braixen/gfx/particle/puff.anm2 rename to resources/common/gfx/particle/puff.anm2 diff --git a/resources/characters/braixen/gfx/particle/puff.png b/resources/common/gfx/particle/puff.png similarity index 100% rename from resources/characters/braixen/gfx/particle/puff.png rename to resources/common/gfx/particle/puff.png diff --git a/resources/characters/braixen/sfx/bounce.ogg b/resources/common/sfx/bounce.ogg similarity index 100% rename from resources/characters/braixen/sfx/bounce.ogg rename to resources/common/sfx/bounce.ogg diff --git a/resources/characters/braixen/sfx/bounce2.ogg b/resources/common/sfx/bounce2.ogg similarity index 100% rename from resources/characters/braixen/sfx/bounce2.ogg rename to resources/common/sfx/bounce2.ogg diff --git a/resources/characters/braixen/sfx/bounce3.ogg b/resources/common/sfx/bounce3.ogg similarity index 100% rename from resources/characters/braixen/sfx/bounce3.ogg rename to resources/common/sfx/bounce3.ogg diff --git a/resources/characters/braixen/sfx/cheatsActivated.ogg b/resources/common/sfx/cheatsActivated.ogg similarity index 100% rename from resources/characters/braixen/sfx/cheatsActivated.ogg rename to resources/common/sfx/cheatsActivated.ogg diff --git a/resources/characters/braixen/sfx/close.ogg b/resources/common/sfx/close.ogg similarity index 100% rename from resources/characters/braixen/sfx/close.ogg rename to resources/common/sfx/close.ogg diff --git a/resources/characters/braixen/sfx/common.ogg b/resources/common/sfx/common.ogg similarity index 100% rename from resources/characters/braixen/sfx/common.ogg rename to resources/common/sfx/common.ogg diff --git a/resources/characters/braixen/sfx/digest1.ogg b/resources/common/sfx/digest1.ogg similarity index 100% rename from resources/characters/braixen/sfx/digest1.ogg rename to resources/common/sfx/digest1.ogg diff --git a/resources/characters/braixen/sfx/digest2.ogg b/resources/common/sfx/digest2.ogg similarity index 100% rename from resources/characters/braixen/sfx/digest2.ogg rename to resources/common/sfx/digest2.ogg diff --git a/resources/characters/braixen/sfx/digest3.ogg b/resources/common/sfx/digest3.ogg similarity index 100% rename from resources/characters/braixen/sfx/digest3.ogg rename to resources/common/sfx/digest3.ogg diff --git a/resources/characters/braixen/sfx/dispose.ogg b/resources/common/sfx/dispose.ogg similarity index 100% rename from resources/characters/braixen/sfx/dispose.ogg rename to resources/common/sfx/dispose.ogg diff --git a/resources/characters/braixen/sfx/epic.ogg b/resources/common/sfx/epic.ogg similarity index 100% rename from resources/characters/braixen/sfx/epic.ogg rename to resources/common/sfx/epic.ogg diff --git a/resources/characters/mini/sfx/gurgle1.ogg b/resources/common/sfx/gurgle1.ogg similarity index 100% rename from resources/characters/mini/sfx/gurgle1.ogg rename to resources/common/sfx/gurgle1.ogg diff --git a/resources/characters/mini/sfx/gurgle2.ogg b/resources/common/sfx/gurgle2.ogg similarity index 100% rename from resources/characters/mini/sfx/gurgle2.ogg rename to resources/common/sfx/gurgle2.ogg diff --git a/resources/characters/mini/sfx/gurgle3.ogg b/resources/common/sfx/gurgle3.ogg similarity index 100% rename from resources/characters/mini/sfx/gurgle3.ogg rename to resources/common/sfx/gurgle3.ogg diff --git a/resources/characters/mini/sfx/gurgle4.ogg b/resources/common/sfx/gurgle4.ogg similarity index 100% rename from resources/characters/mini/sfx/gurgle4.ogg rename to resources/common/sfx/gurgle4.ogg diff --git a/resources/characters/mini/sfx/gurgle5.ogg b/resources/common/sfx/gurgle5.ogg similarity index 100% rename from resources/characters/mini/sfx/gurgle5.ogg rename to resources/common/sfx/gurgle5.ogg diff --git a/resources/characters/braixen/sfx/hover.ogg b/resources/common/sfx/hover.ogg similarity index 100% rename from resources/characters/braixen/sfx/hover.ogg rename to resources/common/sfx/hover.ogg diff --git a/resources/characters/braixen/sfx/hover2.ogg b/resources/common/sfx/hover2.ogg similarity index 100% rename from resources/characters/braixen/sfx/hover2.ogg rename to resources/common/sfx/hover2.ogg diff --git a/resources/characters/braixen/sfx/hover3.ogg b/resources/common/sfx/hover3.ogg similarity index 100% rename from resources/characters/braixen/sfx/hover3.ogg rename to resources/common/sfx/hover3.ogg diff --git a/resources/characters/braixen/sfx/impossible.ogg b/resources/common/sfx/impossible.ogg similarity index 100% rename from resources/characters/braixen/sfx/impossible.ogg rename to resources/common/sfx/impossible.ogg diff --git a/resources/characters/braixen/sfx/kiss1.ogg b/resources/common/sfx/kiss1.ogg similarity index 100% rename from resources/characters/braixen/sfx/kiss1.ogg rename to resources/common/sfx/kiss1.ogg diff --git a/resources/characters/braixen/sfx/kiss2.ogg b/resources/common/sfx/kiss2.ogg similarity index 100% rename from resources/characters/braixen/sfx/kiss2.ogg rename to resources/common/sfx/kiss2.ogg diff --git a/resources/characters/braixen/sfx/kiss3.ogg b/resources/common/sfx/kiss3.ogg similarity index 100% rename from resources/characters/braixen/sfx/kiss3.ogg rename to resources/common/sfx/kiss3.ogg diff --git a/resources/characters/braixen/sfx/kiss4.ogg b/resources/common/sfx/kiss4.ogg similarity index 100% rename from resources/characters/braixen/sfx/kiss4.ogg rename to resources/common/sfx/kiss4.ogg diff --git a/resources/characters/braixen/sfx/kiss5.ogg b/resources/common/sfx/kiss5.ogg similarity index 100% rename from resources/characters/braixen/sfx/kiss5.ogg rename to resources/common/sfx/kiss5.ogg diff --git a/resources/characters/braixen/sfx/open.ogg b/resources/common/sfx/open.ogg similarity index 100% rename from resources/characters/braixen/sfx/open.ogg rename to resources/common/sfx/open.ogg diff --git a/resources/characters/braixen/sfx/rare.ogg b/resources/common/sfx/rare.ogg similarity index 100% rename from resources/characters/braixen/sfx/rare.ogg rename to resources/common/sfx/rare.ogg diff --git a/resources/characters/braixen/sfx/return.ogg b/resources/common/sfx/return.ogg similarity index 100% rename from resources/characters/braixen/sfx/return.ogg rename to resources/common/sfx/return.ogg diff --git a/resources/characters/braixen/sfx/rub.ogg b/resources/common/sfx/rub.ogg similarity index 100% rename from resources/characters/braixen/sfx/rub.ogg rename to resources/common/sfx/rub.ogg diff --git a/resources/characters/braixen/sfx/select.ogg b/resources/common/sfx/select.ogg similarity index 100% rename from resources/characters/braixen/sfx/select.ogg rename to resources/common/sfx/select.ogg diff --git a/resources/characters/braixen/sfx/smack1.ogg b/resources/common/sfx/smack1.ogg similarity index 100% rename from resources/characters/braixen/sfx/smack1.ogg rename to resources/common/sfx/smack1.ogg diff --git a/resources/characters/braixen/sfx/smack2.ogg b/resources/common/sfx/smack2.ogg similarity index 100% rename from resources/characters/braixen/sfx/smack2.ogg rename to resources/common/sfx/smack2.ogg diff --git a/resources/characters/braixen/sfx/smack3.ogg b/resources/common/sfx/smack3.ogg similarity index 100% rename from resources/characters/braixen/sfx/smack3.ogg rename to resources/common/sfx/smack3.ogg diff --git a/resources/characters/braixen/sfx/smack4.ogg b/resources/common/sfx/smack4.ogg similarity index 100% rename from resources/characters/braixen/sfx/smack4.ogg rename to resources/common/sfx/smack4.ogg diff --git a/resources/characters/braixen/sfx/smack5.ogg b/resources/common/sfx/smack5.ogg similarity index 100% rename from resources/characters/braixen/sfx/smack5.ogg rename to resources/common/sfx/smack5.ogg diff --git a/resources/characters/braixen/sfx/special.ogg b/resources/common/sfx/special.ogg similarity index 100% rename from resources/characters/braixen/sfx/special.ogg rename to resources/common/sfx/special.ogg diff --git a/resources/characters/braixen/sfx/summon.ogg b/resources/common/sfx/summon.ogg similarity index 100% rename from resources/characters/braixen/sfx/summon.ogg rename to resources/common/sfx/summon.ogg diff --git a/resources/characters/braixen/sfx/throw.ogg b/resources/common/sfx/throw.ogg similarity index 100% rename from resources/characters/braixen/sfx/throw.ogg rename to resources/common/sfx/throw.ogg diff --git a/resources/characters/braixen/sfx/throw2.ogg b/resources/common/sfx/throw2.ogg similarity index 100% rename from resources/characters/braixen/sfx/throw2.ogg rename to resources/common/sfx/throw2.ogg diff --git a/resources/characters/braixen/sfx/throw3.ogg b/resources/common/sfx/throw3.ogg similarity index 100% rename from resources/characters/braixen/sfx/throw3.ogg rename to resources/common/sfx/throw3.ogg diff --git a/resources/characters/braixen/sfx/turn.ogg b/resources/common/sfx/turn.ogg similarity index 100% rename from resources/characters/braixen/sfx/turn.ogg rename to resources/common/sfx/turn.ogg diff --git a/resources/characters/braixen/sfx/uncommon.ogg b/resources/common/sfx/uncommon.ogg similarity index 100% rename from resources/characters/braixen/sfx/uncommon.ogg rename to resources/common/sfx/uncommon.ogg diff --git a/src/anm2.cpp b/src/anm2.cpp index edd1dc1..aec213a 100644 --- a/src/anm2.cpp +++ b/src/anm2.cpp @@ -7,14 +7,7 @@ constexpr Color LAYER_COLOR = {1, 0, 0, 1}; constexpr Color NULL_COLOR = {0, 0, 1, 1}; constexpr const char* EASING_NAMES[] = {"", "linear", "easeIn", "easeOut", "easeInOut"}; -struct Region -{ - Vec2 crop; - Vec2 pivot; - Vec2 size; -}; - -static Anm2Frame frame_parse(object source, const std::vector* regions) +static Anm2Frame frame_parse(object source, const std::vector* regions) { Anm2Frame frame; int region = json_int(source, "region", -1); @@ -41,7 +34,7 @@ static Anm2Frame frame_parse(object source, const std::vector* regions) return frame; } -static Anm2Track track_parse(object source, const char* key, const std::vector* regions = nullptr) +static Anm2Track track_parse(object source, const char* key, const std::vector* regions = nullptr) { Anm2Track track; for (element entry : json_array(source, key)) @@ -55,7 +48,7 @@ static Anm2Track track_parse(object source, const char* key, const std::vector& items, const std::vector>& sheetRegions, + std::vector& items, const std::vector>& sheetRegions, const std::vector& layerSheets) { for (element entry : list) @@ -81,7 +74,7 @@ static void items_parse(array list, const char* idKey, int parent, Anm2Animation // Reads animations by name, along with those inside groups of them (which hold an "animations" object). static void animations_parse(object list, std::vector& animations, - const std::vector>& sheetRegions, const std::vector& layerSheets) + const std::vector>& sheetRegions, const std::vector& layerSheets) { for (auto [key, value] : list) { @@ -121,24 +114,24 @@ static void animations_parse(object list, std::vector& animations } } -void Anm2::load(const std::string& path, Renderer& renderer, Audio& audio) +// Loads a document by its path within roots. Its spritesheets and sounds are found relative to it, in the same roots. +void Anm2::load(const std::string& path, const Roots& roots, Renderer& renderer, Audio& audio) { Json json; - json.load(path); + json.load(file_find(roots, path)); if (!json.isValid) return; object root = json.root; std::string folder = path.substr(0, path.find_last_of('/') + 1); fps = json_float(json_object(root, "info"), "fps", fps); - std::vector> sheetRegions; for (element entry : json_array(root, "spritesheets")) { object fields; if (entry.get(fields)) continue; - sheets.push_back(renderer.texture_get(folder + json_string(fields, "path"))); - std::vector& regions = sheetRegions.emplace_back(); + sheets.push_back(renderer.texture_get(file_find(roots, folder + json_string(fields, "path")))); + std::vector& sheet = regions.emplace_back(); for (element regionEntry : json_array(fields, "regions")) { object region; @@ -147,7 +140,7 @@ void Anm2::load(const std::string& path, Renderer& renderer, Audio& audio) Vec2 size = json_vec2(region, "size"); std::string origin = json_string(region, "origin"); Vec2 pivot = origin == "center" ? size / 2 : origin == "topLeft" ? Vec2{} : json_vec2(region, "pivot"); - regions.push_back({json_vec2(region, "crop"), pivot, size}); + sheet.push_back({json_string(region, "name"), json_vec2(region, "crop"), pivot, size}); } } @@ -171,9 +164,11 @@ void Anm2::load(const std::string& path, Renderer& renderer, Audio& audio) names_parse("events", events, nullptr); std::vector soundPaths; names_parse("sounds", soundPaths, nullptr); - sounds = audio.sounds_get(folder, soundPaths); + for (std::string& sound : soundPaths) + sound = folder + sound; + sounds = audio.sounds_get(roots, soundPaths); - animations_parse(json_object(root, "animations"), animations, sheetRegions, layerSheets); + animations_parse(json_object(root, "animations"), animations, regions, layerSheets); for (int i = 0; i < (int)animations.size(); i++) animationIndices[animations[i].name] = i; bounds.assign(animations.size(), {NAN, NAN, NAN, NAN}); @@ -186,6 +181,16 @@ static int name_get(const std::vector& names, const std::string& na return found == names.end() ? -1 : (int)(found - names.begin()); } +const Anm2Region* Anm2::region_get(int sheet, const std::string& name) const +{ + if (sheet < 0 || sheet >= (int)regions.size()) + return nullptr; + for (const Anm2Region& region : regions[sheet]) + if (region.name == name) + return ®ion; + return nullptr; +} + int Anm2::animation_get(const std::string& name) const { auto found = animationIndices.find(name); diff --git a/src/anm2.h b/src/anm2.h index b31ad85..931541d 100644 --- a/src/anm2.h +++ b/src/anm2.h @@ -60,6 +60,15 @@ struct Anm2Trigger int event = -1; }; +// A named part of a spritesheet: its rectangle and pivot. +struct Anm2Region +{ + std::string name; + Vec2 crop; + Vec2 pivot; + Vec2 size; +}; + // Layers draw in order, the first at the bottom. struct Anm2Animation { @@ -83,6 +92,7 @@ public: std::vector events; std::vector layers; std::vector nulls; + std::vector> regions; std::vector bounds; std::vector sheets; std::vector layerSheets; @@ -90,7 +100,8 @@ public: float fps = 30; int defaultAnimation = -1; - void load(const std::string& path, Renderer& renderer, Audio& audio); + void load(const std::string& path, const Roots& roots, Renderer& renderer, Audio& audio); + const Anm2Region* region_get(int sheet, const std::string& name) const; int animation_get(const std::string& name) const; int event_get(const std::string& name) const; int layer_get(const std::string& name) const; diff --git a/src/audio.cpp b/src/audio.cpp index 677b138..f8b5d75 100644 --- a/src/audio.cpp +++ b/src/audio.cpp @@ -27,11 +27,35 @@ Sound* Audio::sound_get(const std::string& path) return &sound; } -Sounds Audio::sounds_get(const std::string& folder, const std::vector& paths) +// Sounds by path, where a path with a "*" stands for every match in the first root holding any, in name order. +Sounds Audio::sounds_get(const Roots& roots, const std::vector& paths) { Sounds list; for (const std::string& path : paths) - list.push_back(sound_get(folder + path)); + { + if (path.find('*') == std::string::npos) + { + list.push_back(sound_get(file_find(roots, path))); + continue; + } + std::string normal = path_normalize(path); + std::string folder = normal.substr(0, normal.find_last_of('/') + 1); + std::string pattern = normal.substr(folder.size()); + for (const std::string& root : roots) + { + int count = 0; + char** names = SDL_GlobDirectory((root + folder).c_str(), pattern.c_str(), 0, &count); + std::vector sorted(names, names + (names ? count : 0)); + SDL_free(names); + std::sort(sorted.begin(), sorted.end()); + for (const std::string& name : sorted) + list.push_back(sound_get(root + folder + name)); + if (!sorted.empty()) + break; + } + if (list.empty()) + SDL_Log("No sounds match: %s", normal.c_str()); + } return list; } diff --git a/src/audio.h b/src/audio.h index 9c10bd4..88e93c9 100644 --- a/src/audio.h +++ b/src/audio.h @@ -1,5 +1,6 @@ #pragma once +#include "common.h" #include #include #include @@ -26,7 +27,7 @@ class Audio public: void init(); Sound* sound_get(const std::string& path); - Sounds sounds_get(const std::string& folder, const std::vector& paths); + Sounds sounds_get(const Roots& roots, const std::vector& paths); void play(Sound* sound); void play(const Sounds& sounds); void gain_set(float gain); diff --git a/src/body.cpp b/src/body.cpp index 5f031fa..d9597e8 100644 --- a/src/body.cpp +++ b/src/body.cpp @@ -225,7 +225,7 @@ void Body::update(std::vector& events) } } values_clamp(); - if (is_chance(traits.gurgleChance * capacity_percent_get() * traits.gurgleCapacityMultiplier * PERCENT)) + if (is_chance(traits.gurgleChance * capacity_percent_get() * traits.gurgleCapacityMultiplier)) audio->play(character->sounds[SOUND_GURGLE]); if (int current = stage_get(stats.weight); current != stage) stage_set(current); diff --git a/src/character.cpp b/src/character.cpp index 8d2e85c..b73a524 100644 --- a/src/character.cpp +++ b/src/character.cpp @@ -3,8 +3,9 @@ #include constexpr float FONT_SIZE = 20; -constexpr const char* EFFECT_NAMES[] = {"animation", "big", "color", "delay", "oscillation", "scene", - "screenshake", "shake", "silent", "small", "sound"}; +constexpr const char* COMMON_FOLDER = "common/"; +constexpr const char* TAG_NAMES[] = {"animation", "big", "color", "delay", "screenshake", + "shake", "silent", "small", "sound", "wave"}; constexpr const char* USE_NAMES[] = {"", "edible", "tool"}; constexpr const char* HOOK_NAMES[] = { #define X(id, name) name, @@ -25,12 +26,10 @@ constexpr SoundSource SOUND_SOURCES[] = { #undef X }; -static int utf8_length_get(const std::string& text) +// Durations in data files are in seconds, and kept in ticks. +static int ticks_get(float seconds) { - int length = 0; - for (unsigned char byte : text) - length += (byte & 0xC0) != 0x80; - return length; + return (int)std::round(seconds * TICK_RATE); } Entry* Dialogue::entry_get(const std::string& label) @@ -58,10 +57,10 @@ bool Dialogue::is_hook(Hook hook) return pools.contains(hooks[hook]) || entries.contains(hooks[hook]); } -int Catalog::item_get(const std::string& name) +int Catalog::item_get(const std::string& id) { for (int i = 0; i < (int)items.size(); i++) - if (items[i].name == name) + if (items[i].id == id) return i; return -1; } @@ -74,16 +73,18 @@ void Character::preview_load(const std::string& path, Renderer& renderer) return; object root = json.root; folder = path; + roots = {folder, path_get(COMMON_FOLDER)}; key = path.substr(0, path.size() - 1); key = key.substr(key.find_last_of('/') + 1); + id = json_string(root, "id", key); name = json_string(root, "name", key); description = json_string(root, "description"); credits = json_string(root, "credits"); color = json_color(root, "color", color); traits.weight = json_float(root, "weight"); anm2Path = json_string(root, "anm2"); - portrait = root["portrait"].error() ? nullptr : renderer.texture_get(folder + json_string(root, "portrait")); - render = root["render"].error() ? nullptr : renderer.texture_get(folder + json_string(root, "render")); + portrait = root["portrait"].error() ? nullptr : renderer.texture_get(file_find(roots, json_string(root, "portrait"))); + render = root["render"].error() ? nullptr : renderer.texture_get(file_find(roots, json_string(root, "render"))); for (element entry : json_array(root, "stages")) { object fields; @@ -101,13 +102,18 @@ Anm2* Character::anm2_get(const std::string& path, Renderer& renderer, Audio& au if (found != anm2s.end()) return found->second.animations.empty() ? nullptr : &found->second; Anm2& loaded = anm2s[path]; - loaded.load(folder + path, renderer, audio); + loaded.load(path, roots, renderer, audio); return loaded.animations.empty() ? nullptr : &loaded; } // Sets an interact area's fields from source, keeping what it doesn't name (its type's settings). static void interact_parse(object source, InteractArea& area, Character& character, Audio& audio) { + json_keys_check(source, + {"type", "null", "layer", "glyph", "isHold", "animation", "idleOnEnd", "cursorHover", "cursorActive", + "dialoguePool", "dialoguePoolFull", "dialogueCooldown", "digestionClick", "digestionHover", + "scaleAmplitude", "scaleCycles", "scaleTime", "sounds", "particles"}, + "an interact area"); area.animation = json_string(source, "animation", area.animation); area.cursorActive = json_string(source, "cursorActive", area.cursorActive); area.cursorHover = json_string(source, "cursorHover", area.cursorHover); @@ -116,11 +122,11 @@ static void interact_parse(object source, InteractArea& area, Character& charact area.glyph = json_string(source, "glyph", area.glyph); area.idleOnEnd = json_string(source, "idleOnEnd", area.idleOnEnd); area.digestionClick = json_float(source, "digestionClick", area.digestionClick); - area.digestionHover = json_float(source, "digestionHover", area.digestionHover); + area.digestionHover = json_float(source, "digestionHover", area.digestionHover * TICK_RATE) / TICK_RATE; area.scaleAmplitude = json_float(source, "scaleAmplitude", area.scaleAmplitude); area.scaleCycles = json_float(source, "scaleCycles", area.scaleCycles); - area.scaleTime = json_float(source, "scaleTime", area.scaleTime); - area.dialogueCooldown = json_int(source, "dialogueCooldown", area.dialogueCooldown); + area.scaleTime = ticks_get(json_float(source, "scaleTime", area.scaleTime / TICK_RATE)); + area.dialogueCooldown = ticks_get(json_float(source, "dialogueCooldown", area.dialogueCooldown / TICK_RATE)); area.isHold = json_is(source, "isHold", area.isHold); if (!source["layer"].error()) area.layer = character.anm2 ? character.anm2->layer_get(json_string(source, "layer")) : -1; @@ -129,11 +135,19 @@ static void interact_parse(object source, InteractArea& area, Character& charact if (!source["particles"].error()) area.particles = json_strings(source, "particles"); if (!source["sounds"].error()) - area.sounds = audio.sounds_get(character.folder, json_strings(source, "sounds")); + area.sounds = audio.sounds_get(character.roots, json_strings(source, "sounds")); } static void character_parse(object root, Character& character, Renderer& renderer, Audio& audio) { + json_keys_check(root, + {"id", "name", "description", "credits", "render", "portrait", "anm2", "color", "weight", "weightMax", + "capacity", "capacityMin", "capacityMax", "overstuffedMultiplier", "overstuffedDigestBonus", + "caloriesToKilogram", "digestionRate", "digestionRateMin", "digestionRateMax", "digestionTime", + "blinkChance", "gurgleChance", "gurgleCapacityMultiplier", "dialoguePool", "alternate", "stages", + "animations", "talk", "blink", "eatAreas", "expandAreas", "sounds", "interactTypes", + "interactAreas", "areas", "cursor", "menu", "particles"}, + "character.json"); character.anm2 = character.anm2_get(character.anm2Path, renderer, audio); Traits& traits = character.traits; traits.weightMax = json_float(root, "weightMax", traits.weight); @@ -146,21 +160,23 @@ static void character_parse(object root, Character& character, Renderer& rendere traits.digestionRate = json_float(root, "digestionRate") / TICK_RATE; traits.digestionRateMin = json_float(root, "digestionRateMin") / TICK_RATE; traits.digestionRateMax = json_float(root, "digestionRateMax", traits.digestionRate * TICK_RATE) / TICK_RATE; - traits.digestionTime = json_int(root, "digestionTime"); + traits.digestionTime = ticks_get(json_float(root, "digestionTime")); traits.blinkChance = json_float(root, "blinkChance"); traits.gurgleChance = json_float(root, "gurgleChance"); traits.gurgleCapacityMultiplier = json_float(root, "gurgleCapacityMultiplier"); character.dialoguePool = json_string(root, "dialoguePool"); object alternate = json_object(root, "alternate"); + json_keys_check(alternate, {"texture", "sound", "chance", "spritesheet"}, "alternate"); if (!alternate["texture"].error()) - character.alternate.texture = renderer.texture_get(character.folder + json_string(alternate, "texture")); + character.alternate.texture = renderer.texture_get(file_find(character.roots, json_string(alternate, "texture"))); if (!alternate["sound"].error()) - character.alternate.sound = audio.sound_get(character.folder + json_string(alternate, "sound")); + character.alternate.sound = audio.sound_get(file_find(character.roots, json_string(alternate, "sound"))); character.alternate.chance = json_float(alternate, "chance"); character.alternate.sheet = json_int(alternate, "spritesheet"); object animations = json_object(root, "animations"); + json_keys_check(animations, {"start", "idle", "idleFull", "stageUp"}, "animations"); character.animations = {json_string(animations, "idle"), json_string(animations, "idleFull"), json_string(animations, "stageUp"), json_string(animations, "start")}; @@ -171,24 +187,37 @@ static void character_parse(object root, Character& character, Renderer& rendere auto null_get = [&](object source, const char* key) { return anm2 ? anm2->null_get(json_string(source, key)) : -1; }; - character.talk = {layer_get(json_object(root, "talk"), "destination"), layer_get(json_object(root, "talk"), "source")}; - character.blink = {layer_get(json_object(root, "blink"), "destination"), - layer_get(json_object(root, "blink"), "source")}; + auto swap_get = [&](const char* key) { + object swap = json_object(root, key); + json_keys_check(swap, {"source", "destination"}, key); + return Swap{layer_get(swap, "destination"), layer_get(swap, "source")}; + }; + character.talk = swap_get("talk"); + character.blink = swap_get("blink"); + for (element entry : json_array(root, "stages")) + { + object fields; + if (!entry.get(fields)) + json_keys_check(fields, {"weight", "dialoguePool", "animationSuffix", "area"}, "a stage"); + } for (element entry : json_array(root, "eatAreas")) { object fields; - if (!entry.get(fields)) - character.eatAreas.push_back({json_string(fields, "animation"), - anm2 ? anm2->event_get(json_string(fields, "event")) : -1, - null_get(fields, "null")}); + if (entry.get(fields)) + continue; + json_keys_check(fields, {"null", "animation", "event"}, "an eat area"); + character.eatAreas.push_back({json_string(fields, "animation"), + anm2 ? anm2->event_get(json_string(fields, "event")) : -1, null_get(fields, "null")}); } for (element entry : json_array(root, "expandAreas")) { object fields; - if (!entry.get(fields)) - character.expandAreas.push_back( - {json_float(fields, "scaleMax"), layer_get(fields, "layer"), null_get(fields, "null")}); + if (entry.get(fields)) + continue; + json_keys_check(fields, {"layer", "null", "scaleMax"}, "an expand area"); + character.expandAreas.push_back( + {json_float(fields, "scaleMax"), layer_get(fields, "layer"), null_get(fields, "null")}); } std::vector typeNames; @@ -216,6 +245,7 @@ static void character_parse(object root, Character& character, Renderer& rendere } object areas = json_object(root, "areas"); + json_keys_check(areas, {"anm2", "boundsNull", "spawnNull", "list"}, "areas"); Anm2* areaAnm2 = character.anm2_get(json_string(areas, "anm2"), renderer, audio); std::string boundsNull = json_string(areas, "boundsNull", "Bounds"); std::string spawnNull = json_string(areas, "spawnNull", boundsNull); @@ -224,6 +254,7 @@ static void character_parse(object root, Character& character, Renderer& rendere object fields; if (entry.get(fields)) continue; + json_keys_check(fields, {"anm2", "gravity", "friction", "airResistance"}, "an area"); Area& area = character.areas.emplace_back(); area.anm2 = fields["anm2"].error() ? areaAnm2 : character.anm2_get(json_string(fields, "anm2"), renderer, audio); area.gravity = json_float(fields, "gravity", area.gravity); @@ -239,6 +270,8 @@ static void character_parse(object root, Character& character, Renderer& rendere object cursor = json_object(root, "cursor"); object cursorAnimations = json_object(cursor, "animations"); + json_keys_check(cursor, {"anm2", "animations", "sounds", "particles"}, "cursor"); + json_keys_check(cursorAnimations, {"idle", "click", "hover", "grab", "pan", "zoom", "dispose"}, "cursor animations"); auto cursor_get = [&](const char* key) { return json_string(cursorAnimations, key); }; @@ -253,10 +286,12 @@ static void character_parse(object root, Character& character, Renderer& rendere character.anm2_get(json_string(cursor, "anm2"), renderer, audio)}; object menu = json_object(root, "menu"); + json_keys_check(menu, {"font", "iconsFont", "rounding", "homeGlyph", "sounds"}, "menu"); auto font_get = [&](const char* key) { std::string path = json_string(menu, key); return path.empty() ? nullptr - : ImGui::GetIO().Fonts->AddFontFromFileTTF((character.folder + path).c_str(), FONT_SIZE); + : ImGui::GetIO().Fonts->AddFontFromFileTTF(file_find(character.roots, path).c_str(), + FONT_SIZE); }; character.menu = {json_string(menu, "homeGlyph"), font_get("font"), font_get("iconsFont"), json_float(menu, "rounding")}; @@ -264,34 +299,42 @@ static void character_parse(object root, Character& character, Renderer& rendere for (auto [name, value] : json_object(root, "particles")) { object fields; - if (!value.get(fields)) - character.particles[std::string(name)] = { - json_string(fields, "animation"), character.anm2_get(json_string(fields, "anm2"), renderer, audio)}; + if (value.get(fields)) + continue; + json_keys_check(fields, {"anm2", "animation"}, "a particle"); + character.particles[std::string(name)] = {json_string(fields, "animation"), + character.anm2_get(json_string(fields, "anm2"), renderer, audio)}; } } static void items_parse(object root, Character& character, Renderer& renderer, Audio& audio) { + json_keys_check(root, + {"anm2", "spritesheet", "spawnDelay", "spawnDelayMultiplier", "spawnLimit", "sounds", "particles", + "rarities", "items"}, + "items.json"); Catalog& catalog = character.catalog; Anm2* baseAnm2 = character.anm2_get(json_string(root, "anm2"), renderer, audio); catalog.sheet = json_int(root, "spritesheet"); - catalog.spawnDelay = json_int(root, "spawnDelay", catalog.spawnDelay); + catalog.spawnDelay = ticks_get(json_float(root, "spawnDelay", catalog.spawnDelay / TICK_RATE)); catalog.spawnDelayMultiplier = json_float(root, "spawnDelayMultiplier", catalog.spawnDelayMultiplier); catalog.spawnLimit = json_int(root, "spawnLimit", catalog.spawnLimit); object particles = json_object(root, "particles"); + json_keys_check(particles, {"dispose", "summon"}, "item particles"); catalog.disposeParticles = json_strings(particles, "dispose"); catalog.summonParticles = json_strings(particles, "summon"); - object categories = json_object(root, "categories"); std::vector rarityNames; for (auto [name, value] : json_object(root, "rarities")) { object fields; if (value.get(fields)) continue; + json_keys_check(fields, {"weight", "sound"}, "a rarity"); std::string sound = json_string(fields, "sound"); - catalog.rarities.push_back({std::string(name), sound.empty() ? nullptr : audio.sound_get(character.folder + sound), - json_float(fields, "weight")}); + catalog.rarities.push_back({std::string(name), + sound.empty() ? nullptr : audio.sound_get(file_find(character.roots, sound)), + json_float(fields, "weight")}); rarityNames.emplace_back(name); } @@ -300,21 +343,29 @@ static void items_parse(object root, Character& character, Renderer& renderer, A object fields; if (entry.get(fields)) continue; + json_keys_check(fields, + {"id", "name", "description", "category", "rarity", "flavor", "use", "anm2", "region", "color", + "calories", "capacityBonus", "digestionBonus", "gravity", "isToggleSpritesheet"}, + "an item"); Item& item = catalog.items.emplace_back(); item.name = json_string(fields, "name", "???"); + item.id = json_string(fields, "id", item.name); item.description = json_string(fields, "description", "???"); item.category = json_string(fields, "category"); item.flavor = json_string(fields, "flavor"); - std::string use = json_string(categories, item.category.c_str()); + std::string use = json_string(fields, "use"); for (int i = 0; i < (int)std::size(USE_NAMES); i++) if (use == USE_NAMES[i]) item.use = (ItemUse)i; auto rarity = std::find(rarityNames.begin(), rarityNames.end(), json_string(fields, "rarity")); item.rarity = rarity == rarityNames.end() ? -1 : (int)(rarity - rarityNames.begin()); item.anm2 = fields["anm2"].error() ? baseAnm2 : character.anm2_get(json_string(fields, "anm2"), renderer, audio); - if (!fields["texture"].error()) - item.texture = renderer.texture_get(character.folder + json_string(fields, "texture")); - item.color = json_color(fields, "color", CLEAR); + std::string region = json_string(fields, "region", item.name); + item.region = item.anm2 ? item.anm2->region_get(catalog.sheet, region) : nullptr; + if (!item.region) + SDL_Log("Item \"%s\" has no region \"%s\"", item.name.c_str(), region.c_str()); + if (!fields["color"].error()) + item.color = json_color(fields, "color"); item.calories = json_float(fields, "calories"); item.capacityBonus = json_float(fields, "capacityBonus"); item.digestionBonus = json_float(fields, "digestionBonus") / TICK_RATE; @@ -323,71 +374,126 @@ static void items_parse(object root, Character& character, Renderer& renderer, A } } +// Takes a line's markup out of its text, into effects over its characters. A tag is [name] (or [name=value]), closed +// by [/name] for the ones over a range. [[ is a plain [. +static void markup_parse(const std::string& source, Line& line, const std::string& label, Character& character, + Audio& audio) +{ + std::vector open; + int at = 0; + for (size_t i = 0; i < source.size();) + { + size_t close = source.find(']', i); + bool isEscape = source[i] == '[' && i + 1 < source.size() && source[i + 1] == '['; + if (source[i] != '[' || isEscape || close == std::string::npos) + { + at += ((unsigned char)source[i] & 0xC0) != 0x80; + line.text += source[i]; + i += isEscape ? 2 : 1; + continue; + } + std::string tag = source.substr(i + 1, close - i - 1); + i = close + 1; + bool isClosing = !tag.empty() && tag[0] == '/'; + std::string name = tag.substr(isClosing, tag.find('=') - isClosing); + std::string value = tag.find('=') == std::string::npos ? "" : tag.substr(tag.find('=') + 1); + auto found = std::find_if(std::begin(TAG_NAMES), std::end(TAG_NAMES), + [&](const char* tagName) { return name == tagName; }); + if (found == std::end(TAG_NAMES)) + { + SDL_Log("Unknown tag \"[%s]\" in dialogue entry \"%s\"", tag.c_str(), label.c_str()); + continue; + } + Effect effect = {.type = (EffectType)(found - std::begin(TAG_NAMES)), .start = at}; + bool isRange = effect.type == EFFECT_BIG || effect.type == EFFECT_COLOR || effect.type == EFFECT_SHAKE || + effect.type == EFFECT_SILENT || effect.type == EFFECT_SMALL || effect.type == EFFECT_WAVE; + if (isClosing) + { + auto opened = std::find_if(open.rbegin(), open.rend(), [&](Effect& entry) { return entry.type == effect.type; }); + if (opened == open.rend()) + continue; + opened->end = at; + line.effects.push_back(*opened); + open.erase(std::next(opened).base()); + continue; + } + if (effect.type == EFFECT_COLOR) + SDL_sscanf(value.c_str(), "%f %f %f", &effect.color.r, &effect.color.g, &effect.color.b); + effect.animation = effect.type == EFFECT_ANIMATION ? value : ""; + effect.sound = effect.type == EFFECT_SOUND ? audio.sound_get(file_find(character.roots, value)) : nullptr; + effect.delay = effect.type == EFFECT_DELAY ? ticks_get((float)SDL_atof(value.c_str())) : 0; + (isRange ? open : line.effects).push_back(effect); + } + for (Effect& effect : open) + { + effect.end = at; + line.effects.push_back(effect); + } + line.length = at; +} + static void dialogue_parse(object root, Character& character, Audio& audio) { + json_keys_check(root, {"speed", "blipEvery", "blip", "pauses", "hooks", "entries"}, "dialogue.json"); Dialogue& dialogue = character.dialogue; - dialogue.delay = std::max(1, json_int(root, "delay", dialogue.delay)); - dialogue.blipDelay = json_int(root, "blipDelay"); - dialogue.blip = audio.sounds_get(character.folder, json_strings(root, "blip")); + float speed = json_float(root, "speed", TICK_RATE / dialogue.delay); + dialogue.delay = std::max(1, (int)std::round(TICK_RATE / std::max(speed, 1.0f))); + dialogue.blipDelay = json_int(root, "blipEvery"); + dialogue.blip = audio.sounds_get(character.roots, json_strings(root, "blip")); for (auto [letter, value] : json_object(root, "pauses")) { object fields; - if (!value.get(fields)) - dialogue.pauses[std::string(letter)] = {json_int(fields, "delay"), json_is(fields, "isSilent")}; + if (value.get(fields)) + continue; + json_keys_check(fields, {"delay", "isSilent"}, "a pause"); + dialogue.pauses[std::string(letter)] = {ticks_get(json_float(fields, "delay")), json_is(fields, "isSilent")}; } object hooks = json_object(root, "hooks"); for (int i = 0; i < HOOK_COUNT; i++) - dialogue.hooks[i] = json_string(hooks, HOOK_NAMES[i]); - for (auto [pool, value] : json_object(root, "pools")) - { - array list; - if (value.get(list)) - continue; - std::vector& labels = dialogue.pools[std::string(pool)]; - for (element label : list) - { - std::string_view text; - if (!label.get(text)) - labels.emplace_back(text); - } - } + dialogue.hooks[i] = json_string(hooks, HOOK_NAMES[i], HOOK_NAMES[i]); for (auto [label, value] : json_object(root, "entries")) { object fields; if (value.get(fields)) continue; - Entry& entry = dialogue.entries[std::string(label)]; - entry.text = json_string(fields, "text"); - entry.animation = json_string(fields, "animation"); + std::string name(label); + json_keys_check(fields, {"isScene", "pools", "lines", "choices", "next"}, "dialogue entry \"" + name + "\""); + Entry& entry = dialogue.entries[name]; entry.next = json_string(fields, "next"); - entry.length = utf8_length_get(entry.text); + entry.isScene = json_is(fields, "isScene"); + for (const std::string& pool : json_strings(fields, "pools")) + dialogue.pools[pool].push_back(name); + for (element lineEntry : json_array(fields, "lines")) + { + object source; + if (lineEntry.get(source)) + continue; + json_keys_check(source, {"text", "animation"}, "a line of \"" + name + "\""); + Line& line = entry.lines.emplace_back(); + line.animation = json_string(source, "animation"); + markup_parse(json_string(source, "text"), line, name, character, audio); + } for (element choiceEntry : json_array(fields, "choices")) { object choice; - if (!choiceEntry.get(choice)) - entry.choices.push_back({json_string(choice, "next"), json_string(choice, "text", "")}); - } - for (element effectEntry : json_array(fields, "effects")) - { - object source; - if (effectEntry.get(source)) + if (choiceEntry.get(choice)) continue; - Effect& effect = entry.effects.emplace_back(); - std::string type = json_string(source, "type"); - for (int i = 0; i < EFFECT_COUNT; i++) - if (type == EFFECT_NAMES[i]) - effect.type = (EffectType)i; - effect.start = json_int(source, "start"); - effect.end = json_int(source, "end"); - effect.delay = json_int(source, "delay"); - effect.color = json_color(source, "color"); - effect.animation = json_string(source, "animation"); - if (!source["sound"].error()) - effect.sound = audio.sound_get(character.folder + json_string(source, "sound")); - entry.isScene |= effect.type == EFFECT_SCENE; + json_keys_check(choice, {"text", "next"}, "a choice of \"" + name + "\""); + entry.choices.push_back({json_string(choice, "next"), json_string(choice, "text", "")}); } + if (entry.lines.empty()) + entry.lines.emplace_back(); entry.isTerminal = entry.next.empty() && entry.choices.empty(); } + for (auto& [label, entry] : dialogue.entries) + { + std::vector nexts = {entry.next}; + for (Choice& choice : entry.choices) + nexts.push_back(choice.next); + for (const std::string& next : nexts) + if (!next.empty() && !dialogue.entries.contains(next)) + SDL_Log("Dialogue entry \"%s\" leads to missing \"%s\"", label.c_str(), next.c_str()); + } } static void sounds_parse(object root, DataFile file, Character& character, Audio& audio) @@ -397,7 +503,7 @@ static void sounds_parse(object root, DataFile file, Character& character, Audio const SoundSource& source = SOUND_SOURCES[i]; object section = *source.section ? json_object(root, source.section) : root; if (source.file == file) - character.sounds[i] = audio.sounds_get(character.folder, json_strings(json_object(section, "sounds"), source.key)); + character.sounds[i] = audio.sounds_get(character.roots, json_strings(json_object(section, "sounds"), source.key)); } } @@ -424,14 +530,15 @@ void Character::load(Renderer& renderer, Audio& audio) dialogue_parse(json.root, *this, audio); } -// An actor for an item, showing its texture in place of its anm2's item spritesheet. +// An actor for an item, showing its region in place of whatever its anm2's layers show from the items' spritesheet. Actor Character::item_actor_get(int item) { Item& entry = catalog.items[item]; Actor actor(entry.anm2); actor.isStatic = true; - if (entry.texture && catalog.sheet >= 0 && catalog.sheet < (int)actor.sheets.size()) - actor.sheets[catalog.sheet] = entry.texture; + for (int layer = 0; entry.anm2 && entry.region && layer < (int)actor.layers.size(); layer++) + if (entry.anm2->layerSheets[layer] == catalog.sheet) + actor.layers[layer] = {entry.region->crop, entry.region->pivot, {}, entry.region->size, true}; return actor; } @@ -449,7 +556,7 @@ int Character::area_get(int stage) std::string Character::save_path_get() { - return pref_path_get("saves/" + key + ".txt"); + return pref_path_get("saves/" + id + ".txt"); } // Every folder in resources/characters holding a character.json, in name order, with its preview loaded. diff --git a/src/character.h b/src/character.h index 9918e38..a14bb57 100644 --- a/src/character.h +++ b/src/character.h @@ -2,6 +2,7 @@ #include "anm2.h" #include +#include #include struct ImFont; @@ -142,15 +143,17 @@ struct Rarity float weight = 0; }; +// An item: its look (a region of the items' spritesheet), what it does and how it's described. Saves keep it by id. struct Item { std::string category; std::string description; std::string flavor; + std::string id; std::string name; + std::optional color; Anm2* anm2 = nullptr; - Texture* texture = nullptr; - Color color = CLEAR; + const Anm2Region* region = nullptr; float calories = 0; float capacityBonus = 0; float digestionBonus = 0; @@ -166,17 +169,16 @@ enum EffectType EFFECT_BIG, EFFECT_COLOR, EFFECT_DELAY, - EFFECT_OSCILLATION, - EFFECT_SCENE, EFFECT_SCREENSHAKE, EFFECT_SHAKE, EFFECT_SILENT, EFFECT_SMALL, EFFECT_SOUND, + EFFECT_WAVE, EFFECT_COUNT }; -// Something a dialogue line does over its characters, from start up to (not including) end. +// Something a line does over its characters from start up to (not including) end, or once at start. struct Effect { std::string animation; @@ -194,14 +196,21 @@ struct Choice std::string text; }; -struct Entry +// One line of dialogue: its text (markup taken out), the effects the markup gave it, and an animation to start with. +struct Line { std::string animation; - std::string next; std::string text; - std::vector choices; std::vector effects; int length = 0; +}; + +// Lines played in order, then the choices (or the entry) they lead to. +struct Entry +{ + std::string next; + std::vector choices; + std::vector lines; bool isScene = false; bool isTerminal = false; }; @@ -212,7 +221,8 @@ struct Pause bool isSilent = false; }; -// Dialogue entries by label, pools of them picked from at random, and the pool (or else entry) each hook plays. +// Dialogue entries by label, pools of them (named by the entries) picked from at random, and the pool (or else entry) +// each hook plays, which is the one named after the hook unless the hooks say otherwise. struct Dialogue { std::array hooks; @@ -305,7 +315,7 @@ struct Catalog int spawnDelay = 60; int spawnLimit = 100; - int item_get(const std::string& name); + int item_get(const std::string& id); }; // Everything a character folder holds. The preview (what the select screen shows) loads at startup, the rest when @@ -319,6 +329,7 @@ public: std::string description; std::string dialoguePool; std::string folder; + std::string id; std::string key; std::string name; std::unordered_map anm2s; @@ -329,6 +340,7 @@ public: std::vector interactAreas; std::vector interactTypes; std::vector stages; + Roots roots; Alternate alternate; Animations animations; Catalog catalog; diff --git a/src/common.h b/src/common.h index 3d5cb6f..cd0cb65 100644 --- a/src/common.h +++ b/src/common.h @@ -6,6 +6,7 @@ #include #include #include +#include constexpr const char* GAME_ID = "shweets-sim"; constexpr const char* GAME_NAME = "Shweet's Sim"; @@ -198,3 +199,37 @@ inline std::string pref_path_get(const std::string& relative) SDL_free(folder); return path; } + +// A path with "." and ".." worked out, so it can be looked for under any folder. +inline std::string path_normalize(const std::string& path) +{ + std::vector parts; + size_t start = 0; + while (start <= path.size()) + { + size_t end = std::min(path.find('/', start), path.size()); + std::string part = path.substr(start, end - start); + if (part == ".." && !parts.empty() && parts.back() != "..") + parts.pop_back(); + else if (!part.empty() && part != ".") + parts.push_back(part); + start = end + 1; + } + std::string result; + for (const std::string& part : parts) + result += (result.empty() ? "" : "/") + part; + return result; +} + +// Folders a character's files are looked for in, in order: its own, then resources/common. +using Roots = std::vector; + +inline std::string file_find(const Roots& roots, const std::string& relative) +{ + std::string normal = path_normalize(relative); + for (const std::string& root : roots) + if (SDL_GetPathInfo((root + normal).c_str(), nullptr)) + return root + normal; + SDL_Log("File not found: %s", normal.c_str()); + return roots.empty() ? normal : roots.front() + normal; +} diff --git a/src/dialogue.cpp b/src/dialogue.cpp index 38012df..6cd3cf5 100644 --- a/src/dialogue.cpp +++ b/src/dialogue.cpp @@ -5,9 +5,9 @@ constexpr float LIFE_MAX = 10; constexpr float SCREENSHAKE_MAGNITUDE = 0.03f; constexpr int SCREENSHAKE_TIME = 15; -static bool is_silent(const Entry& entry, int at) +static bool is_silent(const Line& line, int at) { - for (const Effect& effect : entry.effects) + for (const Effect& effect : line.effects) if (effect.type == EFFECT_SILENT && effect.start <= at && at < effect.end) return true; return false; @@ -40,20 +40,28 @@ void Text::set(Play& play, Entry* next, TextMode mode, const std::string& onEnd) idleOnEnd = onEnd; isScene = next->isScene; } + line_start(play, 0, + mode == TEXT_SEQUENCE ? INTERRUPT_ALWAYS + : mode == TEXT_INTERRUPTIBLE ? INTERRUPT_IF_ALLOWED + : INTERRUPT_NEVER); +} + +// Starts one of the entry's lines: its animation, and the delays and animations its effects begin with. +void Text::line_start(Play& play, int index, Interrupt interrupt) +{ + line = index; + Line& current = *line_get(); isFinished = false; isStarted = false; isBlipQueued = false; isAnimationStarted = false; animationTimePrevious = 0; - index = 0; + this->index = 0; tick = 0; life = 0; - Interrupt interrupt = mode == TEXT_SEQUENCE ? INTERRUPT_ALWAYS - : mode == TEXT_INTERRUPTIBLE ? INTERRUPT_IF_ALLOWED - : INTERRUPT_NEVER; - play.body.play(next->animation, TRANSITION_NORMAL, interrupt); + play.body.play(current.animation, TRANSITION_NORMAL, interrupt); delay = delayBase = play.character->dialogue.delay; - for (Effect& effect : next->effects) + for (Effect& effect : current.effects) { if (effect.start != 0) continue; @@ -62,14 +70,24 @@ void Text::set(Play& play, Entry* next, TextMode mode, const std::string& onEnd) if (effect.type == EFFECT_ANIMATION) play.body.play(effect.animation, TRANSITION_FORCE); } - if (!next->text.empty()) - play.body.isTalking = !is_silent(*next, 0); + if (!current.text.empty()) + play.body.isTalking = !is_silent(current, 0); +} + +Line* Text::line_get() +{ + return entry ? &entry->lines[line] : nullptr; +} + +bool Text::is_last_line() +{ + return entry && line + 1 >= (int)entry->lines.size(); } // Applies the effects coming up at a character: delays and animations, screen shakes and sounds. void Text::effects_apply(Play& play, int at) { - for (Effect& effect : entry->effects) + for (Effect& effect : line_get()->effects) { if (effect.start != at) continue; @@ -99,7 +117,7 @@ void Text::clear(Play& play) bool Text::is_interruptible() { - return !entry || entry->isTerminal; + return !entry || (entry->isTerminal && is_last_line()); } // The player's click or key: shows the rest of the line, or else moves to the next entry or closes the text. @@ -107,19 +125,20 @@ void Text::advance(Play& play) { if (!entry) return; + Line& current = *line_get(); if (!isFinished) { - for (int skipped = index + 1; skipped <= entry->length; skipped++) + for (int skipped = index + 1; skipped <= current.length; skipped++) effects_apply(play, skipped); - index = entry->length; - isFinished = true; - play.body.isTalking = false; - isScene &= !entry->isTerminal; + index = current.length; + finish(play); } - else if (!entry->choices.empty() || !entry->next.empty()) + else if (!is_last_line() || !entry->choices.empty() || !entry->next.empty()) { play.audio->play(play.character->sounds[SOUND_SELECT]); - if (!entry->choices.empty()) + if (!is_last_line()) + line_start(play, line + 1, INTERRUPT_ALWAYS); + else if (!entry->choices.empty()) choose(play, 0); else set(play, play.character->dialogue.entry_get(entry->next), TEXT_SEQUENCE); @@ -134,17 +153,27 @@ void Text::choose(Play& play, int choice) set(play, play.character->dialogue.entry_get(entry->choices[choice].next), TEXT_SEQUENCE); } -// Reveals the next character when its delay is up, with its effects, blips and talking. Entries without text wait out -// their animation, and finished last entries close after a while. +// Marks the line shown in full. A scene ends with the last line of its last entry. +void Text::finish(Play& play) +{ + isFinished = true; + isBlipQueued = false; + play.body.isTalking = false; + isScene &= !(entry->isTerminal && is_last_line()); +} + +// Reveals the next character when its delay is up, with its effects, blips and talking. Lines without text wait out +// their animation, and the finished last line of a last entry closes after a while. void Text::update(Play& play) { if (!entry) return; Dialogue& dialogue = play.character->dialogue; + Line& current = *line_get(); if (!isStarted) { isStarted = true; - for (Effect& effect : entry->effects) + for (Effect& effect : current.effects) if (effect.start == 0 && effect.type == EFFECT_SCREENSHAKE) play.camera.shake_add(SCREENSHAKE_MAGNITUDE, SCREENSHAKE_TIME); else if (effect.start == 0 && effect.type == EFFECT_SOUND) @@ -156,9 +185,9 @@ void Text::update(Play& play) index++; delay = delayBase; effects_apply(play, index); - auto pause = dialogue.pauses.find(letter_get(entry->text, index - 1)); + auto pause = dialogue.pauses.find(letter_get(current.text, index - 1)); Pause found = pause == dialogue.pauses.end() ? Pause{} : pause->second; - bool isSilentEffect = is_silent(*entry, index - 1); + bool isSilentEffect = is_silent(current, index - 1); delay += found.delay; play.body.isTalking = !found.isSilent && !isSilentEffect; bool isBlipStep = dialogue.blipDelay > 0 && index % dialogue.blipDelay == 0; @@ -171,29 +200,28 @@ void Text::update(Play& play) play.audio->play(dialogue.blip); isBlipQueued = false; } - if (index >= entry->length) - { - isFinished = true; - isBlipQueued = false; - play.body.isTalking = false; - isScene &= !entry->isTerminal; - } + if (index >= current.length) + finish(play); } - if (entry->text.empty()) + if (current.text.empty()) { Actor& actor = play.body.actor; Anm2Animation* animation = actor.animation_get(); - bool isReady = entry->animation.empty() || !animation || !actor.isPlaying || + bool isReady = current.animation.empty() || !animation || !actor.isPlaying || (!isAnimationStarted && animation->length <= 1) || (animation->isLoop && isAnimationStarted && actor.time < animationTimePrevious); isAnimationStarted = true; animationTimePrevious = actor.time; - if (entry->next.empty()) - clear(play); - else if (isReady) + if (!isReady) + return; + if (!is_last_line()) + line_start(play, line + 1, INTERRUPT_ALWAYS); + else if (!entry->next.empty()) set(play, dialogue.entry_get(entry->next), TEXT_SEQUENCE); + else if (entry->choices.empty()) + clear(play); } - else if (isFinished && entry->isTerminal && (life += TICK) > LIFE_MAX) + else if (isFinished && entry->isTerminal && is_last_line() && (life += TICK) > LIFE_MAX) clear(play); } diff --git a/src/dialogue.h b/src/dialogue.h index 9666114..c7e2289 100644 --- a/src/dialogue.h +++ b/src/dialogue.h @@ -11,8 +11,8 @@ enum TextMode TEXT_SEQUENCE }; -// Plays out a dialogue entry a character at a time with its effects, then offers its choices or the entry it leads to. -// A scene holds the game still until its last entry finishes. The UI shows it and passes on the player's input. +// Plays out a dialogue entry's lines a character at a time with their effects, then offers its choices or the entry it +// leads to. A scene holds the game still until its last entry finishes. The UI shows it and passes on the player's input. class Text { public: @@ -23,6 +23,7 @@ public: int delay = 0; int delayBase = 0; int index = 0; + int line = 0; int tick = 0; bool isAnimationStarted = false; bool isBlipQueued = false; @@ -35,8 +36,12 @@ public: void advance(Play& play); void choose(Play& play, int choice); void clear(Play& play); + Line* line_get(); bool is_interruptible(); + bool is_last_line(); private: void effects_apply(Play& play, int at); + void finish(Play& play); + void line_start(Play& play, int index, Interrupt interrupt); }; diff --git a/src/json.h b/src/json.h index a005a0f..da3d2d8 100644 --- a/src/json.h +++ b/src/json.h @@ -94,9 +94,13 @@ inline Color json_color(object source, const char* key, Color fallback = WHITE, return {value.r / divisor, value.g / divisor, value.b / divisor, value.a / divisor}; } +// A list of strings, or one string as a list of it. inline std::vector json_strings(object source, const char* key) { std::vector values; + std::string_view single; + if (!source[key].get(single)) + return {std::string(single)}; for (element entry : json_array(source, key)) { std::string_view value; @@ -105,3 +109,11 @@ inline std::vector json_strings(object source, const char* key) } return values; } + +// Logs any key of an object its reader doesn't know (likely a typo), naming where it is. +inline void json_keys_check(object source, std::initializer_list keys, const std::string& where) +{ + for (auto [key, value] : source) + if (std::find_if(keys.begin(), keys.end(), [&](const char* known) { return key == known; }) == keys.end()) + SDL_Log("Unknown key \"%s\" in %s", std::string(key).c_str(), where.c_str()); +} diff --git a/src/play.cpp b/src/play.cpp index c96ccd9..84f4e96 100644 --- a/src/play.cpp +++ b/src/play.cpp @@ -105,10 +105,10 @@ void Play::save() std::string text = fields_write(body.stats) + fields_write(*this); for (int i = 0; i < (int)items.discovered.size(); i++) if (items.discovered[i]) - text += std::string(KEY_DISCOVERED) + "=" + character->catalog.items[i].name + "\n"; + text += std::string(KEY_DISCOVERED) + "=" + character->catalog.items[i].id + "\n"; for (ItemEntity& entity : items.list) text += std::string(KEY_ITEM) + "=" + field_write(entity.actor.position) + " " + field_write(entity.velocity) + - " " + field_write(entity.actor.rotation.value_or(0)) + " " + character->catalog.items[entity.id].name + + " " + field_write(entity.actor.rotation.value_or(0)) + " " + character->catalog.items[entity.id].id + "\n"; file_write(character->save_path_get(), text); toast_add("Saving..."); diff --git a/src/ui.cpp b/src/ui.cpp index 1440c34..4a24ddc 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -220,13 +220,13 @@ static float hash_unit(Uint32 value) return (value & 0xffffu) / 65535.0f; } -// The scale, color and offset a dialogue entry's effects give its character at an index. -static float letter_style_get(const Entry& entry, int at, float time, ImU32& color, ImVec2& offset) +// The scale, color and offset a dialogue line's effects give its character at an index. +static float letter_style_get(const Line& line, int at, float time, ImU32& color, ImVec2& offset) { float scale = 1; color = ImGui::GetColorU32(ImGuiCol_Text); offset = {}; - for (const Effect& effect : entry.effects) + for (const Effect& effect : line.effects) { if (at < effect.start || at >= effect.end) continue; @@ -235,7 +235,7 @@ static float letter_style_get(const Entry& entry, int at, float time, ImU32& col color = ImGui::GetColorU32(imvec4_get({effect.color.r, effect.color.g, effect.color.b, 1})); else if (effect.type == EFFECT_BIG || effect.type == EFFECT_SMALL) scale = effect.type == EFFECT_BIG ? TEXT_BIG : TEXT_SMALL; - else if (effect.type == EFFECT_OSCILLATION) + else if (effect.type == EFFECT_WAVE) offset.y += std::sin((time * OSCILLATION_FREQUENCY + at * OSCILLATION_SPREAD) * 2 * PI) * OSCILLATION_AMPLITUDE; else if (effect.type == EFFECT_SHAKE) @@ -247,8 +247,8 @@ static float letter_style_get(const Entry& entry, int at, float time, ImU32& col return scale; } -// Draws a dialogue entry's first count characters with their effects, wrapping whole words to the window. -static void letters_draw(const Entry& entry, int count, float time) +// Draws a dialogue line's first count characters with their effects, wrapping whole words to the window. +static void letters_draw(const Line& line, int count, float time) { ImFont* font = ImGui::GetFont(); float fontSize = ImGui::GetFontSize(); @@ -256,11 +256,11 @@ static void letters_draw(const Entry& entry, int count, float time) float wrap = start.x + ImGui::GetContentRegionAvail().x; ImVec2 cursor = start; float lineHeight = fontSize; - const char* end = entry.text.data() + entry.text.size(); + const char* end = line.text.data() + line.text.size(); auto width_get = [&](const char* from, const char* to, int at) { ImU32 color; ImVec2 offset; - return font->CalcTextSizeA(fontSize * letter_style_get(entry, at, time, color, offset), FLT_MAX, 0, from, to).x; + return font->CalcTextSizeA(fontSize * letter_style_get(line, at, time, color, offset), FLT_MAX, 0, from, to).x; }; auto line_break = [&]() { cursor = {start.x, cursor.y + lineHeight}; @@ -268,7 +268,7 @@ static void letters_draw(const Entry& entry, int count, float time) }; int at = 0; - for (const char* it = entry.text.data(); it < end && at < count; at++) + for (const char* it = line.text.data(); it < end && at < count; at++) { unsigned int codepoint = 0; const char* next = it + ImTextCharFromUtf8(&codepoint, it, end); @@ -294,7 +294,7 @@ static void letters_draw(const Entry& entry, int count, float time) } ImU32 color; ImVec2 offset; - float scale = letter_style_get(entry, at, time, color, offset); + float scale = letter_style_get(line, at, time, color, offset); float width = width_get(it, next, at); if (cursor.x + width > wrap) { @@ -421,7 +421,9 @@ void Ui::text_draw(Play& play, ImVec2 screen) { Text& text = play.text; Entry* entry = text.entry; - if (!entry || entry->text.empty()) + Line* line = text.line_get(); + bool isChoosing = entry && text.is_last_line() && !entry->choices.empty(); + if (!entry || (line->text.empty() && !isChoosing)) return; ImGuiStyle& style = ImGui::GetStyle(); ImVec2 size = {screen.x * TEXT_WIDTH - style.WindowPadding.x * 2, @@ -441,13 +443,13 @@ void Ui::text_draw(Play& play, ImVec2 screen) ImGui::EndTabBar(); } ImGui::PushFont(nullptr, FONT_NORMAL); - letters_draw(*entry, text.index, (float)ImGui::GetTime()); + letters_draw(*line, text.index, (float)ImGui::GetTime()); ImVec2 position = ImGui::GetWindowPos(); ImVec2 contentMin = {position.x + style.WindowPadding.x, position.y + style.WindowPadding.y}; ImVec2 contentMax = {position.x + ImGui::GetWindowWidth() - style.WindowPadding.x, position.y + ImGui::GetWindowHeight() - style.WindowPadding.y}; - if (text.isFinished && !entry->choices.empty()) + if (text.isFinished && isChoosing) { float buttonY = contentMax.y - ImGui::GetFrameHeight(); float separatorY = buttonY - style.ItemSpacing.y; @@ -473,7 +475,7 @@ void Ui::text_draw(Play& play, ImVec2 screen) } else { - if (text.isFinished && !entry->next.empty()) + if (text.isFinished && (!text.is_last_line() || !entry->next.empty())) { float side = ImGui::GetTextLineHeightWithSpacing(); ImVec2 center = {contentMax.x - side / 2 + @@ -757,9 +759,9 @@ void Ui::catalog_tab_draw(Play& play) for (int i = 0; i < (int)items.size(); i++) { ImGui::PushID(i); - bool isColored = play.items.discovered[i] && items[i].color.a > 0; + bool isColored = play.items.discovered[i] && items[i].color; if (isColored) - style_push(items[i].color); + style_push(*items[i].color); bool isCurrent = i == selectedItem; if (isCurrent) for (ImGuiCol id : {ImGuiCol_Button, ImGuiCol_ButtonHovered, ImGuiCol_ButtonActive}) @@ -795,9 +797,9 @@ void Ui::catalog_tab_draw(Play& play) if (infoHeight <= 0) return; - bool isColored = isDiscovered && items[selectedItem].color.a > 0; + bool isColored = isDiscovered && items[selectedItem].color; if (isColored) - style_push(items[selectedItem].color); + style_push(*items[selectedItem].color); if (ImGui::BeginChild("##Info", {available.x, infoHeight})) { ImGui::Separator();