v0.9.2: rebalanced combo building and turned cleave into a talent

This commit is contained in:
Evan Debenham 2021-01-27 19:04:44 -05:00
parent b6ba0f085b
commit 545ba546db
4 changed files with 20 additions and 36 deletions

View File

@ -131,7 +131,7 @@ actors.buffs.combo.crush_prompt=Select a target to Crush\nDeals lots of damage
actors.buffs.combo.crush_desc=_Crush_ is currently available. This devastating attack _deals massive damage very consistently._ It's great for taking down a powerful opponent from high health!
actors.buffs.combo.fury_prompt=Unload fury on which enemy?\nAttacks many times rapidly
actors.buffs.combo.fury_desc=_Fury_ is currently available. This devastating attack _hits as many times as your current combo count,_ albeit at reduced damage. Fury is great if you have a weapon enchant, as the enchant will activate on each hit!
actors.buffs.combo.desc=The gladiator builds momentum as they land successful blows. Each attack increases the combo counter by one, but taking too long between attacks or missing twice in a row will reset the combo counter to 0.\n\nBuilding combo unlocks special finisher abilities: powerful attacks that cannot miss! A different finisher is available at 2, 4, 6, 8, and 10 combo count, and using a finisher will reset your combo.
actors.buffs.combo.desc=The gladiator builds momentum as they land successful blows. Each attack increases the combo counter by one, but taking too long between hits will reset the combo counter to 0.\n\nBuilding combo unlocks special finisher abilities: powerful attacks that cannot miss! A different finisher is available at 2, 4, 6, 8, and 10 combo count, and using a finisher will reset your combo.
actors.buffs.corruption.name=Corrupted
actors.buffs.corruption.desc=Corruption seeps into the essence of a being, twisting them against their former nature.\n\nCorrupted creatures will attack their allies, and ignore their former enemies. Corruption is damaging as well, and will slowly cause its target to succumb.\n\nCorruption is permanent, its effects only end in death.
@ -338,6 +338,8 @@ actors.hero.talent.strongman.title=strongman
actors.hero.talent.strongman.desc=_+1:_ The Warrior needs _1 less strength_ to use armor.\n\n_+2:_ The Warrior needs _1 less strength_ to use armor and _1 less strength_ to use weapons.\n\n_+3:_ The Warrior needs _2 less strength_ to use armor and _1 less strength_ to use weapons.
actors.hero.talent.endless_rage.title=endless rage
actors.hero.talent.endless_rage.desc=_+1:_ The Berserker can reach a max of _115% rage_.\n\n_+2:_ The Berserker can reach a max of _130% rage_.\n\n_+3:_ The Berserker can reach a max of _145% rage_.\n\nNote that rage above 100% will not grant more than +50% damage.
actors.hero.talent.cleave.title=cleave
actors.hero.talent.cleave.desc=_+1:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _10 turns_.\n\n_+2:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _20 turns_.\n\n_+3:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _30 turns_.
actors.hero.talent.empowering_meal.title=empowering meal
actors.hero.talent.empowering_meal.desc=_+1:_ Eating food grants the Mage _2 bonus damage_ on his next 3 wand zaps.\n\n_+2:_ Eating food grants the Mage _3 bonus damage_ on his next 3 wand zaps.

View File

@ -27,6 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlastWave;
@ -51,7 +52,6 @@ public class Combo extends Buff implements ActionIndicator.Action {
private int count = 0;
private float comboTime = 0f;
private int misses = 0;
@Override
public int icon() {
@ -70,7 +70,7 @@ public class Combo extends Buff implements ActionIndicator.Action {
@Override
public float iconFadePercent() {
return Math.max(0, (4 - comboTime)/4f);
return Math.max(0, (5 - comboTime)/5f);
}
@Override
@ -81,8 +81,11 @@ public class Combo extends Buff implements ActionIndicator.Action {
public void hit( Char enemy ) {
count++;
comboTime = 4f;
misses = 0;
comboTime = 5f;
if (!enemy.isAlive() || enemy.buff(Corruption.class) != null){
comboTime = Math.max(comboTime, 10*((Hero)target).pointsInTalent(Talent.CLEAVE));
}
if (count >= 2) {
@ -97,14 +100,6 @@ public class Combo extends Buff implements ActionIndicator.Action {
}
public void miss( Char enemy ){
misses++;
comboTime = 4f;
if (misses >= 2){
detach();
}
}
@Override
public void detach() {
super.detach();
@ -136,14 +131,11 @@ public class Combo extends Buff implements ActionIndicator.Action {
private static final String COUNT = "count";
private static final String TIME = "combotime";
private static final String MISSES= "misses";
@Override
public void storeInBundle(Bundle bundle) {
super.storeInBundle(bundle);
bundle.put(COUNT, count);
bundle.put(TIME, comboTime);
bundle.put(MISSES, misses);
}
@Override
@ -152,7 +144,6 @@ public class Combo extends Buff implements ActionIndicator.Action {
count = bundle.getInt( COUNT );
if (count >= 2) ActionIndicator.setAction(this);
comboTime = bundle.getFloat( TIME );
misses = bundle.getInt( MISSES );
}
@Override
@ -179,6 +170,7 @@ public class Combo extends Buff implements ActionIndicator.Action {
}
private enum finisherType{
//TODO rework these, as well as finisher mechanics in general
CLOBBER, CLEAVE, SLAM, CRUSH, FURY
}

View File

@ -379,13 +379,8 @@ public class Hero extends Char {
belongings.weapon = belongings.stashedWeapon;
belongings.stashedWeapon = null;
if (subClass == HeroSubClass.GLADIATOR){
if (hit) {
Buff.affect( this, Combo.class ).hit( enemy );
} else {
Combo combo = buff(Combo.class);
if (combo != null) combo.miss( enemy );
}
if (hit && subClass == HeroSubClass.GLADIATOR){
Buff.affect( this, Combo.class ).hit( enemy );
}
return hit;
@ -1691,18 +1686,13 @@ public class Hero extends Char {
boolean hit = attack( enemy );
if (subClass == HeroSubClass.GLADIATOR){
if (hit) {
Buff.affect( this, Combo.class ).hit( enemy );
} else {
Combo combo = buff(Combo.class);
if (combo != null) combo.miss( enemy );
}
}
Invisibility.dispel();
spend( attackDelay() );
if (hit && subClass == HeroSubClass.GLADIATOR){
Buff.affect( this, Combo.class ).hit( enemy );
}
curAction = null;
super.onAttackComplete();

View File

@ -75,7 +75,7 @@ public enum Talent {
//Berserker T3
ENDLESS_RAGE(11, 3), BERSERKER_T3_2(12, 3), BERSERKER_T3_3(13, 3),
//Gladiator T3
GLADIATOR_T3_1(14, 3), GLADIATOR_T3_2(15, 3), GLADIATOR_T3_3(16, 3),
CLEAVE(14, 3), GLADIATOR_T3_2(15, 3), GLADIATOR_T3_3(16, 3),
//Mage T1
EMPOWERING_MEAL(32), SCHOLARS_INTUITION(33), TESTED_HYPOTHESIS(34), BACKUP_BARRIER(35),
@ -459,7 +459,7 @@ public enum Talent {
Collections.addAll(tierTalents, ENDLESS_RAGE, BERSERKER_T3_2, BERSERKER_T3_3);
break;
case GLADIATOR:
Collections.addAll(tierTalents, GLADIATOR_T3_1, GLADIATOR_T3_2, GLADIATOR_T3_3);
Collections.addAll(tierTalents, CLEAVE, GLADIATOR_T3_2, GLADIATOR_T3_3);
break;
case BATTLEMAGE:
Collections.addAll(tierTalents, BATTLEMAGE_T3_1, BATTLEMAGE_T3_2, BATTLEMAGE_T3_3);