v0.9.3: adjusted nature's power, now stacks additively with furor
This commit is contained in:
parent
86dd8bd810
commit
52b46ae266
|
@ -581,13 +581,13 @@ public class Hero extends Char {
|
||||||
|
|
||||||
if (belongings.weapon != null) {
|
if (belongings.weapon != null) {
|
||||||
|
|
||||||
return belongings.weapon.speedFactor( this );
|
return belongings.weapon.delayFactor( this );
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//Normally putting furor speed on unarmed attacks would be unnecessary
|
//Normally putting furor speed on unarmed attacks would be unnecessary
|
||||||
//But there's going to be that one guy who gets a furor+force ring combo
|
//But there's going to be that one guy who gets a furor+force ring combo
|
||||||
//This is for that one guy, you shall get your fists of fury!
|
//This is for that one guy, you shall get your fists of fury!
|
||||||
return RingOfFuror.attackDelayMultiplier(this);
|
return 1f/RingOfFuror.attackSpeedMultiplier(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ public class Statue extends Mob {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float attackDelay() {
|
public float attackDelay() {
|
||||||
return super.attackDelay()*weapon.speedFactor( this );
|
return super.attackDelay()*weapon.delayFactor( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -107,7 +107,7 @@ abstract public class KindOfWeapon extends EquipableItem {
|
||||||
return 1f;
|
return 1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float speedFactor( Char owner ) {
|
public float delayFactor(Char owner ) {
|
||||||
return 1f;
|
return 1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,11 +33,9 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Corruption;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Wraith;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Wraith;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.DirectableAlly;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.DirectableAlly;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Ghost;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Ghost;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.NPC;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShaftParticle;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShaftParticle;
|
||||||
|
@ -567,7 +565,7 @@ public class DriedRose extends Artifact {
|
||||||
public float attackDelay() {
|
public float attackDelay() {
|
||||||
float delay = super.attackDelay();
|
float delay = super.attackDelay();
|
||||||
if (rose != null && rose.weapon != null){
|
if (rose != null && rose.weapon != null){
|
||||||
delay *= rose.weapon.speedFactor(this);
|
delay *= rose.weapon.delayFactor(this);
|
||||||
}
|
}
|
||||||
return delay;
|
return delay;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,8 +46,8 @@ public class RingOfFuror extends Ring {
|
||||||
return new Furor();
|
return new Furor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float attackDelayMultiplier(Char target ){
|
public static float attackSpeedMultiplier(Char target ){
|
||||||
return 1f / (float)Math.pow(1.105, getBuffedBonus(target, Furor.class));
|
return (float)Math.pow(1.105, getBuffedBonus(target, Furor.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Furor extends RingBuff {
|
public class Furor extends RingBuff {
|
||||||
|
|
|
@ -238,28 +238,30 @@ public class SpiritBow extends Weapon {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float speedFactor(Char owner) {
|
protected float baseDelay(Char owner) {
|
||||||
if (sniperSpecial){
|
if (sniperSpecial){
|
||||||
switch (augment){
|
switch (augment){
|
||||||
case NONE: default:
|
case NONE: default:
|
||||||
return 0f;
|
return 0f;
|
||||||
case SPEED:
|
case SPEED:
|
||||||
return 1f * RingOfFuror.attackDelayMultiplier(owner);
|
return 1f * RingOfFuror.attackSpeedMultiplier(owner);
|
||||||
case DAMAGE:
|
case DAMAGE:
|
||||||
return 2f * RingOfFuror.attackDelayMultiplier(owner);
|
return 2f * RingOfFuror.attackSpeedMultiplier(owner);
|
||||||
}
|
}
|
||||||
} else{
|
} else{
|
||||||
|
return super.baseDelay(owner);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
float speed = super.speedFactor(owner);
|
@Override
|
||||||
|
protected float speedMultiplier(Char owner) {
|
||||||
|
float speed = super.speedMultiplier(owner);
|
||||||
if (owner.buff(NaturesPower.naturesPowerTracker.class) != null){
|
if (owner.buff(NaturesPower.naturesPowerTracker.class) != null){
|
||||||
// 1.33x speed to 1.5x speed, depending on talent points
|
// +33% speed to +50% speed, depending on talent points
|
||||||
speed /= ((32 + ((Hero)owner).pointsInTalent(Talent.GROWING_POWER)) / 24f);
|
speed += ((8 + ((Hero)owner).pointsInTalent(Talent.GROWING_POWER)) / 24f);
|
||||||
}
|
}
|
||||||
|
|
||||||
return speed;
|
return speed;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int level() {
|
public int level() {
|
||||||
|
@ -318,8 +320,8 @@ public class SpiritBow extends Weapon {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float speedFactor(Char user) {
|
public float delayFactor(Char user) {
|
||||||
return SpiritBow.this.speedFactor(user);
|
return SpiritBow.this.delayFactor(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -181,18 +181,24 @@ abstract public class Weapon extends KindOfWeapon {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float speedFactor( Char owner ) {
|
public float delayFactor( Char owner ) {
|
||||||
|
return baseDelay(owner) * (1f/speedMultiplier(owner));
|
||||||
int encumbrance = 0;
|
|
||||||
if (owner instanceof Hero) {
|
|
||||||
encumbrance = STRReq() - ((Hero)owner).STR();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
float DLY = augment.delayFactor(this.DLY);
|
protected float baseDelay( Char owner ){
|
||||||
|
float delay = augment.delayFactor(this.DLY);
|
||||||
|
if (owner instanceof Hero) {
|
||||||
|
int encumbrance = STRReq() - ((Hero)owner).STR();
|
||||||
|
if (encumbrance > 0){
|
||||||
|
delay *= Math.pow( 1.2, encumbrance );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DLY *= RingOfFuror.attackDelayMultiplier(owner);
|
return delay;
|
||||||
|
}
|
||||||
|
|
||||||
return (encumbrance > 0 ? (float)(DLY * Math.pow( 1.2, encumbrance )) : DLY);
|
protected float speedMultiplier(Char owner ){
|
||||||
|
return RingOfFuror.attackSpeedMultiplier(owner);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -235,7 +235,7 @@ abstract public class MissileWeapon extends Weapon {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float castDelay(Char user, int dst) {
|
public float castDelay(Char user, int dst) {
|
||||||
return speedFactor( user );
|
return delayFactor( user );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void rangedHit( Char enemy, int cell ){
|
protected void rangedHit( Char enemy, int cell ){
|
||||||
|
|
|
@ -44,8 +44,8 @@ public class Shuriken extends MissileWeapon {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float speedFactor(Char owner) {
|
public float delayFactor(Char owner) {
|
||||||
if (owner instanceof Hero && ((Hero) owner).justMoved) return 0;
|
if (owner instanceof Hero && ((Hero) owner).justMoved) return 0;
|
||||||
else return super.speedFactor(owner);
|
else return super.delayFactor(owner);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user