Dialogue markup and lines, shared common folder, item atlases, ids, seconds and key checks

This commit is contained in:
shweet committed 2026-11-12 22:51:11 -05:00
1 parent 3e9a0cbd34
commit f900a0d01f
217 files changed
+6830 -6423

No files matched your search

+68 -54
View File
@@ -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/<character>.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/<character id>.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).
+9 -12
View File
@@ -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"]
}
+76 -289
View File
@@ -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"}
]
}
}
@@ -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}
]
}
]
}
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 575 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 651 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 558 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 732 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 933 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 918 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 933 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 865 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 625 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 714 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 634 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 835 B

+33 -34
View File
@@ -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"}
]
}
+9 -12
View File
@@ -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"]
}
File diff suppressed because it is too large. Load diff
Binary file not shown.
+95 -1
View File
@@ -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"}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 929 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 760 B

@@ -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]
}
]
}
]
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

@@ -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"
}
]
}
]
}
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

@@ -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"}
]
}
]
}
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

+32 -39
View File
@@ -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"
}
]
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+9 -12
View File
@@ -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"]
}
File diff suppressed because it is too large. Load diff
Binary file not shown.
@@ -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"
}
]
}
]
}
}
}
@@ -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}
]
}
]
}
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 575 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 651 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 558 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 732 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 933 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 918 B

Loaded 100 of 217 files, more files were not shown because too many files have changed in this diff. Show more