v2.0.0: implemented the lightly armed talent and text for the other two

This commit is contained in:
Evan Debenham
2023-02-27 18:07:04 -05:00
parent 55d1e92992
commit bb88c68e58
4 changed files with 70 additions and 16 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -882,7 +882,12 @@ actors.hero.talent.twin_upgrades.desc=_+1:_ If one of the Champion's two equippe
actors.hero.talent.combined_lethality.title=combined lethality
actors.hero.talent.combined_lethality.desc=_+1:_ If the Champion uses two different weapon abilities successively, the second ability will execute any non-boss enemy left at _below 10% HP_.\n\n_+2:_ If the Champion uses two different weapon abilities successively, the second ability will execute any non-boss enemy left at _below 20% HP_.\n\n_+3:_ If the Champion uses two different weapon abilities successively, the second ability will execute any non-boss enemy left at _below 30% HP_.\n\nIf the second ability does not contain an attack, this talent will instead trigger on the Champion's next attack within 5 turns.
#second subclass
actors.hero.talent.lightly_armed.title=Unencumbered Spirit
actors.hero.talent.lightly_armed.desc=_+1:_ The Monk gains _25% more energy_ for each piece of _T3 or lower_ equipment she is wearing.\n\n_+2:_ The Monk gains _50% more energy_ for each piece of _T2 or lower_ equipment she is wearing.\n\n_+3:_ The Monk gains _100% more energy_ for each piece of _T1 or lower_ equipment she is wearing. She also gains _150% more energy_ if she has no weapon (or ring of force), and gains a free cloth armor and studded gloves.
actors.hero.talent.monastic_vigor.title=monastic vigor
actors.hero.talent.monastic_vigor.desc=_+1:_ If the Monk has _100% energy_, her monk abilities are empowered.\n\n_+2:_ If the Monk has _85% or more energy_, her monk abilities are empowered.\n\n_+3:_ If the Monk has _70% or more energy_, her monk abilities are empowered.\n\nWhen empowered:\n- Flurry applies enchantments at 75% power\n- Focus is instantaneous\n- Dash gains +2 range\n- Dragon Kick deals +33% damage and applies its knock back and stun effect to all adjacent enemies\n- Meditate slowly heals 20% of missing HP and grants 80% damage resistance.
actors.hero.talent.combined_energy.title=combined energy
actors.hero.talent.combined_energy.desc=_+1:_ If the Monk uses a weapon ability and a _4+ energy_ monk ability successively, she regains 33% of her spent energy and resets her ability cooldown.\n\n_+2:_ If the Monk uses a weapon ability and a _3+ energy_ monk ability successively, she regains 33% of her spent energy and resets her ability cooldown.\n\n_+3:_ If the Monk uses a weapon ability and a _2+ energy_ monk ability successively, she regains 33% of her spent energy and resets her ability cooldown.
actors.hero.talent.close_the_gap.title=close the gap
actors.hero.talent.close_the_gap.desc=_+1:_ The Duelist blinks _up to two tiles_ toward her target when starting a duel.\n\n_+2:_ The Duelist blinks _up to three tiles_ toward her target when starting a duel.\n\n_+3:_ The Duelist blinks _up to four tiles_ toward her target when starting a duel.\n\n_+4:_ The Duelist blinks _up to five tiles_ toward her target when starting a duel.\n\nThis blink can go through enemies and hazards, and is taken into account when determining if an enemy is in range to be challenged.

View File

@@ -27,12 +27,14 @@ 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.HeroSubClass;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Ghoul;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.RipperDemon;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Wraith;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.YogDzewa;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfForce;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlastWave;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
@@ -134,16 +136,56 @@ public class MonkEnergy extends Buff implements ActionIndicator.Action {
return; //to prevent farming boss minions
}
//bosses and minibosses give extra energy, certain enemies give half, otherwise give 1
if (Char.hasProp(enemy, Char.Property.BOSS)) energy += 5;
else if (Char.hasProp(enemy, Char.Property.MINIBOSS)) energy += 3;
else if (enemy instanceof Ghoul) energy += 0.5f;
else if (enemy instanceof RipperDemon) energy += 0.5f;
else if (enemy instanceof YogDzewa.Larva) energy += 0.5f;
else if (enemy instanceof Wraith) energy += 0.5f;
else energy += 1;
float energyGain;
energy = Math.min(energy, energyCap());
//bosses and minibosses give extra energy, certain enemies give half, otherwise give 1
if (Char.hasProp(enemy, Char.Property.BOSS)) energyGain = 5;
else if (Char.hasProp(enemy, Char.Property.MINIBOSS)) energyGain = 3;
else if (enemy instanceof Ghoul) energyGain = 0.5f;
else if (enemy instanceof RipperDemon) energyGain = 0.5f;
else if (enemy instanceof YogDzewa.Larva) energyGain = 0.5f;
else if (enemy instanceof Wraith) energyGain = 0.5f;
else energyGain = 1;
float enGainMulti = 1f;
if (target instanceof Hero) {
Hero hero = (Hero) target;
if (hero.hasTalent(Talent.LIGHTLY_ARMED)) {
int points = hero.pointsInTalent(Talent.LIGHTLY_ARMED);
if (hero.belongings.armor() != null){
if (hero.belongings.armor().tier == 3 && points >= 1){
enGainMulti += 0.25f;
}
if (hero.belongings.armor().tier == 2 && points >= 2){
enGainMulti += 0.50f;
}
if (hero.belongings.armor().tier == 1 && points >= 3){
enGainMulti += 1.00f;
}
}
if (hero.belongings.weapon() instanceof MeleeWeapon){
if (((MeleeWeapon) hero.belongings.weapon()).tier == 3 && points >= 1){
enGainMulti += 0.25f;
}
if (((MeleeWeapon) hero.belongings.weapon()).tier == 2 && points >= 2){
enGainMulti += 0.50f;
}
if (((MeleeWeapon) hero.belongings.weapon()).tier == 1 && points >= 3){
enGainMulti += 1.00f;
}
} else if (hero.belongings.weapon == null) {
if (hero.buff(RingOfForce.Force.class) == null && points == 3){
enGainMulti += 1.50f;
}
}
}
}
energyGain *= enGainMulti;
energy = Math.min(energy+energyGain, energyCap());
if (energy > 0 && cooldown == 0){
ActionIndicator.setAction(this);

View File

@@ -50,6 +50,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.particles.LeafParticle;
import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClothArmor;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CloakOfShadows;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.HornOfPlenty;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring;
@@ -57,6 +58,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.SpiritBow;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Gloves;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon;
@@ -154,13 +156,13 @@ public enum Talent {
FOCUSED_MEAL(132), RESTORED_AGILITY(133), WEAPON_RECHARGING(134), LETHAL_HASTE(135), SWIFT_EQUIP(136),
//Duelist T3
LIGHTWEIGHT_CHARGE(137, 3), DEADLY_FOLLOWUP(138, 3),
//Duelist S1 T3
//Champion T3
SECONDARY_CHARGE(139, 3), TWIN_UPGRADES(140, 3), COMBINED_LETHALITY(141, 3),
//Duelist S2 T3
DUELIST_S2_1(142, 3), DUELIST_S2_2(143, 3), DUELIST_S2_3(144, 3),
//Duelist A1 T4
//Monk T3
LIGHTLY_ARMED(142, 3), MONASTIC_VIGOR(143, 3), COMBINED_ENERGY(144, 3),
//Challenge T4
CLOSE_THE_GAP(145, 4), INVIGORATING_VICTORY(146, 4), ELIMINATION_MATCH(147, 4),
//Duelist A2 T4
//Elemental Strike T4
ELEMENTAL_REACH(148, 4), STRIKING_FORCE(149, 4), DIRECTED_POWER(150, 4),
//Duelist A3 T4
DUELIST_A3_1(151, 4), DUELIST_A3_2(152, 4), DUELIST_A3_3(153, 4),
@@ -382,6 +384,11 @@ public enum Talent {
if (talent == SECONDARY_CHARGE || talent == TWIN_UPGRADES){
Item.updateQuickslot();
}
if (talent == LIGHTLY_ARMED && hero.pointsInTalent(talent) == 3){
new ClothArmor().identify().collect();
new Gloves().identify().collect();
}
}
public static class CachedRationsDropped extends CounterBuff{{revivePersists = true;}};
@@ -796,7 +803,7 @@ public enum Talent {
Collections.addAll(tierTalents, SECONDARY_CHARGE, TWIN_UPGRADES, COMBINED_LETHALITY);
break;
case MONK:
Collections.addAll(tierTalents, DUELIST_S2_1, DUELIST_S2_2, DUELIST_S2_3);
Collections.addAll(tierTalents, LIGHTLY_ARMED, MONASTIC_VIGOR, COMBINED_ENERGY);
break;
}
for (Talent talent : tierTalents){