So, I finally finished adding some unlockable units (it unlocks based on total stats, so you should have most of them when booting).
I changed the balancing, in two main points:
- the great simplification: bronze units do up to 2 things, the base effect and another effect or reaction. Currently everyone reacts to something, and I think that it makes stuff overwhelming. Only the crystals and gold units will have 3 things on them.
I'm thinking about adding events for later rounds, allowing you to add a set of predefined reactions based on types (not completely random). That would help making bronze units more useful later on. In the same way, we can have encounters to replace/buff effects. Another idea, for far in the future, is an encounter to let you change keywords in an effect, like replacing "column" with "row".
- effects vs reactions balance: I was stupid and designed a "points" system for how much each type of action or reaction would cost, having a "budget" for each card. The idea was using cooldown to balance that. The issue is that the reaction doesn't rely on the cooldown, as it's always in stand by. So now the idea is first dividing the ponits between active and reaction first, and use the cooldown to scale only the action. I'm building an excel with some charts.
For scaling effects (power up), the idea is that they yield "profit" over the regular skills after 20s of combat.
Permanent boosts should be made more scarce, we can do that by limiting to which type of effects they trigger to (never "any"). That should also reward control builds that make the combat last as long as possible.
Here's a preview of the new unlockable units:
{
// power distributor
id: "walking_reactor",
pic: "boss_protector",
power: 30,
rank: 2,
locked: true,
cooldown: 5200,
effects: [
shield,
distributePower(row),
],
reactions: [
reaction("all", "column_allies", increasePower(20, self))
]
},
// power absorber
{
id: "spectral_knight",
pic: "boss_gol",
power: 45,
rank: 2,
locked: true,
cooldown: 5200,
effects: [
damage,
absorbPower(column)
],
reactions: [
reaction("all", "row_allies", increasePower(20, column))
]
},
// re-haste
{
id: "gold_protective_crystal",
pic: "yellow-stone",
power: 30,
rank: 2,
locked: true,
cooldown: 4500,
effects: [
shield,
haste(2000, row)
],
reactions: [
reaction("re_hasted", "allies", increasePower(20, self))
]
},
// re-slow
{
id: "corruption_bringer",
pic: "boss_legion",
power: 45,
rank: 2,
locked: true,
cooldown: 5000,
isCore: true,
effects: [
poison,
slow(2000, randomEnemy(2))
],
reactions: [
reaction("re_slow", "allies", decreasePower(2, strongestEnemy))
]
},
//on_crit
{
id: "frontline_dasher",
pic: "boss_kane",
power: 60,
rank: 2,
locked: true,
cooldown: 5500,
effects: [
damage,
increaseCritical(10, column)
],
reactions: [
reaction("on_crit", "allies", increasePower(20, column))
]
},
//over_heal
{
id: "gold_quickstone",
pic: "haste-stone",
life: 1500,
power: 45,
rank: 2,
locked: true,
cooldown: 4500,
effects: [
heal,
],
reactions: [
reaction("on_over_heal", "allies", increasePower(5, allAllies, true))
]
},
//Balancer
{
id: "gold_quickstone",
pic: "haste-stone",
life: 1500,
power: 45,
rank: 2,
locked: true,
cooldown: 4500,
effects: [
shield,
decreasePower(5, strongestAlly),
increasePower(15, weakestAlly)
],
reactions: []
},
//metronome
{
id: "gold_quickstone",
pic: "haste-stone",
life: 1500,
power: 45,
rank: 2,
locked: true,
cooldown: 4500,
effects: [
regen,
],
reactions: [
reaction("all", "left_ally", haste(2000, right)),
reaction("all", "right_ally", haste(2000, left)),
]
},
//damage -> poison
{
id: "essence_harvester",
pic: "boss_malyk",
power: 45,
rank: 2,
locked: true,
cooldown: 4500,
effects: [
poison,
],
reactions: [
reaction("every_100_damage", "allies", increasePower(10, allAlliesOfType("poison"))),
],
},
//poison -> damage
{
id: "plague_incubator",
pic: "boss_manaman",
power: 45,
rank: 2,
locked: true,
cooldown: 4500,
effects: [
poison,
],
reactions: [
reaction("every_10_poison", "allies", increasePower(10, allAlliesOfType("damage"))),
],
},
//regen -> heal
{
id: "gold_quickstone",
pic: "haste-stone",
power: 45,
rank: 2,
locked: true,
cooldown: 4500,
effects: [
regen,
],
reactions: [
reaction("every_10_regen", "allies", increasePower(10, allAlliesOfType("heal"))),
],
},
//shield -> damage
{
id: "tempest_ravager",
pic: "boss_invader",
power: 45,
rank: 2,
locked: true,
cooldown: 4500,
effects: [
regen,
],
reactions: [
reaction("every_100_shield", "allies", increasePower(10, allAlliesOfType("damage"))),
],
},
//shield -> heal
{
id: "paragon",
pic: "boss_paragon",
power: 45,
rank: 2,
locked: true,
cooldown: 4500,
effects: [
regen,
],
reactions: [
reaction("every_100_shield", "allies", increasePower(10, allAlliesOfType("heal"))),
],
},
//heal -> regen
{
id: "gold_quickstone",
pic: "haste-stone",
power: 45,
rank: 2,
locked: true,
cooldown: 4500,
effects: [
heal,
],
reactions: [
reaction("every_100_heal", "allies", increasePower(10, allAlliesOfType("regen"))),
],
},
//regen -> heal
{
id: "Mend Sage",
pic: "boss_orias",
power: 55,
rank: 2,
locked: true,
cooldown: 5200,
effects: [
regen,
],
reactions: [
reaction("every_10_regen", "allies", increasePower(10, allAlliesOfType("heal"))),
],
},
//gambler2
{
id: "gold_quickstone",
pic: "haste-stone",
power: 45,
rank: 2,
locked: true,
cooldown: 4500,
effects: [
damage,
multiplyPower(1.2, self),
multiplyPower(1.4, weakestEnemy)
],
reactions: [],
},









