index / posts / super_auto_pets_mechanicsJun 28, 2022  10:48

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
1️⃣ Tier 1
2️⃣ Tier 2
3️⃣ Tier 3
4️⃣ Tier 4
6️⃣ Tier 6
5️⃣ 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:

TriggerDescription
Faintwhen a unit dies
EffectDescription
Stat changeadd, sub, mul or div of a stat
Effect targetDescription
Random allya random ally

The way to build a unit generally is to take one thing from each table. So the ant would be something like:

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

TriggerDescription
Faintwhen the unit dies
Sellwhen the unit is sold
Effect targetDescription
N random allieswhere 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:

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

EffectDescription
Stat changeadd, sub, mul or div of a stat
Summonsummons another unit

Duck

Effect targetDescription
All shop units
N random allieswhere N >= 1

Fish

TriggerDescription
Faintwhen the unit dies
Level-upwhen the unit levels up
Sellwhen 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.

TriggerDescription
Ally summonedwhen an ally is summoned
Faintwhen the unit dies
Level-upwhen the unit levels up
Sellwhen the unit is sold
Effect conditionDescription
Until the end of battlethe effect will persist until the next battle ends
Effect targetDescription
All shop units
All summoned allies
N random allieswhere 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

TriggerDescription
Ally summonedwhen an ally is summoned
Faintwhen the unit dies
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battle when the battle starts
EffectDescription
Deal damagedeals damage to a unit
Stat changeadd, sub, mul or div of a stat
Summonsummons another unit
Effect targetDescription
All shop units
All summoned allies
N random allieswhere N >= 1
N random enemieswhere N >= 1

Otter

TriggerDescription
Ally summonedwhen an ally is summoned
Buywhen the unit is bought
Faintwhen the unit dies
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts

Pig

EffectDescription
Deal damagedeals damage to a unit
Player resource changeadd, sub, mul or div of a player resource value
Stat changeadd, sub, mul or div of a stat
Summonsummons 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

TriggerDescription
Ally summonedwhen an ally is summoned
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
Faintwhen the unit dies
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Effect targetDescription
All shop units
All summoned allies
Nth shop unitwhere N >= 1
N random allieswhere N >= 1
N random enemieswhere 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

TriggerDescription
Ally summonedwhen an ally is summoned
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Faintwhen the unit dies
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts

Ladybug

TriggerDescription
Ally summonedwhen an ally is summoned
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Faintwhen the unit dies
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Effect targetDescription
All shop units
All summoned allies
Nth shop unitwhere N >= 1
N random allieswhere N >= 1
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it

Cockroach

TriggerDescription
Ally summonedwhen an ally is summoned
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Faintwhen the unit dies
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
EffectDescription
Deal damagedeals damage to a unit
Player resource changeadd, sub, mul or div of a player resource value
Stat changeadd, sub, mul or div of a stat
Stat setsets a stat to a specific value
Summonsummons another unit

Duckling

The first unit where nothing new is needed to describe it. It can be described as:

Frog

EffectDescription
Deal damagedeals damage to a unit
Player resource changeadd, sub, mul or div of a player resource value
Multiple stat swapswaps stats between multiple units
Stat changeadd, sub, mul or div of a stat
Stat setsets a stat to a specific value
Summonsummons another unit
Effect targetDescription
All shop units
All summoned allies
Nth shop unitwhere N >= 1
N random allieswhere N >= 1
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent alliesapplies 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

Effect targetDescription
All shop units
All summoned allies
Nth shop unitwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent alliesapplies 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

TriggerDescription
Ally summonedwhen an ally is summoned
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Effect targetDescription
All shop units
All summoned allies
All pushed enemies
All summoned enemies
Nth shop unitwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent alliesapplies 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.

Mouse

EffectDescription
Deal damagedeals damage to a unit
Player resource changeadd, sub, mul or div of a player resource value
Multiple stat swapswaps stats between multiple units
Replace itemreplaces shop items with other items
Stat changeadd, sub, mul or div of a stat
Stat setsets a stat to a specific value
Summonsummons another unit

Pillbug

TriggerDescription
Ally summonedwhen an ally is summoned
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up
Effect targetDescription
All shop units
All summoned allies
All pushed enemies
All summoned enemies
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent alliesapplies 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

EffectDescription
Deal damagedeals damage to a unit
Player resource changeadd, sub, mul or div of a player resource value
Multiple stat swapswaps stats between multiple units
Push enemypushes an enemy to a different position
Replace itemreplaces shop items with other items
Stat changeadd, sub, mul or div of a stat
Stat setsets a stat to a specific value
Summonsummons another unit

Chinchilla

Nothing new.

Frilled Dragon

Effect conditionDescription
Per specific allyapplies the effect based on the number of allies of a specific type
Until the end of battlethe 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

EffectDescription
Deal damagedeals damage to a unit
Player resource changeadd, sub, mul or div of a player resource value
Multiple stat swapswaps stats between multiple units
Push enemypushes an enemy to a different position
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat setsets a stat to a specific value
Summonsummons another unit

Moth

Effect targetDescription
All shop units
All summoned allies
All pushed enemies
All summoned enemies
Nth allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent alliesapplies 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

EffectDescription
Classifyadds a class to a unit
Deal damagedeals damage to a unit
Player resource changeadd, sub, mul or div of a player resource value
Multiple stat swapswaps stats between multiple units
Push enemypushes an enemy to a different position
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat setsets a stat to a specific value
Summonsummons 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

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
1️⃣ Tier 1
2️⃣ Tier 2
3️⃣ Tier 3
4️⃣ Tier 4
6️⃣ Tier 6
5️⃣ Tier 5
⬇️ Final tables
⬇️ Rerolling shop genre

Crab

EffectDescription
Classifyadds a class to a unit
Deal damagedeals damage to a unit
Player resource changeadd, sub, mul or div of a player resource value
Multiple stat swapswaps stats between multiple units
Push enemypushes an enemy to a different position
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat setsets a stat to a specific value
Summonsummons another unit
Effect targetDescription
All shop units
All summoned allies
All pushed enemies
All summoned enemies
Most healthy ally
Nth allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Dodo

EffectDescription
Classifyadds a class to a unit
Deal damagedeals damage to a unit
Player resource changeadd, sub, mul or div of a player resource value
Multiple stat swapswaps stats between multiple units
Push enemypushes an enemy to a different position
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Summonsummons another unit
Effect targetDescription
All shop units
All summoned allies
All pushed enemies
All summoned enemies
Most healthy ally
Nth allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Elephant

TriggerDescription
Ally summonedwhen an ally is summoned
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up
EffectDescription
Classifyadds a class to a unit
Deal damagedeals damage to a unit
Player resource changeadd, sub, mul or div of a player resource value
Multiple stat swapswaps stats between multiple units
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Summonsummons 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

Not sure if there's a difference between "faint" and "before faint", but I don't think there is.

Hedgehog

Effect targetDescription
All shop units
All summoned allies
All pushed enemies
All summoned enemies
All units
Most healthy ally
Nth allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Peacock

TriggerDescription
Ally summonedwhen an ally is summoned
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up

Rat

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

TriggerDescription
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up

Faint

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

Bat

EffectDescription
Classifyadds a class to a unit
Deal damagedeals damage to a unit
Player resource changeadd, sub, mul or div of a player resource value
Multiple stat swapswaps stats between multiple units
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Summonsummons another unit

Dromedary

Tabby Cat

Effect targetDescription
All allies
All shop units
All summoned allies
All pushed enemies
All summoned enemies
All units
Most healthy ally
Nth allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Atlantic Puffin

Dove

Guinea Pig

Jellyfish

TriggerDescription
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up

Koala

TriggerDescription
Ally soldwhen an ally is sold
Ally hurtwhen any ally is hurt
Ally summonedwhen an ally is summoned
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up
Effect conditionDescription
Limit triggersapplies the effect up to a max # of times per turn
Per specific allyapplies the effect based on the number of allies of a specific type
Until the end of battlethe effect will persist until the next battle ends

Panda

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.

EffectDescription
Classifyadds a class to a unit
Deal damagedeals damage to a unit
Faintmakes the unit faint
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Summonsummons another unit

Pug

EffectDescription
Classifyadds a class to a unit
Deal damagedeals damage to a unit
Faintmakes the unit faint
Give experiencegives experience to a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Summonsummons another unit

Salamander

TriggerDescription
Ally boughtwhen any ally is bought
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up
Effect conditionDescription
If specific allyapplies the effect if the ally passes a condition
Limit triggersapplies the effect up to a max # of times per turn
Per specific allyapplies the effect based on the number of allies of a specific type
Until the end of battlethe effect will persist until the next battle ends
Effect targetDescription
All allies
All shop units
All summoned allies
All pushed enemies
All summoned enemies
All units
Any hurt
Any bought
Most healthy ally
Nth allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent alliesapplies 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

Yak

1.

2.

Frigatebird

Gold Fish

EffectDescription
Classifyadds a class to a unit
Deal damagedeals damage to a unit
Discountdecreases a unit's cost
Faintmakes the unit faint
Give experiencegives experience to a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Summonsummons another unit

Raccoon

EffectDescription
Classifyadds a class to a unit
Deal damagedeals damage to a unit
Discountdecreases a unit's cost
Faintmakes the unit faint
Give experiencegives experience to a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit

Toucan

EffectDescription
Classifyadds a class to a unit
Deal damagedeals damage to a unit
Discountdecreases a unit's cost
Faintmakes the unit faint
Give experiencegives experience to a unit
Give itemgives your item to a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit

Wombat

EffectDescription
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Deal damagedeals damage to a unit
Discountdecreases a unit's cost
Faintmakes the unit faint
Give experiencegives experience to a unit
Give itemgives your item to a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit
Effect targetDescription
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 allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Cupcake

Meat Bone

This one's a little weird, but if I were to implement it like a unit it would be something like:

It's dealing extra damage on each attack, so this makes sense.

TriggerDescription
Ally boughtwhen any ally is bought
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attackwhen the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up

Pill

As mentioned in the panda section.

Broccoli

Fried Shrimp

Croissant

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
1️⃣ Tier 1
2️⃣ Tier 2
3️⃣ Tier 3
4️⃣ Tier 4
6️⃣ Tier 6
5️⃣ Tier 5
⬇️ Final tables
⬇️ Rerolling shop genre

Badger

Effect targetDescription
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 allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Blowfish

Camel

Dog

Giraffe

Kangaroo

TriggerDescription
Ally ahead attackswhen an ally in front attacks
Ally boughtwhen any ally is bought
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attack``when the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up

Ox

TriggerDescription
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally boughtwhen any ally is bought
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attack``when the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up
EffectDescription
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Deal damagedeals damage to a unit
Discountdecreases a unit's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit

Rabbit

TriggerDescription
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally boughtwhen any ally is bought
Ally consumes itemwhen an ally is given an item
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attack``when the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up
Effect targetDescription
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 allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Sheep

Snail

Effect conditionDescription
If lost battleapplies the effect if the previous battle was lost
If specific allyapplies the effect if the ally passes a condition
Limit triggersapplies the effect up to a max # of times per turn
Per specific allyapplies the effect based on the number of allies of a specific type
Until the end of battlethe effect will persist until the next battle ends

Turtle

Hatching Chick

1.

2.

3.

Owl

Puppy

Effect conditionDescription
If lost battleapplies the effect if the previous battle was lost
If player resourceapplies the effect if a player's resource passes a condition
If specific allyapplies the effect if the ally passes a condition
Limit triggersapplies the effect up to a max # of times per turn
Per specific allyapplies the effect based on the number of allies of a specific type
Until the end of battlethe effect will persist until the next battle ends

Tropical Fish

Blobfish

Capybara

TriggerDescription
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally boughtwhen any ally is bought
Ally consumes itemwhen an ally is given an item
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attackwhen the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Rollwhen the shop is rerolled
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up
Effect targetDescription
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 allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Cassowary

Clownfish

Effect targetDescription
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 allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Leech

1.

2.

Okapi

Starfish

Toad

TriggerDescription
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally boughtwhen any ally is bought
Ally consumes itemwhen an ally is given an item
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attackwhen the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy hurtwhen an enemy is hurt
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Rollwhen the shop is rerolled
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up
Effect targetDescription
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 allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Woodpecker

Effect targetDescription
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 allywhere N >= 1
Nth shop unitwhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Aardvark

Bear

Effect targetDescription
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 allywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Emperor Tamarin

Seagull

EffectDescription
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Copy item tocopies this unit's item to another unit
Deal damagedeals damage to a unit
Discountdecreases a unit's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit

Wasp

Garlic

Like the meat bone, you could describe this in terms of its trigger and effect. I would do it like this:

So whenever this unit takes damage, it will take less damage.

EffectDescription
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Copy item tocopies this unit's item to another unit
Deal damagedeals damage to a unit
Discountdecreases a unit's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit
Take less damagetakes less damage from the next attack

Salad Bowl

Cucumber

Lollipop

EffectDescription
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Copy item tocopies this unit's item to another unit
Deal damagedeals damage to a unit
Discountdecreases a unit's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Single stat swapswaps stats within a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit
Take less damagetakes less damage from the next attack

Pineapple

This is essentially dealing more damage when the ability deals damage, so something like:

TriggerDescription
Ability damagewhen the unit's ability deals damage
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally boughtwhen any ally is bought
Ally consumes itemwhen an ally is given an item
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attackwhen the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy hurtwhen an enemy is hurt
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Rollwhen the shop is rerolled
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up

Tier 4

⬆️ Start
1️⃣ Tier 1
2️⃣ Tier 2
3️⃣ Tier 3
4️⃣ Tier 4
6️⃣ Tier 6
5️⃣ Tier 5
⬇️ Final tables
⬇️ Rerolling shop genre

Bison

Effect conditionDescription
If any specific allyapplies the effect if at least one ally passes a condition
If lost battleapplies the effect if the previous battle was lost
If player resourceapplies the effect if a player's resource passes a condition
If specific allyapplies the effect if the ally passes a condition
Limit triggersapplies the effect up to a max # of times per turn
Per specific allyapplies the effect based on the number of allies of a specific type
Until the end of battlethe effect will persist until the next battle ends

Deer

Dolphin

Effect targetDescription
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 allywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
Selfapplies to the unit that triggered it
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Hippo

TriggerDescription
Ability damagewhen the unit's ability deals damage
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally boughtwhen any ally is bought
Ally consumes itemwhen an ally is given an item
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attackwhen the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy hurtwhen an enemy is hurt
Enemy killedwhen the enemy is killed as a result of this unit's attack
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Rollwhen the shop is rerolled
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up

Parrot

Penguin

Effect targetDescription
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 allywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
N specific allieswhere N >= 1, ally specified in effect condition
Selfapplies to the unit that triggered it
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Rooster

Skunk

Effect targetDescription
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 allywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
N specific allieswhere N >= 1, ally specified in effect condition
Selfapplies to the unit that triggered it
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Squirrel

EffectDescription
Add shop itemadds an additional item to the shop
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Copy item tocopies this unit's item to another unit
Deal damagedeals damage to a unit
Discount unitdecreases a shop unit's cost
Discount itemdecreases a shop item's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Single stat swapswaps stats within a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit
Take less damagetakes less damage from the next attack

Whale

1.

2.

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

Buffalo

Caterpillar

1.

2.

3.

EffectDescription
Add shop itemadds an additional item to the shop
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Copy item tocopies this unit's item to another unit
Deal damagedeals damage to a unit
Discount unitdecreases a shop unit's cost
Discount itemdecreases a shop item's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Single stat swapswaps stats within a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit
Take less damagetakes less damage from the next attack
Transformtransforms into another unit
Effect targetDescription
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 allywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
N specific allieswhere N >= 1, ally specified in effect condition
Selfapplies to the unit that triggered it
Strongest ally
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Llama

Lobster

Microbe

Anteater

Crow

Donkey

TriggerDescription
Ability damagewhen the unit's ability deals damage
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally boughtwhen any ally is bought
Ally consumes itemwhen an ally is given an item
Ally faintswhen an ally faints
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attackwhen the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy hurtwhen an enemy is hurt
Enemy killedwhen the enemy is killed as a result of this unit's attack
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Rollwhen the shop is rerolled
Sellwhen the unit is sold
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up
Effect targetDescription
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 allywhere N >= 1
Nth enemywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
N specific allieswhere N >= 1, ally specified in effect condition
Selfapplies to the unit that triggered it
Strongest ally
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Eel

Hawk

Orangutan

Pelican

Platypus

Praying Mantis

  1. Trigger: start of turn
  2. Effect: kill
  3. Effect target: two adjacent allies

2.

EffectDescription
Add shop itemadds an additional item to the shop
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Copy item tocopies this unit's item to another unit
Deal damagedeals damage to a unit
Discount unitdecreases a shop unit's cost
Discount itemdecreases a shop item's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Killdeals damage and kill a unit
Single stat swapswaps stats within a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit
Take less damagetakes less damage from the next attack
Transformtransforms into another unit

Armadillo

Dragonfly

Effect targetDescription
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 allywhere N >= 1
Nth enemywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random allies of each levelwhere N >= 1
N random allies of each tier where N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
N specific allieswhere N >= 1, ally specified in effect condition
Selfapplies to the unit that triggered it
Strongest ally
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Jerboa

Lynx

Mole

Porcupine

Effect targetDescription
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 enemythe enemy that just attacked this unit
Highest tier enemy
Least healthy ally
Most healthy ally
Most healthy enemy
Nth allywhere N >= 1
Nth enemywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random allies of each levelwhere N >= 1
N random allies of each tierwhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
N specific allieswhere N >= 1, ally specified in effect condition
Selfapplies to the unit that triggered it
Strongest ally
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Canned Food

Effect targetDescription
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 enemythe enemy that just attacked this unit
Highest tier enemy
Least healthy ally
Most healthy ally
Most healthy enemy
Nth allywhere N >= 1
Nth enemywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random allies of each levelwhere N >= 1
N random allies of each tierwhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
N specific allieswhere N >= 1, ally specified in effect condition
Selfapplies to the unit that triggered it
Strongest ally
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Pear

Cheese

EffectDescription
Add shop itemadds an additional item to the shop
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Copy item tocopies this unit's item to another unit
Deal damagedeals damage to a unit
Double damagechance to deal double damage to a unit
Discount unitdecreases a shop unit's cost
Discount itemdecreases a shop item's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Killdeals damage and kill a unit
Single stat swapswaps stats within a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Remove itemremoves this unit's held item
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit
Take less damagetakes less damage from the next attack
Transformtransforms into another unit

Grapes

Tier 6

⬆️ Start
1️⃣ Tier 1
2️⃣ Tier 2
3️⃣ Tier 3
4️⃣ Tier 4
6️⃣ Tier 6
5️⃣ Tier 5
⬇️ Final tables
⬇️ Rerolling shop genre

Boar

Cat

EffectDescription
Add shop itemadds an additional item to the shop
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Copy item tocopies this unit's item to another unit
Deal damagedeals damage to a unit
Double damagechance to deal double damage to a unit
Discount unitdecreases a shop unit's cost
Discount itemdecreases a shop item's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Item effectivenessadd, sub, mul or div to item effectiveness
Killdeals damage and kill a unit
Single stat swapswaps stats within a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Remove itemremoves this unit's held item
Roll shoprolls the shop
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit
Take less damagetakes less damage from the next attack
Transformtransforms into another unit

Dragon

TriggerDescription
Ability damagewhen the unit's ability deals damage
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally boughtwhen any ally is bought
Ally consumes itemwhen an ally is given an item
Ally faintswhen an ally faints
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attackwhen the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy hurtwhen an enemy is hurt
Enemy killedwhen the enemy is killed as a result of this unit's attack
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Rollwhen the shop is rerolled
Sellwhen the unit is sold
Specific ally boughtwhen a specific ally or type of ally is bought
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up

Fly

Gorilla

Leopard

Mammoth

Snake

Tiger

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.

TriggerDescription
Ability damagewhen the unit's ability deals damage
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally ahead uses abilitywhen an ally in front uses its ability
Ally boughtwhen any ally is bought
Ally consumes itemwhen an ally is given an item
Ally faintswhen an ally faints
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attackwhen the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
End turnwhen the current turn (shop round) ends, but before battle
Enemy hurtwhen an enemy is hurt
Enemy killedwhen the enemy is killed as a result of this unit's attack
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Rollwhen the shop is rerolled
Sellwhen the unit is sold
Specific ally boughtwhen a specific ally or type of ally is bought
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up

Octopus

Sauropod

Tyrannosaurus

Hammershark

Komodo

EffectDescription
Add shop itemadds an additional item to the shop
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Copy item tocopies this unit's item to another unit
Deal damagedeals damage to a unit
Double damagechance to deal double damage to a unit
Discount unitdecreases a shop unit's cost
Discount itemdecreases a shop item's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Item effectivenessadd, sub, mul or div to item effectiveness
Killdeals damage and kill a unit
Single stat swapswaps stats within a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Remove itemremoves this unit's held item
Roll shoprolls the shop
Shufflechanges the positions of multiple units
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit
Take less damagetakes less damage from the next attack
Transformtransforms into another unit
Effect targetDescription
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 enemythe enemy that just attacked this unit
Highest tier enemy
Least healthy ally
Most healthy ally
Most healthy enemy
Nth allywhere N >= 1
Nth enemywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random allies of each levelwhere N >= 1
N random allies of each tierwhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
N specific allieswhere N >= 1, ally specified in effect condition
Selfapplies to the unit that triggered it
Strongest ally
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Orca

Ostrich

Piranha

Reindeer

Sabertooth Tiger

Spinosaurus

Stegosaurus

Effect conditionDescription
If any specific allyapplies the effect if at least one ally passes a condition
If lost battleapplies the effect if the previous battle was lost
If player resourceapplies the effect if a player's resource passes a condition
If specific allyapplies the effect if the ally passes a condition
Limit triggersapplies the effect up to a max # of times per turn
Per turn numberapplies the effect based on the number of turns
Per specific allyapplies the effect based on the number of allies of a specific type
Until the end of battlethe effect will persist until the next battle ends

Velociraptor

Alpaca

Lioness

Tapir

Walrus

White Tiger

EffectDescription
Add shop itemadds an additional item to the shop
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Copy item tocopies this unit's item to another unit
Deal damagedeals damage to a unit
Double damagechance to deal double damage to a unit
Discount unitdecreases a shop unit's cost
Discount itemdecreases a shop item's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Item effectivenessadd, sub, mul or div to item effectiveness
Killdeals damage and kill a unit
Single stat swapswaps stats within a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Remove itemremoves this unit's held item
Roll shoprolls the shop
Set levelsets the unit's level to a specific value
Shufflechanges the positions of multiple units
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit
Take less damagetakes less damage from the next attack
Transformtransforms into another unit

Melon

TriggerDescription
Ability damagewhen the unit's ability deals damage
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally ahead uses abilitywhen an ally in front uses its ability
Ally boughtwhen any ally is bought
Ally consumes itemwhen an ally is given an item
Ally faintswhen an ally faints
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attackwhen the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
Damage takenwhen the unit takes damage
End turnwhen the current turn (shop round) ends, but before battle
Enemy hurtwhen an enemy is hurt
Enemy killedwhen the enemy is killed as a result of this unit's attack
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Rollwhen the shop is rerolled
Sellwhen the unit is sold
Specific ally boughtwhen a specific ally or type of ally is bought
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Upgrade shop tierwhen the shop levels up

Mushroom

Pizza

Steak

Hot Dog

Orange

Popcorn

Chicken Leg

Soft Ice

Tier 5

⬆️ Start
1️⃣ Tier 1
2️⃣ Tier 2
3️⃣ Tier 3
4️⃣ Tier 4
6️⃣ Tier 6
5️⃣ 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

Crocodile

Monkey

Rhino

Scorpion

TriggerDescription
Ability damagewhen the unit's ability deals damage
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally ahead uses abilitywhen an ally in front uses its ability
Ally boughtwhen any ally is bought
Ally consumes itemwhen an ally is given an item
Ally faintswhen an ally faints
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attackwhen the unit attacks
Any level-upwhen any ally levels up
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
Damage takenwhen the unit takes damage
End turnwhen the current turn (shop round) ends, but before battle
Enemy hurtwhen an enemy is hurt
Enemy killedwhen the enemy is killed as a result of this unit's attack
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Rollwhen the shop is rerolled
Sellwhen the unit is sold
Specific ally boughtwhen a specific ally or type of ally is bought
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Summonedwhen this unit is summoned
Upgrade shop tierwhen the shop levels up

Seal

Shark

Turkey

Chicken

Eagle

Goat

Poodle

Fox

1.

Hamster

Lion

Effect conditionDescription
If any specific allyapplies the effect if at least one ally passes a condition
If highest tier allyapplies the effect if this is the highest tier unit
If lost battleapplies the effect if the previous battle was lost
If player resourceapplies the effect if a player's resource passes a condition
If specific allyapplies the effect if the ally passes a condition
Limit triggersapplies the effect up to a max # of times per turn
Per turn numberapplies the effect based on the number of turns
Per specific allyapplies the effect based on the number of allies of a specific type
Until the end of battlethe effect will persist until the next battle ends

Polar Bear

Effect targetDescription
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 enemythe enemy that just attacked this unit
Highest tier enemy
Least healthy ally
Most healthy ally
Most healthy enemy
Nth allywhere N >= 1
Nth enemywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random allies of each levelwhere N >= 1
N random allies of each tierwhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
N random frozen shop unitswhere N >= 1
N specific allieswhere N >= 1, ally specified in effect condition
Selfapplies to the unit that triggered it
Strongest ally
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Shoebill

Siberian Husky

Effect targetDescription
All allies
All allies ahead
All classed alliesclassed ally = of a specific class
All specific alliesspecific 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 enemythe enemy that just attacked this unit
Highest tier enemy
Least healthy ally
Most healthy ally
Most healthy enemy
Nth allywhere N >= 1
Nth enemywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random allies of each levelwhere N >= 1
N random allies of each tierwhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
N random frozen shop unitswhere N >= 1
N specific allieswhere N >= 1, ally specified in effect condition
Selfapplies to the unit that triggered it
Strongest ally
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Swordfish

Triceratops

Vulture

Hyena

1.

2.

3.

Lionfish

TriggerDescription
Ability damagewhen the unit's ability deals damage
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally ahead uses abilitywhen an ally in front uses its ability
Ally boughtwhen any ally is bought
Ally consumes itemwhen an ally is given an item
Ally faintswhen an ally faints
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attackwhen the unit attacks
Any level-upwhen any ally levels up
Before ally attackbefore an ally is about to attack
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
Damage takenwhen the unit takes damage
End turnwhen the current turn (shop round) ends, but before battle
Enemy hurtwhen an enemy is hurt
Enemy killedwhen the enemy is killed as a result of this unit's attack
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Rollwhen the shop is rerolled
Sellwhen the unit is sold
Specific ally boughtwhen a specific ally or type of ally is bought
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Summonedwhen this unit is summoned
Upgrade shop tierwhen the shop levels up
Effect targetDescription
All allies
All allies ahead
All classed alliesclassed ally = of a specific class
All specific alliesspecific 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 enemythe enemy that just attacked this unit
Enemy about to be attacked
Highest tier enemy
Least healthy ally
Most healthy ally
Most healthy enemy
Nth allywhere N >= 1
Nth enemywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random allies of each levelwhere N >= 1
N random allies of each tierwhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
N random frozen shop unitswhere N >= 1
N specific allieswhere N >= 1, ally specified in effect condition
Selfapplies to the unit that triggered it
Strongest ally
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies to 2 allies adjacent to the one that triggered it

Moose

Effect conditionDescription
If any specific allyapplies the effect if at least one ally passes a condition
If highest tier allyapplies the effect if this is the highest tier unit
If lost battleapplies the effect if the previous battle was lost
If player resourceapplies the effect if a player's resource passes a condition
If specific allyapplies the effect if the ally passes a condition
Limit triggersapplies the effect up to a max # of times per turn
Mult lowest tier allymultiplies the effect with lowest ally tier
Per turn numberapplies the effect based on the number of turns
Per specific allyapplies the effect based on the number of allies of a specific type
Until the end of battlethe effect will persist until the next battle ends

Chili

EffectDescription
Add shop itemadds an additional item to the shop
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Copy item tocopies this unit's item to another unit
Deal damagedeals damage to a unit
Deal damage behinddeals damage to the unit behind the one that is attacked
Double damagechance to deal double damage to a unit
Discount unitdecreases a shop unit's cost
Discount itemdecreases a shop item's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Item effectivenessadd, sub, mul or div to item effectiveness
Killdeals damage and kill a unit
Single stat swapswaps stats within a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Remove itemremoves this unit's held item
Roll shoprolls the shop
Set levelsets the unit's level to a specific value
Shufflechanges the positions of multiple units
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit
Take less damagetakes less damage from the next attack
Transformtransforms into another unit

Chocolate

Sushi

Carrot

Pepper

Stew

Taco

Lemon

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:

TriggerDescription
Ability damagewhen the unit's ability deals damage
Ally ahead attackswhen an ally in front attacks
Ally ahead faintswhen an ally in front faints
Ally ahead uses abilitywhen an ally in front uses its ability
Ally boughtwhen any ally is bought
Ally consumes itemwhen an ally is given an item
Ally faintswhen an ally faints
Ally hurtwhen any ally is hurt
Ally soldwhen an ally is sold
Ally summonedwhen an ally is summoned
Attackwhen the unit attacks
Any level-upwhen any ally levels up
Before ally attackbefore an ally is about to attack
Before attackbefore the unit is about to attack
Buywhen the unit is bought
Consumes itemwhen the unit is given an item
Damage takenwhen the unit takes damage
End turnwhen the current turn (shop round) ends, but before battle
Enemy hurtwhen an enemy is hurt
Enemy killedwhen the enemy is killed as a result of this unit's attack
Enemy summonedwhen an enemy is summoned
Enemy pushedwhen an enemy is pushed
Faintwhen the unit dies
Hurtwhen the unit is hit
Item boughtwhen an item is bought
Level-upwhen the unit levels up
Rollwhen the shop is rerolled
Sellwhen the unit is sold
Specific ally boughtwhen a specific ally or type of ally is bought
Start of battlewhen the battle starts
Start of turnwhen the turn (shop round) starts
Summonedwhen this unit is summoned
Upgrade shop tierwhen the shop levels up
EffectDescription
Add shop itemadds an additional item to the shop
Classifyadds a class to a unit
Copy abilitycopies another unit's ability
Copy item tocopies this unit's item to another unit
Deal damagedeals damage to a unit
Deal damage behinddeals damage to the unit behind the one that is attacked
Double damagechance to deal double damage to a unit
Discount unitdecreases a shop unit's cost
Discount itemdecreases a shop item's cost
Faintmakes the unit faint
Gain itemgains a specific item
Give experiencegives experience to a unit
Give itemgives your item to a unit
Item effectivenessadd, sub, mul or div to item effectiveness
Killdeals damage and kill a unit
Single stat swapswaps stats within a unit
Multiple stat swapswaps stats between multiple units
Player resource changeadd, sub, mul or div of a player resource value
Push enemypushes an enemy to a different position
Repeatrepeats the effect its attached to
Replace itemreplaces shop items with other items
Remove itemremoves this unit's held item
Roll shoprolls the shop
Set levelsets the unit's level to a specific value
Shufflechanges the positions of multiple units
Stat changeadd, sub, mul or div of a stat
Stat copycopies a stat from another unit
Stat givegives a stat to another unit
Stat setsets a stat to a specific value
Status effectapplies a status effect to a unit
Steal itemsteals item from a unit
Summonsummons another unit
Take less damagetakes less damage from the next attack
Transformtransforms into another unit
Effect conditionDescription
If any specific allyapplies the effect if at least one ally passes a condition
If highest tier allyapplies the effect if this is the highest tier unit
If lost battleapplies the effect if the previous battle was lost
If player resourceapplies the effect if a player's resource passes a condition
If specific allyapplies the effect if the ally passes a condition
Limit triggersapplies the effect up to a max # of times per turn
Mult lowest tier allymultiplies the effect with lowest ally tier
Per turn numberapplies the effect based on the number of turns
Per specific allyapplies the effect based on the number of allies of a specific type
Until the end of battlethe effect will persist until the next battle ends
Effect targetDescription
All allies
All allies ahead
All classed alliesclassed ally = of a specific class
All specific alliesspecific 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 enemythe enemy that just attacked this unit
Enemy about to be attacked
Highest tier enemy
Least healthy ally
Most healthy ally
Most healthy enemy
Nth allywhere N >= 1
Nth enemywhere N >= 1
Nth shop unitwhere N >= 1
N adjacent unitswhere N >= 1
N allies behindwhere N >= 1
N allies in frontwhere N >= 1
N units in frontwhere N >= 1
N random allieswhere N >= 1
N random allies of each levelwhere N >= 1
N random allies of each tierwhere N >= 1
N random classed allieswhere N >= 1, classed ally = of a specific class
N random enemieswhere N >= 1
N random frozen shop unitswhere N >= 1
N specific allieswhere N >= 1, ally specified in effect condition
Selfapplies to the unit that triggered it
Strongest ally
Two adjacent unitsapplies to 2 units adjacent to the one that triggered it
Two adjacent alliesapplies 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:

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:

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:

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:

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.

Settings