Super Auto Pets mechanics
Start
I’ve been playing a lot of Super Auto Pets recently. I was kinda late to play it because last year when it came out I was quite auto battler fatigued, so I couldn’t bring myself to try it. But I finally tried it like 2 months ago and have about 100 hours in it since then and I really really like it.
This is a good place for me to write this post because my thoughts on it are freshest, and I’ve already gotten most analytical insights I’ll get even though I’m going to keep playing it for hundreds of hours more most likely. And this happens because there are diminishing returns to such insights, since I’ve learned the most from the first 100 hours and subsequent ones will each teach less.
One example of this is that I distinctly remember the first ~10-20 hours of SAP feeling alien to me. I don’t think I’ve ever played a game that had quite this combination of mechanics (and by mechanics I mean what each unit does, not the fact that it’s an auto battler or that it has a rerolling shop) so they all felt very distinctly weird to me until it all started connecting.
So I’m going to spend this post going over every unit in the game and generalizing the mechanics. SAP has a lot of unique and good ideas that are very easily transferable to any game that is built around a rerolling shop (like SNKRX, Brotato, Just King, Underlords, TFT, etc) so it’s worth it to go through it thoroughly.
Tier 1
Start
Tier 1
Tier 2
Tier 3
Tier 4
Tier 6
Tier 5
Final tables
Rerolling shop genre
Ant
The most sensible way of dividing SAP’s mechanics are in terms of triggers and effects. In the ant’s case, its trigger is faint and its effect is a stat change to a random ally. It also seems from the ant’s effect that effects in general should have two variables: what the effect is and its target.
Both the faint trigger and the stat change effect also behave differently depending on whether they happen in or out of combat. They are temporary for the former and permanent for the latter. This particular idea is something that is game specific that I’m going to largely ignore, even though it applies to a lot of the game’s mechanics.
This is because I can easily imagine a game where the difference between in and out of combat are irrelevant. For instance, if in your rerolling shop game units always die permanently when they die, then it makes no sense for there to be a difference in how faint behaves.
The same goes for another trigger like hurt. If units are always hurt permanently when they are hurt, then it makes no sense for the hurt trigger to behave differently. So given that this is game specific and it has no effect on the mechanic itself whatsoever, it can be safely ignored.
So from the ant we could start with something like this:
Stat change |
add, sub, mul or div of a stat |
Random ally |
a random ally |
The way to build a unit generally is to take one thing from each table. So the ant would be something like:
- Trigger: faint
- Effect: stat change
- Effect target: random ally
And the point of laying out the game’s mechanics in tables like this is that it makes it easier to visualize and then iterate upon, provided you’ve chosen the right level of abstraction for your tables. In this case, triggers and effects are very obviously right, so it will work OK.
Beaver
Faint |
when the unit dies |
Sell |
when the unit is sold |
N random allies |
where N >= 1 |
Just a small change from the previous random ally
effect target to avoid having to repeat it in the table for multiple targets. The beaver would look like this:
- Trigger: sell
- Effect: stat change
- Effect target: 2 random allies
I’m not going to repeat this for every unit. For units where a new trigger/effect/effect target exists, I’ll just add the new element and it will be bolded like this
. And for units that can be built from elements that were previously added then I’ll show how they should be built instead.
Cricket
Stat change |
add, sub, mul or div of a stat |
Summon |
summons another unit |
Duck
All shop units |
|
N random allies |
where N >= 1 |
Fish
Faint |
when the unit dies |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Horse
Here we have a new effect type which has a condition (until the end of battle) attached to it. I know that the right move is to separate conditions into their own table because there are going to be more (at least I think so), so that’s what I’ll do here.
Ally summoned |
when an ally is summoned |
Faint |
when the unit dies |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Until the end of battle |
the effect will persist until the next battle ends |
All shop units |
|
All summoned allies |
|
N random allies |
where N >= 1 |
The problem with ally summoned
is that it inherently ties itself to the effect target, in this case, the ally that was summoned. This makes it less composable, so initially I decided to add an N summoned allies
effect target instead to see how it goes.
The problem with N summoned allies
though is that it was just wrong. For instance, if we wanted to describe the horse using it we could do something like “Ally summoned -> Give 1 summoned ally +N attack until the end of battle”. But this is wrong, because it implies that the horse only gives the buff to 1 summoned ally, instead of any ally that is summoned.
Which means that I actually needed to add all summoned allies
instead as an effect target. But can all summoned allies
be composed with triggers other than ally summoned
? Kind of. I can initially imagine a unit like “Level-up -> Give all summoned allies +N attack”. The problem is that this wouldn’t be immediate, because unless a unit is summoned when the level up happens nothing will happen since there will be no targets.
A way to fix this is to add an effect condition like this turn
. So we would change our imagined unit to “Level-up -> Give all allies summoned this turn +N attack”. This makes what it does clear and also seems to compose well with other triggers. This also makes the N summoned allies
effect target work, for instance “Level-up -> Give 2 allies summoned this turn +N attack”.
This little derail is a good example of why it’s good to go through a game’s mechanics like this. You can’t ignore details and you also get the opportunity to think very clearly about the game and how you would use its ideas in your own games.
For the types of games that I want to make, which are build heavy games, I’m also always looking at the question of “how can this mechanic be made more composable” because when you manage to answer that question correctly you get a lot of gameplay out of relatively simple coding.
Mosquito
Ally summoned |
when an ally is summoned |
Faint |
when the unit dies |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Deal damage |
deals damage to a unit |
Stat change |
add, sub, mul or div of a stat |
Summon |
summons another unit |
All shop units |
|
All summoned allies |
|
N random allies |
where N >= 1 |
N random enemies |
where N >= 1 |
Otter
Ally summoned |
when an ally is summoned |
Buy |
when the unit is bought |
Faint |
when the unit dies |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Pig
Deal damage |
deals damage to a unit |
Player resource change |
add, sub, mul or div of a player resource value |
Stat change |
add, sub, mul or div of a stat |
Summon |
summons another unit |
Because this is meant for other games, we can more generally define any non-unit stat such as gold as a “player resource”.
Beetle
Ally summoned |
when an ally is summoned |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
Faint |
when the unit dies |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
All shop units |
|
All summoned allies |
|
Nth shop unit |
where N >= 1 |
N random allies |
where N >= 1 |
N random enemies |
where N >= 1 |
Because this is meant for other games, we’re calling “shop food” an item instead, since it’s a more general description of the same idea for most rerolling shop games.
Bluebird
Ally summoned |
when an ally is summoned |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Faint |
when the unit dies |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Ladybug
Ally summoned |
when an ally is summoned |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Faint |
when the unit dies |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
All shop units |
|
All summoned allies |
|
Nth shop unit |
where N >= 1 |
N random allies |
where N >= 1 |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Cockroach
Ally summoned |
when an ally is summoned |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Faint |
when the unit dies |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Deal damage |
deals damage to a unit |
Player resource change |
add, sub, mul or div of a player resource value |
Stat change |
add, sub, mul or div of a stat |
Stat set |
sets a stat to a specific value |
Summon |
summons another unit |
Duckling
The first unit where nothing new is needed to describe it. It can be described as:
- Trigger: sell
- Effect: stat change
- Effect target: 1st shop unit
Frog
Deal damage |
deals damage to a unit |
Player resource change |
add, sub, mul or div of a player resource value |
Multiple stat swap |
swaps stats between multiple units |
Stat change |
add, sub, mul or div of a stat |
Stat set |
sets a stat to a specific value |
Summon |
summons another unit |
All shop units |
|
All summoned allies |
|
Nth shop unit |
where N >= 1 |
N random allies |
where N >= 1 |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
For SAP specifically there’s a distinction between swapping of stats between multiple units (such as with the frog) vs. swapping of stats within a single unit (such as with lollipop). As these are different effects they should be separate in the effects table.
Hummingbird
All shop units |
|
All summoned allies |
|
Nth shop unit |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
“Strawberry friend” is too specific to SAP to be useful, so instead the more general classed ally
is used, which means an ally of a given specific class, since auto battlers generally have the auto-chess class mechanic.
Iguana
Ally summoned |
when an ally is summoned |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
Nth shop unit |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Similarly to ally summoned
, enemies summoned
and enemies pushed
tie themselves to the effect target, making them less composable. The fix is the same as before.
Kiwi
Nothing new.
- Trigger: sell
- Effect: stat change
- Effect target: 1 random classed ally
Mouse
Deal damage |
deals damage to a unit |
Player resource change |
add, sub, mul or div of a player resource value |
Multiple stat swap |
swaps stats between multiple units |
Replace item |
replaces shop items with other items |
Stat change |
add, sub, mul or div of a stat |
Stat set |
sets a stat to a specific value |
Summon |
summons another unit |
Pillbug
Ally summoned |
when an ally is summoned |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
This has a SAP specific concept that also happens to work for SNKRX, but that might not necessarily work for other shop rerolling games, which is “behind”. For games where “behind” doesn’t make sense it can be changed to “to the left/right/up/down” or whatever other type of unit neighborhood set up that makes sense.
Seahorse
Deal damage |
deals damage to a unit |
Player resource change |
add, sub, mul or div of a player resource value |
Multiple stat swap |
swaps stats between multiple units |
Push enemy |
pushes an enemy to a different position |
Replace item |
replaces shop items with other items |
Stat change |
add, sub, mul or div of a stat |
Stat set |
sets a stat to a specific value |
Summon |
summons another unit |
Chinchilla
Nothing new.
- Trigger: sell
- Effect: summon
Frilled Dragon
Per specific ally |
applies the effect based on the number of allies of a specific type |
Until the end of battle |
the effect will persist until the next battle ends |
Kind of a weird condition, but this is the most composable version of it I think. Another variation of it would be per classed ally
, which would apply based on the number of allies of a given class.
Marmoset
Deal damage |
deals damage to a unit |
Player resource change |
add, sub, mul or div of a player resource value |
Multiple stat swap |
swaps stats between multiple units |
Push enemy |
pushes an enemy to a different position |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat set |
sets a stat to a specific value |
Summon |
summons another unit |
Moth
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Apple
Items should be described just like units but focused on their effects, generally because they don’t have triggers. You could try to describe them in a more complex manner, because you could also try to take into account when they’re held vs. when they apply instantly, but that adds unnecessary complexity for little gain.
So the apple, for instance, can just be described by its effect, which is a simple stat change.
Honey
Peach
Strawberry
Classify |
adds a class to a unit |
Deal damage |
deals damage to a unit |
Player resource change |
add, sub, mul or div of a player resource value |
Multiple stat swap |
swaps stats between multiple units |
Push enemy |
pushes an enemy to a different position |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat set |
sets a stat to a specific value |
Summon |
summons another unit |
Keeping up with the theme that strawberry is equivalent to classes in other auto battlers, it makes sense to add the classify
effect, which acts very similarly to items in Underlods that can add a new class to a unit.
Bacon
Cookie
- Effect: stat change
- Effect condition: until end of battle
And with this all tier 1 pets and foods are done. It should go faster for the next tiers because a lot of the mechanics have already been covered.
Tier 2
Start
Tier 1
Tier 2
Tier 3
Tier 4
Tier 6
Tier 5
Final tables
Rerolling shop genre
Crab
Classify |
adds a class to a unit |
Deal damage |
deals damage to a unit |
Player resource change |
add, sub, mul or div of a player resource value |
Multiple stat swap |
swaps stats between multiple units |
Push enemy |
pushes an enemy to a different position |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat set |
sets a stat to a specific value |
Summon |
summons another unit |
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Dodo
Classify |
adds a class to a unit |
Deal damage |
deals damage to a unit |
Player resource change |
add, sub, mul or div of a player resource value |
Multiple stat swap |
swaps stats between multiple units |
Push enemy |
pushes an enemy to a different position |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Summon |
summons another unit |
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Elephant
Ally summoned |
when an ally is summoned |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Classify |
adds a class to a unit |
Deal damage |
deals damage to a unit |
Player resource change |
add, sub, mul or div of a player resource value |
Multiple stat swap |
swaps stats between multiple units |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Summon |
summons another unit |
The elephant is the first unit that has multiple effects. There are multiple ways of handling multiple effects, I’m personally just going to assume the simplest possible things: either the unit has multiple chains of “trigger -> effect + condition -> target”, or a single “trigger -> effect + condition -> effect + condition -> … -> target”. The elephant happens to be the latter, which would go like “before attack -> deal damage -> repeat -> 1 ally behind”.
Flamingo
- Trigger: faint
- Effect: stat change
- Effect target: 2 allies behind
Not sure if there’s a difference between “faint” and “before faint”, but I don’t think there is.
Hedgehog
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All units |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Peacock
Ally summoned |
when an ally is summoned |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Rat
- Trigger: faint
- Effect: summon
Technically there should be two different summon types, one for allies and one for enemies, but because summoning enemies seems kind of really specific to SAP I’m just not going to bother.
Shrimp
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Faint
- Trigger: faint
- Effect: summon
For all summoned units the specific type of unit that is summoned is decided directly by the summon effect, since there’s no real composability benefit to specifying it in any of the other tables.
Swan
- Trigger: start of turn
- Effect: player resource change
Bat
Classify |
adds a class to a unit |
Deal damage |
deals damage to a unit |
Player resource change |
add, sub, mul or div of a player resource value |
Multiple stat swap |
swaps stats between multiple units |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Summon |
summons another unit |
Dromedary
- Trigger: start of turn
- Effect: stat change
- Effect target: 1st and 2nd shop units
Tabby Cat
- Trigger: consumes item
- Effect: stat change
- Effect condition: until end of battle
- Effect target: all allies
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All units |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Atlantic Puffin
- Trigger: start of battle
- Effect: deal damage
- Effect condition: per specific ally (strawberry)
- Effect target: 1 random enemy
Dove
- Trigger: faint
- Effect: stat change
- Effect target: 2 random classed allies
Guinea Pig
- Trigger: buy
- Effect: summon
Jellyfish
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Koala
Ally sold |
when an ally is sold |
Ally hurt |
when any ally is hurt |
Ally summoned |
when an ally is summoned |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Limit triggers |
applies the effect up to a max # of times per turn |
Per specific ally |
applies the effect based on the number of allies of a specific type |
Until the end of battle |
the effect will persist until the next battle ends |
Panda
- Trigger: start of battle
- Effect: give stat
- Effect target: 1 ally in front
Panda has 2 effects, the first giving its stats, and the second is fainting. This is interesting because faint is a trigger, but sometimes it’s also an effect, like this in this case. The pill can be implemented in the same way in that its effect is fainting.
Classify |
adds a class to a unit |
Deal damage |
deals damage to a unit |
Faint |
makes the unit faint |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Summon |
summons another unit |
Pug
Classify |
adds a class to a unit |
Deal damage |
deals damage to a unit |
Faint |
makes the unit faint |
Give experience |
gives experience to a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Summon |
summons another unit |
Salamander
Ally bought |
when any ally is bought |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
If specific ally |
applies the effect if the ally passes a condition |
Limit triggers |
applies the effect up to a max # of times per turn |
Per specific ally |
applies the effect based on the number of allies of a specific type |
Until the end of battle |
the effect will persist until the next battle ends |
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All units |
|
Any hurt |
|
Any bought |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
any hurt
and any bought
are the more composable versions of the units that are tied with ally hurt
and ally bought
, like the ally summoned
situation.
Stork
- Trigger: faint
- Effect: summon
Yak
- Trigger: end turn
- Effect: deal damage
- Effect target: self
- Trigger: end turn
- Effect: stat change
- Effect target: self
Frigatebird
- Trigger: buy
- Effect: stat change
- Effect condition: if specific ally
- Effect target: 1 random ally
Gold Fish
Classify |
adds a class to a unit |
Deal damage |
deals damage to a unit |
Discount |
decreases a unit's cost |
Faint |
makes the unit faint |
Give experience |
gives experience to a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Summon |
summons another unit |
Raccoon
Classify |
adds a class to a unit |
Deal damage |
deals damage to a unit |
Discount |
decreases a unit’s cost |
Faint |
makes the unit faint |
Give experience |
gives experience to a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Toucan
Classify |
adds a class to a unit |
Deal damage |
deals damage to a unit |
Discount |
decreases a unit’s cost |
Faint |
makes the unit faint |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Wombat
Classify |
adds a class to a unit |
Copy ability |
copies another unit's ability |
Deal damage |
deals damage to a unit |
Discount |
decreases a unit’s cost |
Faint |
makes the unit faint |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All units |
|
Any hurt |
|
Any bought |
|
Highest tier enemy |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Cupcake
- Effect: stat change
- Effect condition: until end of battle
Meat Bone
This one’s a little weird, but if I were to implement it like a unit it would be something like:
- Trigger: attack
- Effect: deal damage
It’s dealing extra damage on each attack, so this makes sense.
Ally bought |
when any ally is bought |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack |
when the unit attacks |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Pill
As mentioned in the panda section.
Broccoli
Fried Shrimp
Croissant
- Trigger: end turn
- Effect: stat change
This is the kind of item where we have to ignore the fact that its effect can only happen while it’s held.
Tier 3
Start
Tier 1
Tier 2
Tier 3
Tier 4
Tier 6
Tier 5
Final tables
Rerolling shop genre
Badger
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All units |
|
Any hurt |
|
Any bought |
|
Highest tier enemy |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Blowfish
- Trigger: hurt
- Effect: deal damage
- Effect target: 1 random enemy
Camel
- Trigger: hurt
- Effect: stat change
- Effect target: 1 ally behind
Dog
- Trigger: ally summoned
- Effect: stat change
- Effect target: self
Giraffe
- Trigger: end turn
- EFfect: stat change
- Effect target: N allies in front
Kangaroo
Ally ahead attacks |
when an ally in front attacks |
Ally bought |
when any ally is bought |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack| when the unit attacks |
|
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Ox
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally bought |
when any ally is bought |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack| when the unit attacks |
|
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Deal damage |
deals damage to a unit |
Discount |
decreases a unit’s cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Rabbit
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally bought |
when any ally is bought |
Ally consumes item |
when an ally is given an item |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack| when the unit attacks |
|
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All units |
|
Any that consumed item |
|
Any hurt |
|
Any bought |
|
Highest tier enemy |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Sheep
- Trigger: faint
- Effect: summon
Snail
If lost battle |
applies the effect if the previous battle was lost |
If specific ally |
applies the effect if the ally passes a condition |
Limit triggers |
applies the effect up to a max # of times per turn |
Per specific ally |
applies the effect based on the number of allies of a specific type |
Until the end of battle |
the effect will persist until the next battle ends |
Turtle
- Trigger: faint
- Effect: gain item
- Effect target: N allies behind
Hatching Chick
- Trigger: end turn
- Effect: stat change
- Effect condition: until end of battle
- Effect target: 1 ally ahead
- Trigger: end turn
- Effect: stat change
- Effect target: 1 ally ahead
- Trigger: start of turn
- Effect: give experience
- Effect target: 1 ally ahead
Owl
- Trigger: sell
- Effect: stat change
- Effect target: 1 random ally
Puppy
- Trigger: end turn
- Effect: stat gain
- Effect condition: if player resource (gold) >= 2
- Effect target: self
If lost battle |
applies the effect if the previous battle was lost |
If player resource |
applies the effect if a player's resource passes a condition |
If specific ally |
applies the effect if the ally passes a condition |
Limit triggers |
applies the effect up to a max # of times per turn |
Per specific ally |
applies the effect based on the number of allies of a specific type |
Until the end of battle |
the effect will persist until the next battle ends |
Tropical Fish
- Trigger: end turn
- Effect: stat change
- Effect target: two adjacent allies
Blobfish
- Trigger: faint
- Effect: give experience
- Effect: stat change
- Effect target: 1 ally behind
Capybara
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally bought |
when any ally is bought |
Ally consumes item |
when an ally is given an item |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack |
when the unit attacks |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Roll |
when the shop is rerolled |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any that consumed item |
|
Any hurt |
|
Any bought |
|
Highest tier enemy |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Cassowary
- Trigger: end turn
- Effect: stat change
- Effect condition: per specific ally (strawberry)
- Effect target: N random classed allies
Clownfish
- Trigger: any level-up
- Effect: stat change
- Effect target: any levelled up
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Highest tier enemy |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Leech
- Trigger: end turn
- Effect: deal damage
- Effect target: 1 ally ahead
- Trigger: end turn
- Effect: stat change
- Effect target: self
Okapi
- Trigger: roll
- Effect: stat change
- Effect condition: until end of battle
- Effect condition: limit triggers
- Effect target: self
Starfish
- Trigger: ally sold
- Effect: stat change
- Effect condition: if specific ally
- Effect target: 1 random ally
Toad
- Trigger: enemy hurt
- Effect: status effect
- Effect condition: limit triggers
- Effect target: any enemy hurt
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally bought |
when any ally is bought |
Ally consumes item |
when an ally is given an item |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack |
when the unit attacks |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy hurt |
when an enemy is hurt |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Roll |
when the shop is rerolled |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Highest tier enemy |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Woodpecker
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Highest tier enemy |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Aardvark
- Trigger: enemy summoned
- Effect: stat change
- Effect target: self
Bear
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Highest tier enemy |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Emperor Tamarin
- Trigger: sell
- Effect: stat give
- Effect target: 1st shop unit
Seagull
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Copy item to |
copies this unit's item to another unit |
Deal damage |
deals damage to a unit |
Discount |
decreases a unit’s cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Wasp
- Trigger: upgrade shop tier
- Effect: stat change
- Effect target: self
Garlic
Like the meat bone, you could describe this in terms of its trigger and effect. I would do it like this:
- Trigger: hurt
- Effect: take less damage
So whenever this unit takes damage, it will take less damage.
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Copy item to |
copies this unit’s item to another unit |
Deal damage |
deals damage to a unit |
Discount |
decreases a unit’s cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Take less damage |
takes less damage from the next attack |
Salad Bowl
- Effect: stat change
- Effect target: 2 random allies
Cucumber
- Trigger: end turn
- Effect: stat change
Lollipop
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Copy item to |
copies this unit’s item to another unit |
Deal damage |
deals damage to a unit |
Discount |
decreases a unit’s cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Single stat swap |
swaps stats within a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Take less damage |
takes less damage from the next attack |
Pineapple
This is essentially dealing more damage when the ability deals damage, so something like:
- Trigger: ability damage
- Effect: deal damage
Ability damage |
when the unit's ability deals damage |
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally bought |
when any ally is bought |
Ally consumes item |
when an ally is given an item |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack |
when the unit attacks |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy hurt |
when an enemy is hurt |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Roll |
when the shop is rerolled |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Tier 4
Start
Tier 1
Tier 2
Tier 3
Tier 4
Tier 6
Tier 5
Final tables
Rerolling shop genre
Bison
If any specific ally |
applies the effect if at least one ally passes a condition |
If lost battle |
applies the effect if the previous battle was lost |
If player resource |
applies the effect if a player’s resource passes a condition |
If specific ally |
applies the effect if the ally passes a condition |
Limit triggers |
applies the effect up to a max # of times per turn |
Per specific ally |
applies the effect based on the number of allies of a specific type |
Until the end of battle |
the effect will persist until the next battle ends |
Deer
- Trigger: faint
- Effect: summon
Dolphin
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
Self |
applies to the unit that triggered it |
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Hippo
Ability damage |
when the unit’s ability deals damage |
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally bought |
when any ally is bought |
Ally consumes item |
when an ally is given an item |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack |
when the unit attacks |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy hurt |
when an enemy is hurt |
Enemy killed |
when the enemy is killed as a result of this unit's attack |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Roll |
when the shop is rerolled |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Parrot
- Trigger: end turn
- Effect: copy ability
- Effect condition: until end of battle
- Effect target: 1 friend ahead
Penguin
- Trigger: end turn
- Effect: stat change
- Effect condition: if specific ally
- Effect target: 3 specific allies
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
N specific allies |
where N >= 1, ally specified in effect condition |
Self |
applies to the unit that triggered it |
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Rooster
- Trigger: faint
- Effect: summon
Skunk
- Trigger: start of battle
- Effect: stat change
- Effect target: most healthy enemy
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Most healthy enemy |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
N specific allies |
where N >= 1, ally specified in effect condition |
Self |
applies to the unit that triggered it |
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Squirrel
Add shop item |
adds an additional item to the shop |
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Copy item to |
copies this unit’s item to another unit |
Deal damage |
deals damage to a unit |
Discount unit |
decreases a shop unit’s cost |
Discount item |
decreases a shop item's cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Single stat swap |
swaps stats within a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Take less damage |
takes less damage from the next attack |
Whale
- Trigger: start of battle
- Effect: faint
- Effect target: 1 friend ahead
- Trigger: faint
- Effect: summon
This is a weird one because it has to store the unit it kills. I could try to encapsulate that into a composable mechanic, like “copy unit”, but I think it’s best to just go for something simpler like “summon”, which would summon a specific unit, and then that specific unit is specified to be the one it killed at a lower level of abstraction.
Worm
- Trigger: consumes item
- Effect: stat change
- Effect target: self
Buffalo
- Trigger: ally bought
- Effect: stat change
- Effect condition: limit triggers
- Effect target: self
Caterpillar
- Trigger: start of turn
- Effect: give experience
- Effect target: self
- Trigger: start of battle
- Effect: transform
- Effect target: self
- Trigger: start of battle
- Effect: stat copy
- Effect target: strongest ally
Add shop item |
adds an additional item to the shop |
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Copy item to |
copies this unit’s item to another unit |
Deal damage |
deals damage to a unit |
Discount unit |
decreases a shop unit’s cost |
Discount item |
decreases a shop item’s cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Single stat swap |
swaps stats within a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Take less damage |
takes less damage from the next attack |
Transform |
transforms into another unit |
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Most healthy enemy |
|
Nth ally |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
N specific allies |
where N >= 1, ally specified in effect condition |
Self |
applies to the unit that triggered it |
Strongest ally |
|
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Llama
- Trigger: end turn
- Effect: stat change
- Effect condition: if player resource (number of pets) <= 4
- Effect target: self
Lobster
- Trigger: ally summoned
- Effect: stat change
- Effect target: any ally summoned
Microbe
- Trigger: faint
- Effect: status effect
- Effect target: all units
Anteater
- Trigger: faint
- Effect: summon
Crow
- Trigger: sell
- Effect: replace shop item
Donkey
- Trigger: ally faints
- Effect: push enemy
- Effect target: 5th enemy
Ability damage |
when the unit’s ability deals damage |
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally bought |
when any ally is bought |
Ally consumes item |
when an ally is given an item |
Ally faints |
when an ally faints |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack |
when the unit attacks |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy hurt |
when an enemy is hurt |
Enemy killed |
when the enemy is killed as a result of this unit’s attack |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Roll |
when the shop is rerolled |
Sell |
when the unit is sold |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Most healthy enemy |
|
Nth ally |
where N >= 1 |
Nth enemy |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
N specific allies |
where N >= 1, ally specified in effect condition |
Self |
applies to the unit that triggered it |
Strongest ally |
|
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Eel
- Trigger: start of battle
- Effect: stat change
- Effect target: self
Hawk
- Trigger: start of battle
- Effect: deal damage
- Effect target: Nth enemy, where N = this unit’s position
Orangutan
- Trigger: end turn
- Effect: stat change
- Effect target: least healthy ally
Pelican
- Trigger: end turn, start of battle
- Effect: stat change
- Effect condition: if specific ally
- Effect target: random classed ally
Platypus
- Trigger: sell
- Effect: summon
Praying Mantis
- Trigger: start of turn
- Effect: kill
- Effect target: two adjacent allies
- Trigger: start of turn
- Effect: stat change
- Effect target: self
Add shop item |
adds an additional item to the shop |
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Copy item to |
copies this unit’s item to another unit |
Deal damage |
deals damage to a unit |
Discount unit |
decreases a shop unit’s cost |
Discount item |
decreases a shop item’s cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Kill |
deals damage and kill a unit |
Single stat swap |
swaps stats within a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Take less damage |
takes less damage from the next attack |
Transform |
transforms into another unit |
Armadillo
- Trigger: hurt, faint
- Effect: stat change
- Effect target: all allies
Dragonfly
- Trigger: end turn
- Effect: stat change
- Effect target: 1 random ally of each level
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Most healthy enemy |
|
Nth ally |
where N >= 1 |
Nth enemy |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random allies of each level |
where N >= 1 |
N random allies of each tier |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
N specific allies |
where N >= 1, ally specified in effect condition |
Self |
applies to the unit that triggered it |
Strongest ally |
|
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Jerboa
- Trigger: consumes item
- Effect: stat change
- Effect target: all allies
Lynx
- Trigger: start of battle
- Effect: deal damage
- Effect target: 1 random enemy
Mole
- Trigger: buy
- Effect: stat change
- Effect target: two adjacent allies
Porcupine
- Trigger: hurt
- Effect: deal damage
- Effect target: attacking enemy
All allies |
|
All shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Attacking enemy |
the enemy that just attacked this unit |
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Most healthy enemy |
|
Nth ally |
where N >= 1 |
Nth enemy |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random allies of each level |
where N >= 1 |
N random allies of each tier |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
N specific allies |
where N >= 1, ally specified in effect condition |
Self |
applies to the unit that triggered it |
Strongest ally |
|
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Canned Food
- Effect: stat change
- Effect target: all shop units
- Effect target: all future shop units
All allies |
|
All shop units |
|
All future shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Attacking enemy |
the enemy that just attacked this unit |
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Most healthy enemy |
|
Nth ally |
where N >= 1 |
Nth enemy |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random allies of each level |
where N >= 1 |
N random allies of each tier |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
N specific allies |
where N >= 1, ally specified in effect condition |
Self |
applies to the unit that triggered it |
Strongest ally |
|
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Pear
Cheese
- Trigger: attack
- Effect: double damage (100%)
- Effect: remove item
Add shop item |
adds an additional item to the shop |
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Copy item to |
copies this unit’s item to another unit |
Deal damage |
deals damage to a unit |
Double damage |
chance to deal double damage to a unit |
Discount unit |
decreases a shop unit’s cost |
Discount item |
decreases a shop item’s cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Kill |
deals damage and kill a unit |
Single stat swap |
swaps stats within a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Remove item |
removes this unit's held item |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Take less damage |
takes less damage from the next attack |
Transform |
transforms into another unit |
Grapes
- Trigger: start of turn
- Effect: player resource change
Fortune Cookie
- Trigger: attack
- Effect: double damage (50%)
Tier 6
Start
Tier 1
Tier 2
Tier 3
Tier 4
Tier 6
Tier 5
Final tables
Rerolling shop genre
Boar
- Trigger: before attack
- Effect: stat change
- Effect target: self
Cat
Add shop item |
adds an additional item to the shop |
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Copy item to |
copies this unit’s item to another unit |
Deal damage |
deals damage to a unit |
Double damage |
chance to deal double damage to a unit |
Discount unit |
decreases a shop unit’s cost |
Discount item |
decreases a shop item’s cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Item effectiveness |
add, sub, mul or div to item effectiveness |
Kill |
deals damage and kill a unit |
Single stat swap |
swaps stats within a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Remove item |
removes this unit’s held item |
Roll shop |
rolls the shop |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Take less damage |
takes less damage from the next attack |
Transform |
transforms into another unit |
Dragon
Ability damage |
when the unit’s ability deals damage |
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally bought |
when any ally is bought |
Ally consumes item |
when an ally is given an item |
Ally faints |
when an ally faints |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack |
when the unit attacks |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy hurt |
when an enemy is hurt |
Enemy killed |
when the enemy is killed as a result of this unit’s attack |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Roll |
when the shop is rerolled |
Sell |
when the unit is sold |
Specific ally bought |
when a specific ally or type of ally is bought |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Fly
- Trigger: ally faints
- Effect: summon
- Effect condition: limit triggers
Gorilla
- Trigger: hurt
- Effect: give item
- Effect condition: limit triggers
- Effect target: self
Leopard
- Trigger: start of battle
- Effect: deal damage
- Effect target: 1 random enemy
Mammoth
- Trigger: faint
- Effect: stat change
- Effect target: all allies
Snake
- Trigger: ally ahead attacks
- Effect: deal damage
- Effect target: 1 random enemy
Tiger
- Trigger: ally ahead uses ability
- Effect: repeat
The tiger makes another unit repeat their ability, which makes representing it in this system kind of awkward. Still, “ally ahead uses ability” is a fairly composable trigger so it should be added.
Ability damage |
when the unit’s ability deals damage |
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally ahead uses ability |
when an ally in front uses its ability |
Ally bought |
when any ally is bought |
Ally consumes item |
when an ally is given an item |
Ally faints |
when an ally faints |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack |
when the unit attacks |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy hurt |
when an enemy is hurt |
Enemy killed |
when the enemy is killed as a result of this unit’s attack |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Roll |
when the shop is rerolled |
Sell |
when the unit is sold |
Specific ally bought |
when a specific ally or type of ally is bought |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Octopus
- Trigger: before attack
- Effect: deal damage
- Effect target: 2 random enemies
Sauropod
- Trigger: item bought
- Effect: player resource change
- Effect condition: limit triggers
Tyrannosaurus
- Trigger: end turn
- Effect: stat change
- Effect condition: if player resource (gold) >= 3
- Effect target: all allies
Hammershark
- Trigger: start of turn
- Effect: player resource change
- Effect condition: if any specific ally
Komodo
- Trigger: end turn
- Effect: stat change
- Effect: shuffle
- Effect target: all allies ahead
Add shop item |
adds an additional item to the shop |
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Copy item to |
copies this unit’s item to another unit |
Deal damage |
deals damage to a unit |
Double damage |
chance to deal double damage to a unit |
Discount unit |
decreases a shop unit’s cost |
Discount item |
decreases a shop item’s cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Item effectiveness |
add, sub, mul or div to item effectiveness |
Kill |
deals damage and kill a unit |
Single stat swap |
swaps stats within a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Remove item |
removes this unit’s held item |
Roll shop |
rolls the shop |
Shuffle |
changes the positions of multiple units |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Take less damage |
takes less damage from the next attack |
Transform |
transforms into another unit |
All allies |
|
All allies ahead |
|
All shop units |
|
All future shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Attacking enemy |
the enemy that just attacked this unit |
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Most healthy enemy |
|
Nth ally |
where N >= 1 |
Nth enemy |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random allies of each level |
where N >= 1 |
N random allies of each tier |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
N specific allies |
where N >= 1, ally specified in effect condition |
Self |
applies to the unit that triggered it |
Strongest ally |
|
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Orca
- Trigger: faint
- Effect: summon
Ostrich
- Trigger: end turn
- Effect: stat change
- Effect condition: per specific ally
- Effect target: self
Piranha
- Trigger: hurt, faint
- Effect: stat change
- Effect target: all allies
Reindeer
- Trigger: before attack
- Effect: give item
- Effect condition: limit triggers
- Effect target: self
Sabertooth Tiger
- Trigger: hurt
- Effect: summon
Spinosaurus
- Trigger: ally faints
- Effect: stat change
- Effect target: 1 random ally
Stegosaurus
- Trigger: end turn
- Effect: stat change
- Effect condition: until end of battle
- Effect condition: per turn number
- Effect target: 1 ally ahead
If any specific ally |
applies the effect if at least one ally passes a condition |
If lost battle |
applies the effect if the previous battle was lost |
If player resource |
applies the effect if a player’s resource passes a condition |
If specific ally |
applies the effect if the ally passes a condition |
Limit triggers |
applies the effect up to a max # of times per turn |
Per turn number |
applies the effect based on the number of turns |
Per specific ally |
applies the effect based on the number of allies of a specific type |
Until the end of battle |
the effect will persist until the next battle ends |
Velociraptor
- Trigger: start of battle
- Effect: give item
- Effect target: 1 random classed ally
Alpaca
- Trigger: ally summoned
- Effect: give experience
- Effect condition: limit triggers
- Effect target: any summoned ally
Lioness
- Trigger: end turn
- Effect: stat change
- Effect target: all shop units, all future shop units
Tapir
- Trigger: faint
- Effect: summon
Walrus
- Trigger: faint
- Effect: give item
- Effect target: N random allies
White Tiger
- Trigger: start of battle
- Effect: set level
- Effect target: N allies behind
Add shop item |
adds an additional item to the shop |
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Copy item to |
copies this unit’s item to another unit |
Deal damage |
deals damage to a unit |
Double damage |
chance to deal double damage to a unit |
Discount unit |
decreases a shop unit’s cost |
Discount item |
decreases a shop item’s cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Item effectiveness |
add, sub, mul or div to item effectiveness |
Kill |
deals damage and kill a unit |
Single stat swap |
swaps stats within a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Remove item |
removes this unit’s held item |
Roll shop |
rolls the shop |
Set level |
sets the unit's level to a specific value |
Shuffle |
changes the positions of multiple units |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Take less damage |
takes less damage from the next attack |
Transform |
transforms into another unit |
Melon
- Trigger: damage taken
- Effect: take less damage
- Effect: remove item
Ability damage |
when the unit’s ability deals damage |
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally ahead uses ability |
when an ally in front uses its ability |
Ally bought |
when any ally is bought |
Ally consumes item |
when an ally is given an item |
Ally faints |
when an ally faints |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack |
when the unit attacks |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
Damage taken |
when the unit takes damage |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy hurt |
when an enemy is hurt |
Enemy killed |
when the enemy is killed as a result of this unit’s attack |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Roll |
when the shop is rerolled |
Sell |
when the unit is sold |
Specific ally bought |
when a specific ally or type of ally is bought |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Upgrade shop tier |
when the shop levels up |
Mushroom
- Trigger: faint
- Effect: summon
Pizza
- Effect: stat change
- Effect target: 2 random allies
Steak
- Trigger: attack
- Effect: deal damage
- Effect: remove item
Hot Dog
- Effect: stat change
- Effect target: 2 random allies
Orange
- Effect: stat change
- Effect target: 2 random allies
Popcorn
- Trigger: faint
- Effect: summon
Chicken Leg
Soft Ice
- Effect: stat change
- Effect target: all allies
Tier 5
Start
Tier 1
Tier 2
Tier 3
Tier 4
Tier 6
Tier 5
Final tables
Rerolling shop genre
By mistake I did tier 6 before tier 5, but the order doesn’t matter so I can’t be bothered to fix it.
Cow
- Trigger: buy
- Effect: replace item
Crocodile
- Trigger: start of battle
- Effect: deal damage
- Effect: repeat
- Effect target: 5th enemy
Monkey
- Trigger: end turn
- Effect: stat change
- Effect target: 1st ally
Rhino
- Trigger: enemy killed
- Effect: deal damage
- Effect target: 1st enemy
Scorpion
- Trigger: summoned
- Effect: give item
- Effect target: self
Ability damage |
when the unit’s ability deals damage |
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally ahead uses ability |
when an ally in front uses its ability |
Ally bought |
when any ally is bought |
Ally consumes item |
when an ally is given an item |
Ally faints |
when an ally faints |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack |
when the unit attacks |
Any level-up |
when any ally levels up |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
Damage taken |
when the unit takes damage |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy hurt |
when an enemy is hurt |
Enemy killed |
when the enemy is killed as a result of this unit’s attack |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Roll |
when the shop is rerolled |
Sell |
when the unit is sold |
Specific ally bought |
when a specific ally or type of ally is bought |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Summoned |
when this unit is summoned |
Upgrade shop tier |
when the shop levels up |
Seal
- Trigger: consumes item
- Effect: stat change
- Effect target: 2 random allies
Shark
- Trigger: ally faints
- Effect: stat change
- Effect target: self
Turkey
- Trigger: ally summoned
- Effect: stat change
- Effect target: any summoned ally
Chicken
- Trigger: specific ally bought
- Effect: stat change
- Effect target: all shop units, all future shop units
Eagle
- Trigger: faint
- Effect: summon
Goat
- Trigger: ally bought
- Effect: player resource change
- Effect condition: limit triggers
Poodle
- Trigger: end turn
- Effect: stat change
- Effect target: 1 random ally of each tier
Fox
- Trigger: end turn
- Effect: steal item
- Trigger: end turn
- Effect: steal item
- Effect: item effectiveness
Hamster
- Trigger: roll
- Effect: player resource change
- Effect condition: limit triggers
Lion
- Trigger: start of battle
- Effect: stat change
- Effect condition: if highest tier ally
- Effect target: self
If any specific ally |
applies the effect if at least one ally passes a condition |
If highest tier ally |
applies the effect if this is the highest tier unit |
If lost battle |
applies the effect if the previous battle was lost |
If player resource |
applies the effect if a player’s resource passes a condition |
If specific ally |
applies the effect if the ally passes a condition |
Limit triggers |
applies the effect up to a max # of times per turn |
Per turn number |
applies the effect based on the number of turns |
Per specific ally |
applies the effect based on the number of allies of a specific type |
Until the end of battle |
the effect will persist until the next battle ends |
Polar Bear
- Trigger: start of turn
- Effect: stat change
- Effect target: 1 random frozen shop unit
All allies |
|
All allies ahead |
|
All shop units |
|
All future shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Attacking enemy |
the enemy that just attacked this unit |
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Most healthy enemy |
|
Nth ally |
where N >= 1 |
Nth enemy |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random allies of each level |
where N >= 1 |
N random allies of each tier |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
N random frozen shop units |
where N >= 1 |
N specific allies |
where N >= 1, ally specified in effect condition |
Self |
applies to the unit that triggered it |
Strongest ally |
|
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Shoebill
- Trigger: end turn
- Effect: stat change
- Effect target: all classed allies
Siberian Husky
- Trigger: end turn
- Effect: stat change
- EFfect target: all specific allies
All allies |
|
All allies ahead |
|
All classed allies |
classed ally = of a specific class |
All specific allies |
specific ally = ally that passes a specific condition |
All shop units |
|
All future shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Attacking enemy |
the enemy that just attacked this unit |
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Most healthy enemy |
|
Nth ally |
where N >= 1 |
Nth enemy |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random allies of each level |
where N >= 1 |
N random allies of each tier |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
N random frozen shop units |
where N >= 1 |
N specific allies |
where N >= 1, ally specified in effect condition |
Self |
applies to the unit that triggered it |
Strongest ally |
|
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Swordfish
- Trigger: start of battle
- Effect: deal damage
- Effect target: most healthy enemy, self
Triceratops
- Trigger: hurt
- Effect: stat change
- Effect target: 1 random ally
Vulture
- Trigger: ally faints
- Effect: deal damage
- Effect target: 1 random enemy
- Trigger: buy, sell
- Effect: stat change
- Effect target: 1 random ally
Hyena
- Trigger: start of battle
- Effect: stat swap
- Effect target: all units
- Trigger: start of battle
- Effect: shuffle
- Effect target: all units
- Trigger: start of battle
- Effect: stat swap, shuffle
- Effect target: all units
Lionfish
- Trigger: before ally attack
- Effect: status effect
- Effect condition: limit triggers
- Effect target: enemy about to be attacked
Ability damage |
when the unit’s ability deals damage |
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally ahead uses ability |
when an ally in front uses its ability |
Ally bought |
when any ally is bought |
Ally consumes item |
when an ally is given an item |
Ally faints |
when an ally faints |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack |
when the unit attacks |
Any level-up |
when any ally levels up |
Before ally attack |
before an ally is about to attack |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
Damage taken |
when the unit takes damage |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy hurt |
when an enemy is hurt |
Enemy killed |
when the enemy is killed as a result of this unit’s attack |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Roll |
when the shop is rerolled |
Sell |
when the unit is sold |
Specific ally bought |
when a specific ally or type of ally is bought |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Summoned |
when this unit is summoned |
Upgrade shop tier |
when the shop levels up |
All allies |
|
All allies ahead |
|
All classed allies |
classed ally = of a specific class |
All specific allies |
specific ally = ally that passes a specific condition |
All shop units |
|
All future shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Attacking enemy |
the enemy that just attacked this unit |
Enemy about to be attacked |
|
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Most healthy enemy |
|
Nth ally |
where N >= 1 |
Nth enemy |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random allies of each level |
where N >= 1 |
N random allies of each tier |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
N random frozen shop units |
where N >= 1 |
N specific allies |
where N >= 1, ally specified in effect condition |
Self |
applies to the unit that triggered it |
Strongest ally |
|
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
Moose
- Trigger: end turn
- Effect: stat change
- Effect condition: mult lowest tier ally
- Effect target: 1 ally behind
If any specific ally |
applies the effect if at least one ally passes a condition |
If highest tier ally |
applies the effect if this is the highest tier unit |
If lost battle |
applies the effect if the previous battle was lost |
If player resource |
applies the effect if a player’s resource passes a condition |
If specific ally |
applies the effect if the ally passes a condition |
Limit triggers |
applies the effect up to a max # of times per turn |
Mult lowest tier ally |
multiplies the effect with lowest ally tier |
Per turn number |
applies the effect based on the number of turns |
Per specific ally |
applies the effect based on the number of allies of a specific type |
Until the end of battle |
the effect will persist until the next battle ends |
Chili
- Trigger: attack
- Effect: deal damage behind
Add shop item |
adds an additional item to the shop |
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Copy item to |
copies this unit’s item to another unit |
Deal damage |
deals damage to a unit |
Deal damage behind |
deals damage to the unit behind the one that is attacked |
Double damage |
chance to deal double damage to a unit |
Discount unit |
decreases a shop unit’s cost |
Discount item |
decreases a shop item’s cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Item effectiveness |
add, sub, mul or div to item effectiveness |
Kill |
deals damage and kill a unit |
Single stat swap |
swaps stats within a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Remove item |
removes this unit’s held item |
Roll shop |
rolls the shop |
Set level |
sets the unit’s level to a specific value |
Shuffle |
changes the positions of multiple units |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Take less damage |
takes less damage from the next attack |
Transform |
transforms into another unit |
Chocolate
Sushi
- Effect: stat change
- Effect target: 3 random allies
Carrot
- Trigger: end turn
- Effect: stat change
Pepper
- Trigger: damage taken
- Effect: take less damage
- Effect: remove item
Stew
- Effect: stat change
- Effect target: 3 random allies
Taco
- Effect: stat change
- Effect target: 3 random allies
Lemon
- Trigger: damage taken
- Effect: take less damage
Final tables
Start
OK, so now that this is all done we have a few tables that contain all the triggers, effects, effect conditions and effect targets that SAP uses. This is what the tables look like:
Ability damage |
when the unit’s ability deals damage |
Ally ahead attacks |
when an ally in front attacks |
Ally ahead faints |
when an ally in front faints |
Ally ahead uses ability |
when an ally in front uses its ability |
Ally bought |
when any ally is bought |
Ally consumes item |
when an ally is given an item |
Ally faints |
when an ally faints |
Ally hurt |
when any ally is hurt |
Ally sold |
when an ally is sold |
Ally summoned |
when an ally is summoned |
Attack |
when the unit attacks |
Any level-up |
when any ally levels up |
Before ally attack |
before an ally is about to attack |
Before attack |
before the unit is about to attack |
Buy |
when the unit is bought |
Consumes item |
when the unit is given an item |
Damage taken |
when the unit takes damage |
End turn |
when the current turn (shop round) ends, but before battle |
Enemy hurt |
when an enemy is hurt |
Enemy killed |
when the enemy is killed as a result of this unit’s attack |
Enemy summoned |
when an enemy is summoned |
Enemy pushed |
when an enemy is pushed |
Faint |
when the unit dies |
Hurt |
when the unit is hit |
Item bought |
when an item is bought |
Level-up |
when the unit levels up |
Roll |
when the shop is rerolled |
Sell |
when the unit is sold |
Specific ally bought |
when a specific ally or type of ally is bought |
Start of battle |
when the battle starts |
Start of turn |
when the turn (shop round) starts |
Summoned |
when this unit is summoned |
Upgrade shop tier |
when the shop levels up |
Add shop item |
adds an additional item to the shop |
Classify |
adds a class to a unit |
Copy ability |
copies another unit’s ability |
Copy item to |
copies this unit’s item to another unit |
Deal damage |
deals damage to a unit |
Deal damage behind |
deals damage to the unit behind the one that is attacked |
Double damage |
chance to deal double damage to a unit |
Discount unit |
decreases a shop unit’s cost |
Discount item |
decreases a shop item’s cost |
Faint |
makes the unit faint |
Gain item |
gains a specific item |
Give experience |
gives experience to a unit |
Give item |
gives your item to a unit |
Item effectiveness |
add, sub, mul or div to item effectiveness |
Kill |
deals damage and kill a unit |
Single stat swap |
swaps stats within a unit |
Multiple stat swap |
swaps stats between multiple units |
Player resource change |
add, sub, mul or div of a player resource value |
Push enemy |
pushes an enemy to a different position |
Repeat |
repeats the effect its attached to |
Replace item |
replaces shop items with other items |
Remove item |
removes this unit’s held item |
Roll shop |
rolls the shop |
Set level |
sets the unit’s level to a specific value |
Shuffle |
changes the positions of multiple units |
Stat change |
add, sub, mul or div of a stat |
Stat copy |
copies a stat from another unit |
Stat give |
gives a stat to another unit |
Stat set |
sets a stat to a specific value |
Status effect |
applies a status effect to a unit |
Steal item |
steals item from a unit |
Summon |
summons another unit |
Take less damage |
takes less damage from the next attack |
Transform |
transforms into another unit |
If any specific ally |
applies the effect if at least one ally passes a condition |
If highest tier ally |
applies the effect if this is the highest tier unit |
If lost battle |
applies the effect if the previous battle was lost |
If player resource |
applies the effect if a player’s resource passes a condition |
If specific ally |
applies the effect if the ally passes a condition |
Limit triggers |
applies the effect up to a max # of times per turn |
Mult lowest tier ally |
multiplies the effect with lowest ally tier |
Per turn number |
applies the effect based on the number of turns |
Per specific ally |
applies the effect based on the number of allies of a specific type |
Until the end of battle |
the effect will persist until the next battle ends |
All allies |
|
All allies ahead |
|
All classed allies |
classed ally = of a specific class |
All specific allies |
specific ally = ally that passes a specific condition |
All shop units |
|
All future shop units |
|
All summoned allies |
|
All pushed enemies |
|
All summoned enemies |
|
All unfrozen shop units |
|
All units |
|
Any bought |
|
Any enemy hurt |
|
Any hurt |
|
Any levelled up |
|
Any that consumed item |
|
Attacking enemy |
the enemy that just attacked this unit |
Enemy about to be attacked |
|
Highest tier enemy |
|
Least healthy ally |
|
Most healthy ally |
|
Most healthy enemy |
|
Nth ally |
where N >= 1 |
Nth enemy |
where N >= 1 |
Nth shop unit |
where N >= 1 |
N adjacent units |
where N >= 1 |
N allies behind |
where N >= 1 |
N allies in front |
where N >= 1 |
N units in front |
where N >= 1 |
N random allies |
where N >= 1 |
N random allies of each level |
where N >= 1 |
N random allies of each tier |
where N >= 1 |
N random classed allies |
where N >= 1, classed ally = of a specific class |
N random enemies |
where N >= 1 |
N random frozen shop units |
where N >= 1 |
N specific allies |
where N >= 1, ally specified in effect condition |
Self |
applies to the unit that triggered it |
Strongest ally |
|
Two adjacent units |
applies to 2 units adjacent to the one that triggered it |
Two adjacent allies |
applies to 2 allies adjacent to the one that triggered it |
We could do some refactoring here. Removing some things that are repetitive, adding some that are missing that are obvious, and so on. For instance, there are effect targets for “least healthy ally”, “most healthy ally” and “most healthy enemy”. There’s obviously one missing, which is “least healthy enemy”.
Similarly, we can see that often there are effect targets for allies, enemies and shop units. So we could add “most healthy shop unit”, “least healthy shop unit” as well. We can also see that there’s a distinction between frozen and unfrozen shop units, so we could add “most healthy frozen/unfrozen shop unit”, “least healthy frozen/unfrozen shop unit”. There’s also “strongest ally”, which is a different calculation than “most healthy”. And it’s also missing “strongest enemy”, “strongest shop unit”, etc.
You get my point, right? We can go from the things that SAP uses to a lot more that come obviously from just looking at the list. One of the benefits of doing an exercise like this is that if you choose the right level of abstraction, just looking at the tables generated gives you a lot of ideas for new gameplay.
Another benefit is that you can now just combine things from the different tables to create new units. There’s a total of 33 triggers, 34 effects, 10 effect conditions and 40 effect targets. So I’m just going to go on random.org and generate 3 random numbers from 1-33, 1-34 and 1-40. I’m going to omit effect conditions from this because they’re too specific, so it’s best to add them manually depending on what comes out.
The numbers: 13, 5, 11. This corresponds to:
- Trigger: before ally attack
- Effect: deal damage
- Effect target: all units
Well this sounds disgusting. But I can imagine it working if you keep the damage real low and add some limits. Something like:
Locust - 1/1 - Tier 3
Lv.1: Before friend attack -> Deal 1 damage to all pets. Works 2 times per turn.
Lv.2: Before friend attack -> Deal 1 damage to all pets. Works 4 times per turn.
Lv.3: Before friend attack -> Deal 1 damage to all pets. Works 6 times per turn.
It’s a locust because of locust swarms that deal lots of small damage! Maybe it would be cool? Let’s try another. The numbers were: 19, 24, 9. This corresponds to:
- Trigger: enemy hurt
- Effect: set level
- Effect target: all summoned enemies
This sounds positively weird and way too specific, but maybe something like:
Panther - 5/5 - Tier 2
Lv.1: Enemy hurt -> Decreases the level of summoned enemies by 1.
Lv.2: Enemy hurt -> Decreases the level of summoned enemies by 2.
Lv.3: Enemy hurt -> Decreases the level of summoned enemies by 3.
Doesn’t seem very cool or useful to me… I chose panther because it’s kind of the opposite of white tiger… Let’s try a last one. Numbers: 23, 14, 15. This is:
- Trigger: faint
- Effect: item effectiveness
- Effect target: any hurt
This one initially doesn’t seem to make much sense but I think it’s cool. The first thing to notice is that for any other unit that uses “item effectiveness” it doesn’t really have a target. So we can safely ignore the effect target for this one, which is good because it doesn’t make much sense anyway.
So we’re left with something that increases item effectiveness when it dies. Which means we could go for a canned food type of deal but instead of increasing the stats of shop units, it increases the stats of shop foods. The only thing left to consider is that this would have to happen only outside of combat, but there are other units with the “outside of combat” modifier. So we could go for something like:
Can’t think of an animal - 3/2 - Tier 2
Lv.1: Faint outside of combat -> Give all current shop foods +2 to attack and health effects.
Lv.2: Faint outside of combat -> Give all current shop foods +4 to attack and health effects.
Lv.3: Faint outside of combat -> Give all current shop foods +8 to attack and health effects.
So whenever you make this unit faint outside of combat (via pill, praying mantis, etc) it gives any current food shop a bonus to its attack and/or health effects. If there’s a pear on the shop and you sell this unit at Lv.2, then the pear will give a total of 6 attack and health instead of the original 2.
Of course you could change this to give it to all current and future shop foods, like the canned food, but then you’d have to find mess around with it more to balance it properly.
Rerolling shop genre
All of this shows that Super Auto Pets is both very cleverly designed and also very expandable. It has a clear set of composable parts that work well together, but most importantly, that work well on any rerolling shop game. Rerolling shop games generally have the following features:
- There’s a shop that offers units and can be rerolled
- The shop has levels and can be levelled up
- Units can be bought, sold, locked
- Units have levels and can be combined to level up
- Units have positions in relation to one another
- Units can hold items
- There’s a distinction between shop phase and combat phase
Maybe there are a few I’m forgetting, but the more of these features a game has, the more it can use SAP’s mechanics. For instance, in SNKRX the ability to freeze individual units doesn’t exist, which means that I can’t make any effects that make use of the frozen/unfrozen distinction.
In both SNKRX and Brotato, the units (which are the guns in Brotato) can’t hold items, which means that we can’t use any effects that have to do with items. In Just King, on the other hand, units can hold items, which means that things like “copy item”, “give item”, “item bought”, etc, can be used by it.
In pretty much all rerolling shop games units have positions relative to each other, which means that all effects having to do with “ahead”, “behind”, “nth position”, “adjacent” and so on can be used by them.
The point being that because SAP covers so much ground for all common ideas that exist in rerolling shop games, it can safely be used as solid ground to build from. Of course, a lot of its ideas exist in other games too. Lots of card games by definition will have notions of triggers and effects, and its not uncommon to see, for instance, a “trigger: hurt” out in the wild.
But what makes SAP unique to me is that it combines ideas specific to rerolling shop games and builds upon them in a very thorough and creative way. So if you’re making a rerolling shop game you should 1000% play SAP and get used to its mechanics, because using them will very easily make your game better.
Date
2022-06-28 10:48