v3.2.1: thrown weapon balance tweaks:

- thrown clubs and hammers and now be grabbed instantly
- kunai durability up to 8 from 5
- fixed kunai dmg scaling being 1-2 when it should be 1-3
- bolas cripple down to 5 turns from 10
- boomerang dmg scaling down to 1-3 from 1-4
- boomerang circle back delay up to 4 from 3
- force cube base damage up to 5-25 from 5-20
This commit is contained in:
Evan Debenham
2025-08-13 16:09:42 -04:00
parent 45304242ce
commit b61c2f31a7
7 changed files with 29 additions and 13 deletions

View File

@@ -2201,9 +2201,11 @@ items.weapon.missiles.shuriken$shurikeninstanttracker.name=Shuriken Cooldown
items.weapon.missiles.shuriken$shurikeninstanttracker.desc=You have recently thrown a shuriken instantly, and must wait before doing it again. Shurikens can still be thrown, but at normal weapon speed.\n\nTurns Remaining: %s.
items.weapon.missiles.throwingclub.name=throwing club
items.weapon.missiles.throwingclub.stats_desc=This weapon doesn't stick to enemies and can be collected instantly.
items.weapon.missiles.throwingclub.desc=A fairly simple but durable thrown weapon, essentially a large rock fastened to a stick.
items.weapon.missiles.throwinghammer.name=throwing hammer
items.weapon.missiles.throwinghammer.stats_desc=This weapon doesn't stick to enemies and can be collected instantly.
items.weapon.missiles.throwinghammer.desc=These hefty hammers are designed to be thrown at an enemy. Their smooth all-metal construction means they are quite durable.
items.weapon.missiles.throwingknife.name=throwing knife

View File

@@ -46,7 +46,7 @@ public class Bolas extends MissileWeapon {
@Override
public int proc( Char attacker, Char defender, int damage ) {
Buff.prolong( defender, Cripple.class, Cripple.DURATION );
Buff.prolong( defender, Cripple.class, Cripple.DURATION/2 );
return super.proc( attacker, defender, damage );
}
}

View File

@@ -47,12 +47,6 @@ public class ForceCube extends MissileWeapon {
sticky = false;
}
@Override
public int max(int lvl) {
return 4 * tier + //20 base, down from 25
(tier) * lvl; //scaling unchanged
}
@Override
public void hitSound(float pitch) {
//no hitsound as it never hits enemies directly

View File

@@ -48,7 +48,7 @@ public class HeavyBoomerang extends MissileWeapon {
@Override
public int max(int lvl) {
return 4 * tier + //16 base, down from 20
(tier) * lvl; //scaling unchanged
(tier-1) * lvl; //3 scaling, down from 4
}
boolean circleBackhit = false;
@@ -96,7 +96,7 @@ public class HeavyBoomerang extends MissileWeapon {
this.returnPos = returnPos;
this.returnDepth = returnDepth;
this.returnBranch = returnBranch;
left = 3;
left = 4;
}
public int returnPos(){

View File

@@ -35,13 +35,13 @@ public class Kunai extends MissileWeapon {
hitSoundPitch = 1.1f;
tier = 3;
baseUses = 5;
baseUses = 8;
}
@Override
public int max(int lvl) {
return 4 * tier + //12 base, down from 15
(tier-1)*lvl; //scaling unchanged
tier*lvl; //scaling unchanged
}
@Override

View File

@@ -22,6 +22,7 @@
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
public class ThrowingClub extends MissileWeapon {
@@ -36,6 +37,15 @@ public class ThrowingClub extends MissileWeapon {
sticky = false;
}
@Override
public boolean doPickUp(Hero hero, int pos) {
if (super.doPickUp(hero, pos)){
hero.spendAndNext( -TIME_TO_PICK_UP );
return true;
}
return false;
}
@Override
public int max(int lvl) {
return 4 * tier + //8 base, down from 10

View File

@@ -22,6 +22,7 @@
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
public class ThrowingHammer extends MissileWeapon {
@@ -36,6 +37,15 @@ public class ThrowingHammer extends MissileWeapon {
sticky = false;
}
@Override
public boolean doPickUp(Hero hero, int pos) {
if (super.doPickUp(hero, pos)){
hero.spendAndNext( -TIME_TO_PICK_UP );
return true;
}
return false;
}
@Override
public int max(int lvl) {
return 4 * tier + //20 base, down from 25