v0.9.4: implemented balance changes to ratmogrify:

- ratmogrify now lasts for 6 turns
- ratmogrified enemies now give exp and drops
- ratsistance effectiveness reduced slightly
This commit is contained in:
Evan Debenham 2021-07-26 19:20:15 -04:00
parent 26b7d83805
commit 64207426e3
3 changed files with 45 additions and 9 deletions
core/src/main
assets/messages/actors
java/com/shatteredpixel/shatteredpixeldungeon/actors

View File

@ -359,7 +359,7 @@ actors.hero.abilities.warrior.endure.desc=The Warrior endures for 3 turns, takin
actors.hero.abilities.mage.elementalblast.name=elemental blast
actors.hero.abilities.mage.elementalblast.short_desc=The Mage emits an _Elemental Blast_ from his staff, covering a large area around him in an effect that varies based on the wand in his staff.
actors.hero.abilities.mage.elementalblast.desc=The Mage emits a blast of magic, which covers a circular region up to 4 tiles away and deals up to 10-20 damage. The specific effect of elemental blast will vary by the wand imbued in the Mage's staff.
actors.hero.abilities.mage.elementalblast.desc=The Mage emits a blast of magic, which covers a circular region up to 4 tiles away and deals up to 15-25 damage. The specific effect of elemental blast will vary by the wand imbued in the Mage's staff.
actors.hero.abilities.mage.elementalblast.generic_desc=The effect of elemental blast will be similar to the effect of the wand when zapped at an enemy or ally.
actors.hero.abilities.mage.wildmagic.name=wild magic
actors.hero.abilities.mage.wildmagic.no_wands=You have no wands to zap with!
@ -409,7 +409,7 @@ actors.hero.abilities.huntress.naturespower$naturespowertracker.desc=The Huntres
actors.hero.abilities.huntress.spirithawk.name=spirit hawk
actors.hero.abilities.huntress.spirithawk.no_space=There is no free space near you.
actors.hero.abilities.huntress.spirithawk.short_desc=The Huntress summons a _Spirit Hawk_ familiar, which can help her scout locations and distract enemies.
actors.hero.abilities.huntress.spirithawk.desc=The Huntress summons a spirit hawk familiar, which can be directed by using the ability again while it is summoned. The hawk lasts for 50 turns, directing the hawk does not cost any charge.\n\nThe hawk has minimal health and attacking power, but is fast, evasive, and accurate. It shares its entire field of vision with the huntress at all times. It is immune to all area-bound effects, such as fire and poison gas. It will not attack unless specifically directed to.
actors.hero.abilities.huntress.spirithawk.desc=The Huntress summons a spirit hawk familiar, which can be directed by using the ability again while it is summoned. The hawk lasts for 60 turns, directing the hawk does not cost any charge.\n\nThe hawk has minimal health and attacking power, but is fast, evasive, and accurate. It shares its entire field of vision with the huntress at all times. It is immune to all area-bound effects, such as fire and poison gas. It will not attack unless specifically directed to.
actors.hero.abilities.huntress.spirithawk$hawkally.name=spirit hawk
actors.hero.abilities.huntress.spirithawk$hawkally.direct_follow=Your hawk moves to follow you.
actors.hero.abilities.huntress.spirithawk$hawkally.direct_attack=Your hawk moves to attack!
@ -419,8 +419,8 @@ actors.hero.abilities.huntress.spirithawk$hawkally.desc_dodges=Guaranteed dodges
actors.hero.abilities.ratmogrify.name=ratmogrify
actors.hero.abilities.ratmogrify.cant_transform=You can't ratmogrify that!
actors.hero.abilities.ratmogrify.too_strong=That enemy is too strong to ratmogrify!
actors.hero.abilities.ratmogrify.short_desc=The hero _Ratmogrifies_ an enemy! This turns them into a rat with no abilities, but also no loot.
actors.hero.abilities.ratmogrify.desc=The hero permanently transforms an enemy into a rat! Bosses, allies, and rats cannot be ratmogrified.\n\nRatmogrified enemies retain their original stats, but do not have any abilities, and award no exp or loot when they die.
actors.hero.abilities.ratmogrify.short_desc=The hero _Ratmogrifies_ an enemy! This temporarily turns them into a rat with no abilities.
actors.hero.abilities.ratmogrify.desc=The hero transforms an enemy into a rat for 6 turns! Bosses, allies, and rats cannot be ratmogrified.\n\nRatmogrified enemies retain their original stats, but do not have any abilities.
actors.hero.abilities.ratmogrify$transmograt.name=ratmogrified %s
actors.hero.abilities.ratmogrify$transmograt.desc=This enemy has been transformed into a rat. A big improvement, if you ask me! - Rat King
@ -741,9 +741,9 @@ actors.hero.talent.heroic_energy.title=heroic energy
actors.hero.talent.heroic_energy.desc=_+1:_ The hero's armor ability has a _13% reduced_ charge cost.\n\n_+2:_ The hero's armor ability has a _24% reduced_ charge cost.\n\n_+3:_ The hero's armor ability has a _34% reduced_ charge cost.\n\n_+4:_ The hero's armor ability has a _43% reduced_ charge cost
actors.hero.talent.ratsistance.title=ratsistance
actors.hero.talent.ratsistance.desc=_+1:_ Hostile ratmogrified enemies deal _-10% damage_.\n\n_+2:_ Hostile ratmogrified enemies deal _-20% damage_.\n\n_+3:_ Hostile ratmogrified enemies deal _-30% damage_.\n\n_+4:_ Hostile ratmogrified enemies deal _-40% damage_.
actors.hero.talent.ratsistance.desc=_+1:_ Hostile ratmogrified enemies deal _-10% damage_.\n\n_+2:_ Hostile ratmogrified enemies deal _-19% damage_.\n\n_+3:_ Hostile ratmogrified enemies deal _-27% damage_.\n\n_+4:_ Hostile ratmogrified enemies deal _-35% damage_.
actors.hero.talent.ratlomacy.title=ratlomacy
actors.hero.talent.ratlomacy.desc=_+1:_ Using ratmogrify on a ratmogrified enemy makes them permanently friendly.\n\n_+2:_ Using ratmogrify on a ratmogrified enemy makes them permanently friendly and gives them _2 turns_ of adrenaline.\n\n_+3:_ Using ratmogrify on a ratmogrified enemy makes them permanently friendly and gives them _4 turns_ of adrenaline.\n\n_+4:_ Using ratmogrify on a ratmogrified enemy makes them permanently friendly and gives them _6 turns_ of adrenaline.
actors.hero.talent.ratlomacy.desc=_+1:_ Using ratmogrify on a ratmogrified enemy makes them friendly and makes the transformation permanent.\n\n_+2:_ Using ratmogrify on a ratmogrified enemy makes them friendly, makes the transformation permanent, and gives them _2 turns_ of adrenaline.\n\n_+3:_ Using ratmogrify on a ratmogrified enemy makes them friendly, makes the transformation permanent, and gives them _4 turns_ of adrenaline.\n\n_+4:_ Using ratmogrify on a ratmogrified enemy makes them friendly, makes the transformation permanent, and gives them _6 turns_ of adrenaline.
actors.hero.talent.ratforcements.title=ratforcements
actors.hero.talent.ratforcements.desc=_+1:_ Using ratmogrify on yourself _spawns 1_ ally marsupial rat next to you.\n\n_+2:_ Using ratmogrify on yourself _spawns 2_ ally marsupial rats next to you.\n\n_+3:_ Using ratmogrify on yourself _spawns 3_ ally marsupial rats next to you.\n\n_+4:_ Using ratmogrify on yourself _spawns 4_ ally marsupial rats next to you.

View File

@ -82,6 +82,10 @@ public abstract class Actor implements Bundlable {
public float cooldown() {
return time - now;
}
public void clearTime() {
time = 0;
}
protected void diactivate() {
time = Float.MAX_VALUE;

View File

@ -13,6 +13,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Rat;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@ -132,8 +133,6 @@ public class Ratmogrify extends ArmorAbility {
{
spriteClass = RatSprite.class;
maxLvl = -2;
}
private Mob original;
@ -148,6 +147,7 @@ public class Ratmogrify extends ArmorAbility {
defenseSkill = original.defenseSkill;
EXP = original.EXP;
maxLvl = original.maxLvl;
if (original.state == original.SLEEPING) {
state = SLEEPING;
@ -159,9 +159,36 @@ public class Ratmogrify extends ArmorAbility {
}
private float timeLeft = 6f;
@Override
protected boolean act() {
if (timeLeft <= 0){
original.HP = HP;
original.pos = pos;
original.clearTime();
GameScene.add(original);
destroy();
sprite.killAndErase();
CellEmitter.get(original.pos).burst(Speck.factory(Speck.WOOL), 4);
Sample.INSTANCE.play(Assets.Sounds.PUFF);
return true;
} else {
return super.act();
}
}
@Override
protected void spend(float time) {
if (!allied) timeLeft -= time;
super.spend(time);
}
public void makeAlly() {
allied = true;
alignment = Alignment.ALLY;
timeLeft = Float.POSITIVE_INFINITY;
}
public int attackSkill(Char target) {
@ -176,7 +203,7 @@ public class Ratmogrify extends ArmorAbility {
public int damageRoll() {
int damage = original.damageRoll();
if (!allied && Dungeon.hero.hasTalent(Talent.RATSISTANCE)){
damage = Math.round(damage * (1f - .1f*Dungeon.hero.pointsInTalent(Talent.RATSISTANCE)));
damage *= Math.pow(0.9f, Dungeon.hero.pointsInTalent(Talent.RATSISTANCE));
}
return damage;
}
@ -186,6 +213,11 @@ public class Ratmogrify extends ArmorAbility {
return original.attackDelay();
}
@Override
public void rollToDropLoot() {
original.rollToDropLoot();
}
@Override
public String name() {
return Messages.get(this, "name", original.name());