From 2a56271091b97a830ba128cd609928601f16eab7 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 3 Apr 2024 13:03:48 -0400 Subject: [PATCH] v2.4.0: created new methods for rolls that are for damage/blocking --- .../shatteredpixeldungeon/actors/Char.java | 12 +++++++++--- .../shatteredpixeldungeon/actors/buffs/Bleeding.java | 5 ++--- .../shatteredpixeldungeon/actors/buffs/Burning.java | 2 +- .../shatteredpixeldungeon/actors/buffs/HoldFast.java | 4 ++-- .../shatteredpixeldungeon/actors/hero/Hero.java | 4 ++-- .../hero/abilities/duelist/ElementalStrike.java | 4 ++-- .../actors/hero/abilities/huntress/SpiritHawk.java | 2 +- .../actors/hero/abilities/mage/ElementalBlast.java | 4 ++-- .../actors/hero/abilities/mage/WarpBeacon.java | 4 ++-- .../actors/hero/abilities/rogue/ShadowClone.java | 4 ++-- .../actors/hero/abilities/rogue/SmokeBomb.java | 5 ++--- .../actors/hero/abilities/warrior/HeroicLeap.java | 2 +- .../actors/hero/abilities/warrior/Shockwave.java | 2 +- .../actors/mobs/ArmoredStatue.java | 3 +-- .../shatteredpixeldungeon/actors/mobs/Bat.java | 5 ++--- .../shatteredpixeldungeon/actors/mobs/Bee.java | 2 +- .../shatteredpixeldungeon/actors/mobs/Brute.java | 7 +++---- .../shatteredpixeldungeon/actors/mobs/Crab.java | 5 ++--- .../actors/mobs/CrystalGuardian.java | 4 ++-- .../actors/mobs/CrystalSpire.java | 2 +- .../actors/mobs/CrystalWisp.java | 6 +++--- .../shatteredpixeldungeon/actors/mobs/DM100.java | 7 +++---- .../shatteredpixeldungeon/actors/mobs/DM200.java | 4 ++-- .../shatteredpixeldungeon/actors/mobs/DM201.java | 2 +- .../shatteredpixeldungeon/actors/mobs/DM300.java | 4 ++-- .../actors/mobs/DemonSpawner.java | 3 ++- .../shatteredpixeldungeon/actors/mobs/DwarfKing.java | 6 +++--- .../shatteredpixeldungeon/actors/mobs/Elemental.java | 12 ++++++------ .../shatteredpixeldungeon/actors/mobs/Eye.java | 6 +++--- .../shatteredpixeldungeon/actors/mobs/FetidRat.java | 2 +- .../actors/mobs/FungalSentry.java | 3 +-- .../shatteredpixeldungeon/actors/mobs/Ghoul.java | 4 ++-- .../shatteredpixeldungeon/actors/mobs/Gnoll.java | 5 ++--- .../actors/mobs/GnollGeomancer.java | 8 ++++---- .../actors/mobs/GnollGuard.java | 7 +++---- .../actors/mobs/GnollSapper.java | 4 ++-- .../shatteredpixeldungeon/actors/mobs/Golem.java | 4 ++-- .../shatteredpixeldungeon/actors/mobs/Goo.java | 6 +++--- .../shatteredpixeldungeon/actors/mobs/Guard.java | 5 ++--- .../shatteredpixeldungeon/actors/mobs/Mimic.java | 6 +++--- .../shatteredpixeldungeon/actors/mobs/Monk.java | 4 ++-- .../actors/mobs/Necromancer.java | 5 ++--- .../shatteredpixeldungeon/actors/mobs/Piranha.java | 4 ++-- .../shatteredpixeldungeon/actors/mobs/Pylon.java | 2 +- .../shatteredpixeldungeon/actors/mobs/Rat.java | 5 ++--- .../actors/mobs/RipperDemon.java | 4 ++-- .../shatteredpixeldungeon/actors/mobs/RotHeart.java | 3 +-- .../shatteredpixeldungeon/actors/mobs/RotLasher.java | 5 ++--- .../shatteredpixeldungeon/actors/mobs/Scorpio.java | 4 ++-- .../shatteredpixeldungeon/actors/mobs/Senior.java | 4 ++-- .../shatteredpixeldungeon/actors/mobs/Shaman.java | 6 +++--- .../shatteredpixeldungeon/actors/mobs/Skeleton.java | 7 +++---- .../shatteredpixeldungeon/actors/mobs/Slime.java | 3 +-- .../shatteredpixeldungeon/actors/mobs/Snake.java | 3 +-- .../actors/mobs/SpectralNecromancer.java | 2 +- .../shatteredpixeldungeon/actors/mobs/Spinner.java | 4 ++-- .../shatteredpixeldungeon/actors/mobs/Statue.java | 2 +- .../shatteredpixeldungeon/actors/mobs/Succubus.java | 4 ++-- .../shatteredpixeldungeon/actors/mobs/Swarm.java | 2 +- .../shatteredpixeldungeon/actors/mobs/Tengu.java | 6 +++--- .../shatteredpixeldungeon/actors/mobs/Thief.java | 4 ++-- .../actors/mobs/TormentedSpirit.java | 2 +- .../shatteredpixeldungeon/actors/mobs/Warlock.java | 6 +++--- .../shatteredpixeldungeon/actors/mobs/Wraith.java | 2 +- .../shatteredpixeldungeon/actors/mobs/YogDzewa.java | 8 ++++---- .../shatteredpixeldungeon/actors/mobs/YogFist.java | 10 +++++----- .../actors/mobs/npcs/MirrorImage.java | 3 +-- .../actors/mobs/npcs/PrismaticImage.java | 5 ++--- .../shatteredpixeldungeon/items/KindOfWeapon.java | 5 ++--- .../items/armor/glyphs/AntiMagic.java | 3 +-- .../items/artifacts/CapeOfThorns.java | 3 +-- .../items/artifacts/DriedRose.java | 6 +++--- .../items/bombs/ArcaneBomb.java | 3 +-- .../shatteredpixeldungeon/items/bombs/Bomb.java | 2 +- .../shatteredpixeldungeon/items/bombs/HolyBomb.java | 5 ++--- .../shatteredpixeldungeon/items/bombs/ShockBomb.java | 5 ++--- .../items/bombs/ShrapnelBomb.java | 3 +-- .../items/rings/RingOfForce.java | 5 ++--- .../items/wands/DamageWand.java | 4 ++-- .../items/wands/WandOfBlastWave.java | 2 +- .../items/wands/WandOfLivingEarth.java | 6 +++--- .../items/wands/WandOfTransfusion.java | 2 +- .../items/wands/WandOfWarding.java | 4 ++-- .../items/weapon/SpiritBow.java | 2 +- .../items/weapon/enchantments/Blazing.java | 2 +- .../items/weapon/melee/AssassinsBlade.java | 5 ++--- .../items/weapon/melee/Dagger.java | 5 ++--- .../items/weapon/melee/Dirk.java | 5 ++--- .../items/weapon/melee/MeleeWeapon.java | 3 +-- .../items/weapon/missiles/Kunai.java | 5 ++--- .../items/weapon/missiles/MissileWeapon.java | 2 +- .../items/weapon/missiles/ThrowingKnife.java | 5 ++--- .../items/weapon/missiles/darts/HolyDart.java | 3 +-- .../items/weapon/missiles/darts/ShockingDart.java | 3 +-- .../shatteredpixeldungeon/levels/CavesBossLevel.java | 2 +- .../shatteredpixeldungeon/levels/features/Chasm.java | 4 ++-- .../levels/rooms/special/SentryRoom.java | 2 +- .../levels/traps/DisintegrationTrap.java | 3 +-- .../levels/traps/GeyserTrap.java | 6 +++--- .../levels/traps/GnollRockfallTrap.java | 2 +- .../levels/traps/PoisonDartTrap.java | 4 ++-- .../levels/traps/RockfallTrap.java | 5 ++--- .../levels/traps/WornDartTrap.java | 4 ++-- 103 files changed, 202 insertions(+), 233 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java index 47b6fb30a..03c510685 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java @@ -153,7 +153,7 @@ public abstract class Char extends Actor { public boolean rooted = false; public boolean flying = false; public int invisible = 0; - + //these are relative to the hero public enum Alignment{ ENEMY, @@ -589,6 +589,12 @@ public abstract class Char extends Actor { return (acuRoll * accMulti) >= defRoll; } + + //used for damage and blocking calculations, normally just calls NormalIntRange + // but may be affected by things that specifically impact combat number ranges + public static int combatRoll(int min, int max ){ + return Random.NormalIntRange( min, max ); + } public int attackSkill( Char target ) { return 0; @@ -605,7 +611,7 @@ public abstract class Char extends Actor { public int drRoll() { int dr = 0; - dr += Random.NormalIntRange( 0 , Barkskin.currentLevel(this) ); + dr += combatRoll( 0 , Barkskin.currentLevel(this) ); return dr; } @@ -735,7 +741,7 @@ public abstract class Char extends Actor { //TODO improve this when I have proper damage source logic if (AntiMagic.RESISTS.contains(src.getClass()) && buff(ArcaneArmor.class) != null){ - dmg -= Random.NormalIntRange(0, buff(ArcaneArmor.class).level()); + dmg -= combatRoll(0, buff(ArcaneArmor.class).level()); if (dmg < 0) dmg = 0; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bleeding.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bleeding.java index b654fdc2e..77b505569 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bleeding.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bleeding.java @@ -21,8 +21,6 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; -import static com.watabou.utils.Random.NormalFloat; - import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.effects.Splash; @@ -35,6 +33,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.utils.Bundle; import com.watabou.utils.PointF; +import com.watabou.utils.Random; public class Bleeding extends Buff { @@ -94,7 +93,7 @@ public class Bleeding extends Buff { public boolean act() { if (target.isAlive()) { - level = NormalFloat(level / 2f, level); + level = Random.NormalFloat(level / 2f, level); int dmg = Math.round(level); if (dmg > 0) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Burning.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Burning.java index 3671b6291..99dfcd610 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Burning.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Burning.java @@ -91,7 +91,7 @@ public class Burning extends Buff implements Hero.Doom { if (target.isAlive() && !target.isImmune(getClass())) { - int damage = Random.NormalIntRange( 1, 3 + Dungeon.scalingDepth()/4 ); + int damage = Char.combatRoll( 1, 3 + Dungeon.scalingDepth()/4 ); Buff.detach( target, Chill.class); if (target instanceof Hero && target.buff(TimekeepersHourglass.timeStasis.class) == null) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HoldFast.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HoldFast.java index 0d4867d0e..f8e0bfad1 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HoldFast.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HoldFast.java @@ -22,13 +22,13 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.watabou.noosa.Image; import com.watabou.utils.Bundle; -import com.watabou.utils.Random; public class HoldFast extends Buff { @@ -50,7 +50,7 @@ public class HoldFast extends Buff { public int armorBonus(){ if (pos == target.pos && target instanceof Hero){ - return Random.NormalIntRange(0, 2* ((Hero) target).pointsInTalent(Talent.HOLD_FAST)); + return Char.combatRoll(0, 2* ((Hero) target).pointsInTalent(Talent.HOLD_FAST)); } else { detach(); return 0; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index 9cbcde7d3..b6ebd3121 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -562,14 +562,14 @@ public class Hero extends Char { int dr = super.drRoll(); if (belongings.armor() != null) { - int armDr = Random.NormalIntRange( belongings.armor().DRMin(), belongings.armor().DRMax()); + int armDr = Char.combatRoll( belongings.armor().DRMin(), belongings.armor().DRMax()); if (STR() < belongings.armor().STRReq()){ armDr -= 2*(belongings.armor().STRReq() - STR()); } if (armDr > 0) dr += armDr; } if (belongings.weapon() != null && !RingOfForce.fightingUnarmed(this)) { - int wepDr = Random.NormalIntRange( 0 , belongings.weapon().defenseFactor( this ) ); + int wepDr = Char.combatRoll( 0 , belongings.weapon().defenseFactor( this ) ); if (STR() < ((Weapon)belongings.weapon()).STRReq()){ wepDr -= 2*(((Weapon)belongings.weapon()).STRReq() - STR()); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/ElementalStrike.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/ElementalStrike.java index e5c544857..a71eadc0a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/ElementalStrike.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/ElementalStrike.java @@ -370,7 +370,7 @@ public class ElementalStrike extends ArmorAbility { //*** no enchantment *** if (ench == null) { for (Char ch : affected){ - ch.damage(Math.round(powerMulti*Random.NormalIntRange(6, 12)), ElementalStrike.this); + ch.damage(Math.round(powerMulti* Char.combatRoll(6, 12)), ElementalStrike.this); } //*** Kinetic *** @@ -538,7 +538,7 @@ public class ElementalStrike extends ArmorAbility { } else if (ench instanceof Polarized){ for (Char ch : affected){ if (Random.Float() < 0.5f*powerMulti){ - ch.damage(Random.NormalIntRange(24, 36), ElementalStrike.this); + ch.damage(Char.combatRoll(24, 36), ElementalStrike.this); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/huntress/SpiritHawk.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/huntress/SpiritHawk.java index ecf0acdd5..32022c72a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/huntress/SpiritHawk.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/huntress/SpiritHawk.java @@ -177,7 +177,7 @@ public class SpiritHawk extends ArmorAbility { @Override public int damageRoll() { - return Random.NormalIntRange(5, 10); + return Char.combatRoll(5, 10); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/mage/ElementalBlast.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/mage/ElementalBlast.java index 89339a8e3..8053da5f8 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/mage/ElementalBlast.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/mage/ElementalBlast.java @@ -267,7 +267,7 @@ public class ElementalBlast extends ArmorAbility { //### Deal damage ### Char mob = Actor.findChar(cell); - int damage = Math.round(Random.NormalIntRange(15, 25) + int damage = Math.round(Char.combatRoll(15, 25) * effectMulti * damageFactors.get(finalWandCls)); @@ -359,7 +359,7 @@ public class ElementalBlast extends ArmorAbility { charm.ignoreHeroAllies = true; mob.sprite.centerEmitter().start(Speck.factory(Speck.HEART), 0.2f, 3); } else { - damage = Math.round(Random.NormalIntRange(15, 25) * effectMulti); + damage = Math.round(Char.combatRoll(15, 25) * effectMulti); mob.damage(damage, Reflection.newInstance(finalWandCls)); mob.sprite.emitter().start(ShadowParticle.UP, 0.05f, 10); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/mage/WarpBeacon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/mage/WarpBeacon.java index ecfdc4bc7..3b884090b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/mage/WarpBeacon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/mage/WarpBeacon.java @@ -41,13 +41,13 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.InterlevelScene; import com.shatteredpixel.shatteredpixeldungeon.ui.AttackIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon; -import com.watabou.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions; import com.watabou.noosa.Game; import com.watabou.noosa.Image; import com.watabou.noosa.audio.Sample; import com.watabou.noosa.particles.Emitter; +import com.watabou.utils.BArray; import com.watabou.utils.Bundle; import com.watabou.utils.PathFinder; import com.watabou.utils.Random; @@ -123,7 +123,7 @@ public class WarpBeacon extends ArmorAbility { int heroDmg = 5 * hero.pointsInTalent(Talent.TELEFRAG); hero.damage(Math.min(heroDmg, heroHP-1), WarpBeacon.this); - int damage = Random.NormalIntRange(10*hero.pointsInTalent(Talent.TELEFRAG), 15*hero.pointsInTalent(Talent.TELEFRAG)); + int damage = Char.combatRoll(10*hero.pointsInTalent(Talent.TELEFRAG), 15*hero.pointsInTalent(Talent.TELEFRAG)); existing.sprite.flash(); existing.sprite.bloodBurstA(existing.sprite.center(), damage); existing.damage(damage, WarpBeacon.this); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/rogue/ShadowClone.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/rogue/ShadowClone.java index e57501c48..54d98d411 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/rogue/ShadowClone.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/rogue/ShadowClone.java @@ -43,12 +43,12 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.MobSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon; -import com.watabou.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.TextureFilm; import com.watabou.noosa.audio.Sample; import com.watabou.noosa.particles.Emitter; import com.watabou.noosa.tweeners.Tweener; +import com.watabou.utils.BArray; import com.watabou.utils.Bundle; import com.watabou.utils.PathFinder; import com.watabou.utils.Random; @@ -205,7 +205,7 @@ public class ShadowClone extends ArmorAbility { @Override public int damageRoll() { - int damage = Random.NormalIntRange(10, 20); + int damage = Char.combatRoll(10, 20); int heroDamage = Dungeon.hero.damageRoll(); heroDamage /= Dungeon.hero.attackDelay(); //normalize hero damage based on atk speed heroDamage = Math.round(0.08f * Dungeon.hero.pointsInTalent(Talent.SHADOW_BLADE) * heroDamage); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/rogue/SmokeBomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/rogue/SmokeBomb.java index 984d2e1d0..ddf144728 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/rogue/SmokeBomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/rogue/SmokeBomb.java @@ -50,12 +50,11 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.MobSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon; -import com.watabou.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.TextureFilm; import com.watabou.noosa.audio.Sample; +import com.watabou.utils.BArray; import com.watabou.utils.PathFinder; -import com.watabou.utils.Random; public class SmokeBomb extends ArmorAbility { @@ -179,7 +178,7 @@ public class SmokeBomb extends ArmorAbility { public int drRoll() { int dr = super.drRoll(); - dr += Random.NormalIntRange(Dungeon.hero.pointsInTalent(Talent.BODY_REPLACEMENT), + dr += Char.combatRoll(Dungeon.hero.pointsInTalent(Talent.BODY_REPLACEMENT), 3*Dungeon.hero.pointsInTalent(Talent.BODY_REPLACEMENT)); return dr; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/HeroicLeap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/HeroicLeap.java index c6a93cb2a..df9286a28 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/HeroicLeap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/HeroicLeap.java @@ -99,7 +99,7 @@ public class HeroicLeap extends ArmorAbility { Char mob = Actor.findChar(hero.pos + i); if (mob != null && mob != hero && mob.alignment != Char.Alignment.ALLY) { if (hero.hasTalent(Talent.BODY_SLAM)){ - int damage = Random.NormalIntRange(hero.pointsInTalent(Talent.BODY_SLAM), 4*hero.pointsInTalent(Talent.BODY_SLAM)); + int damage = Char.combatRoll(hero.pointsInTalent(Talent.BODY_SLAM), 4*hero.pointsInTalent(Talent.BODY_SLAM)); damage += Math.round(hero.drRoll()*0.25f*hero.pointsInTalent(Talent.BODY_SLAM)); damage -= mob.drRoll(); mob.damage(damage, hero); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/Shockwave.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/Shockwave.java index 777fbf7aa..9405587dd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/Shockwave.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/Shockwave.java @@ -114,7 +114,7 @@ public class Shockwave extends ArmorAbility { Char ch = Actor.findChar(cell); if (ch != null && ch.alignment != hero.alignment){ int scalingStr = hero.STR()-10; - int damage = Random.NormalIntRange(5 + scalingStr, 10 + 2*scalingStr); + int damage = Char.combatRoll(5 + scalingStr, 10 + 2*scalingStr); damage = Math.round(damage * (1f + 0.2f*hero.pointsInTalent(Talent.SHOCK_FORCE))); damage -= ch.drRoll(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/ArmoredStatue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/ArmoredStatue.java index 1cb53948b..c138684fc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/ArmoredStatue.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/ArmoredStatue.java @@ -33,7 +33,6 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.StatueSprite; import com.watabou.utils.Bundle; -import com.watabou.utils.Random; public class ArmoredStatue extends Statue { @@ -75,7 +74,7 @@ public class ArmoredStatue extends Statue { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange( armor.DRMin(), armor.DRMax()); + return super.drRoll() + Char.combatRoll( armor.DRMin(), armor.DRMax()); } //used in some glyph calculations diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bat.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bat.java index 95bda1d13..f45d3d336 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bat.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bat.java @@ -28,7 +28,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing; import com.shatteredpixel.shatteredpixeldungeon.sprites.BatSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; -import com.watabou.utils.Random; public class Bat extends Mob { @@ -50,7 +49,7 @@ public class Bat extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 5, 18 ); + return Char.combatRoll( 5, 18 ); } @Override @@ -60,7 +59,7 @@ public class Bat extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 4); + return super.drRoll() + Char.combatRoll(0, 4); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java index de764fb98..ab273a7fd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java @@ -111,7 +111,7 @@ public class Bee extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( HT / 10, HT / 4 ); + return Char.combatRoll( HT / 10, HT / 4 ); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Brute.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Brute.java index cc89cda43..c307b5304 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Brute.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Brute.java @@ -36,7 +36,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.BruteSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.watabou.utils.Bundle; -import com.watabou.utils.Random; public class Brute extends Mob { @@ -58,8 +57,8 @@ public class Brute extends Mob { @Override public int damageRoll() { return buff(BruteRage.class) != null ? - Random.NormalIntRange( 15, 40 ) : - Random.NormalIntRange( 5, 25 ); + Char.combatRoll( 15, 40 ) : + Char.combatRoll( 5, 25 ); } @Override @@ -69,7 +68,7 @@ public class Brute extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 8); + return super.drRoll() + Char.combatRoll(0, 8); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Crab.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Crab.java index 79941425c..28bcec1f8 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Crab.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Crab.java @@ -24,7 +24,6 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.items.food.MysteryMeat; import com.shatteredpixel.shatteredpixeldungeon.sprites.CrabSprite; -import com.watabou.utils.Random; public class Crab extends Mob { @@ -44,7 +43,7 @@ public class Crab extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 1, 7 ); + return Char.combatRoll( 1, 7 ); } @Override @@ -54,6 +53,6 @@ public class Crab extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 4); + return super.drRoll() + Char.combatRoll(0, 4); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalGuardian.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalGuardian.java index 6eb9cf6ed..7e1f51977 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalGuardian.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalGuardian.java @@ -84,7 +84,7 @@ public class CrystalGuardian extends Mob{ @Override public int damageRoll() { - return Random.NormalIntRange( 10, 16 ); + return Char.combatRoll( 10, 16 ); } @Override @@ -106,7 +106,7 @@ public class CrystalGuardian extends Mob{ @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 10); + return super.drRoll() + Char.combatRoll(0, 10); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalSpire.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalSpire.java index ac8fc67c1..8b76e55a4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalSpire.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalSpire.java @@ -126,7 +126,7 @@ public class CrystalSpire extends Mob { Char ch = Actor.findChar(i); if (ch != null && !(ch instanceof CrystalWisp || ch instanceof CrystalSpire)){ - int dmg = Random.NormalIntRange(6, 15); + int dmg = Char.combatRoll(6, 15); //guardians are hit harder by the attack if (ch instanceof CrystalGuardian) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalWisp.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalWisp.java index f84cb1333..fc4d147dc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalWisp.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalWisp.java @@ -75,7 +75,7 @@ public class CrystalWisp extends Mob{ @Override public int damageRoll() { - return Random.NormalIntRange( 5, 10 ); + return Char.combatRoll( 5, 10 ); } @Override @@ -85,7 +85,7 @@ public class CrystalWisp extends Mob{ @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 5); + return super.drRoll() + Char.combatRoll(0, 5); } @Override @@ -123,7 +123,7 @@ public class CrystalWisp extends Mob{ Char enemy = this.enemy; if (hit( this, enemy, true )) { - int dmg = Random.NormalIntRange( 5, 10 ); + int dmg = Char.combatRoll( 5, 10 ); enemy.damage( dmg, new LightBeam() ); if (!enemy.isAlive() && enemy == Dungeon.hero) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM100.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM100.java index b99c05603..0b9e9c6e0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM100.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM100.java @@ -35,7 +35,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.DM100Sprite; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.utils.Callback; -import com.watabou.utils.Random; public class DM100 extends Mob implements Callback { @@ -59,7 +58,7 @@ public class DM100 extends Mob implements Callback { @Override public int damageRoll() { - return Random.NormalIntRange( 2, 8 ); + return Char.combatRoll( 2, 8 ); } @Override @@ -69,7 +68,7 @@ public class DM100 extends Mob implements Callback { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 4); + return super.drRoll() + Char.combatRoll(0, 4); } @Override @@ -95,7 +94,7 @@ public class DM100 extends Mob implements Callback { Invisibility.dispel(this); if (hit( this, enemy, true )) { - int dmg = Random.NormalIntRange(3, 10); + int dmg = Char.combatRoll(3, 10); dmg = Math.round(dmg * AscensionChallenge.statModifier(this)); enemy.damage( dmg, new LightningBolt() ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM200.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM200.java index 4a7f31c6d..142c7018f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM200.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM200.java @@ -57,7 +57,7 @@ public class DM200 extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 10, 25 ); + return Char.combatRoll( 10, 25 ); } @Override @@ -67,7 +67,7 @@ public class DM200 extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 8); + return super.drRoll() + Char.combatRoll(0, 8); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM201.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM201.java index 8462f91a9..0bf8c9e03 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM201.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM201.java @@ -45,7 +45,7 @@ public class DM201 extends DM200 { @Override public int damageRoll() { - return Random.NormalIntRange( 15, 25 ); + return Char.combatRoll( 15, 25 ); } private boolean threatened = false; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM300.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM300.java index 7959d7393..fd368a23d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM300.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM300.java @@ -91,7 +91,7 @@ public class DM300 extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 15, 25 ); + return Char.combatRoll( 15, 25 ); } @Override @@ -101,7 +101,7 @@ public class DM300 extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 10); + return super.drRoll() + Char.combatRoll(0, 10); } public int pylonsActivated = 0; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DemonSpawner.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DemonSpawner.java index 07f888329..7ef82f643 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DemonSpawner.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DemonSpawner.java @@ -24,6 +24,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Statistics; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AscensionChallenge; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Dread; @@ -67,7 +68,7 @@ public class DemonSpawner extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 12); + return super.drRoll() + Char.combatRoll(0, 12); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DwarfKing.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DwarfKing.java index 159e5220c..05ecfb1cb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DwarfKing.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DwarfKing.java @@ -89,7 +89,7 @@ public class DwarfKing extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 15, 25 ); + return Char.combatRoll( 15, 25 ); } @Override @@ -99,7 +99,7 @@ public class DwarfKing extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 10); + return super.drRoll() + Char.combatRoll(0, 10); } private int phase = 1; @@ -686,7 +686,7 @@ public class DwarfKing extends Mob { } } else { Char ch = Actor.findChar(pos); - ch.damage(Random.NormalIntRange(20, 40), this); + ch.damage(Char.combatRoll(20, 40), this); if (((DwarfKing)target).phase == 2){ if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)){ target.damage(target.HT/18, new KingDamager()); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java index 27467a3e0..f51c32ae1 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java @@ -81,10 +81,10 @@ public abstract class Elemental extends Mob { @Override public int damageRoll() { if (!summonedALly) { - return Random.NormalIntRange(20, 25); + return Char.combatRoll(20, 25); } else { int regionScale = Math.max(2, (1 + Dungeon.scalingDepth()/5)); - return Random.NormalIntRange(5*regionScale, 5 + 5*regionScale); + return Char.combatRoll(5*regionScale, 5 + 5*regionScale); } } @@ -108,10 +108,10 @@ public abstract class Elemental extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 5); + return super.drRoll() + Char.combatRoll(0, 5); } - protected int rangedCooldown = Random.NormalIntRange( 3, 5 ); + protected int rangedCooldown = Char.combatRoll( 3, 5 ); @Override protected boolean act() { @@ -183,7 +183,7 @@ public abstract class Elemental extends Mob { @Override public boolean add( Buff buff ) { if (harmfulBuffs.contains( buff.getClass() )) { - damage( Random.NormalIntRange( HT/2, HT * 3/5 ), buff ); + damage( Char.combatRoll( HT/2, HT * 3/5 ), buff ); return false; } else { return super.add( buff ); @@ -384,7 +384,7 @@ public abstract class Elemental extends Mob { @Override public int damageRoll() { if (!summonedALly) { - return Random.NormalIntRange(10, 12); + return combatRoll(10, 12); } else { return super.damageRoll(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java index a425c85d5..9ec64640d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java @@ -69,7 +69,7 @@ public class Eye extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange(20, 30); + return Char.combatRoll(20, 30); } @Override @@ -79,7 +79,7 @@ public class Eye extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 10); + return super.drRoll() + Char.combatRoll(0, 10); } private Ballistica beam; @@ -184,7 +184,7 @@ public class Eye extends Mob { } if (hit( this, ch, true )) { - int dmg = Random.NormalIntRange( 30, 50 ); + int dmg = Char.combatRoll( 30, 50 ); dmg = Math.round(dmg * AscensionChallenge.statModifier(this)); ch.damage( dmg, new DeathGaze() ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FetidRat.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FetidRat.java index 74b8124d5..9bc675f79 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FetidRat.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FetidRat.java @@ -57,7 +57,7 @@ public class FetidRat extends Rat { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 2); + return super.drRoll() + Char.combatRoll(0, 2); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FungalSentry.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FungalSentry.java index 061d75641..2a0ea3d28 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FungalSentry.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FungalSentry.java @@ -27,7 +27,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.sprites.FungalSentrySprite; -import com.watabou.utils.Random; public class FungalSentry extends Mob { @@ -68,7 +67,7 @@ public class FungalSentry extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange(5, 10); + return Char.combatRoll(5, 10); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Ghoul.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Ghoul.java index 05b346869..3e4b241ed 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Ghoul.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Ghoul.java @@ -65,7 +65,7 @@ public class Ghoul extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 16, 22 ); + return Char.combatRoll( 16, 22 ); } @Override @@ -75,7 +75,7 @@ public class Ghoul extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 4); + return super.drRoll() + Char.combatRoll(0, 4); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Gnoll.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Gnoll.java index b11760143..485dd0143 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Gnoll.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Gnoll.java @@ -24,7 +24,6 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.items.Gold; import com.shatteredpixel.shatteredpixeldungeon.sprites.GnollSprite; -import com.watabou.utils.Random; public class Gnoll extends Mob { @@ -43,7 +42,7 @@ public class Gnoll extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 1, 6 ); + return Char.combatRoll( 1, 6 ); } @Override @@ -53,6 +52,6 @@ public class Gnoll extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 2); + return super.drRoll() + Char.combatRoll(0, 2); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGeomancer.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGeomancer.java index 42cc06a97..84a678592 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGeomancer.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGeomancer.java @@ -137,7 +137,7 @@ public class GnollGeomancer extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 3, 6 ); + return Char.combatRoll( 3, 6 ); } @Override @@ -147,7 +147,7 @@ public class GnollGeomancer extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 6); + return super.drRoll() + Char.combatRoll(0, 6); } @Override @@ -692,7 +692,7 @@ public class GnollGeomancer extends Mob { } if (ch != null && !(ch instanceof GnollGeomancer)){ - ch.damage(Random.NormalIntRange(6, 12), new GnollGeomancer.Boulder()); + ch.damage(Char.combatRoll(6, 12), new GnollGeomancer.Boulder()); if (ch.isAlive()){ Buff.prolong( ch, Paralysis.class, ch instanceof GnollGuard ? 10 : 3 ); @@ -795,7 +795,7 @@ public class GnollGeomancer extends Mob { @Override public void affectChar(Char ch) { - ch.damage(Random.NormalIntRange(6, 12), this); + ch.damage(Char.combatRoll(6, 12), this); if (ch.isAlive()) { Buff.prolong(ch, Paralysis.class, ch instanceof GnollGuard ? 10 : 3); } else if (ch == Dungeon.hero){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGuard.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGuard.java index 5238b182e..80fb369c4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGuard.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGuard.java @@ -30,7 +30,6 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.GnollGuardSprite; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.utils.Bundle; -import com.watabou.utils.Random; public class GnollGuard extends Mob { @@ -82,9 +81,9 @@ public class GnollGuard extends Mob { @Override public int damageRoll() { if (enemy != null && !Dungeon.level.adjacent(pos, enemy.pos)){ - return Random.NormalIntRange( 16, 22 ); + return Char.combatRoll( 16, 22 ); } else { - return Random.NormalIntRange( 6, 12 ); + return Char.combatRoll( 6, 12 ); } } @@ -104,7 +103,7 @@ public class GnollGuard extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 6); + return super.drRoll() + Char.combatRoll(0, 6); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollSapper.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollSapper.java index 7659e0f95..550af74f6 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollSapper.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollSapper.java @@ -96,7 +96,7 @@ public class GnollSapper extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 1, 6 ); + return Char.combatRoll( 1, 6 ); } @Override @@ -112,7 +112,7 @@ public class GnollSapper extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 6); + return super.drRoll() + Char.combatRoll(0, 6); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java index 0c2e1dee0..1ce8cf912 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java @@ -60,7 +60,7 @@ public class Golem extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 25, 30 ); + return Char.combatRoll( 25, 30 ); } @Override @@ -70,7 +70,7 @@ public class Golem extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 12); + return super.drRoll() + Char.combatRoll(0, 12); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java index c8ebeeca5..fb8637053 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java @@ -74,9 +74,9 @@ public class Goo extends Mob { Statistics.qualifiedForBossChallengeBadge = false; Statistics.bossScores[0] -= 100; } - return Random.NormalIntRange( min*3, max*3 ); + return Char.combatRoll( min*3, max*3 ); } else { - return Random.NormalIntRange( min, max ); + return Char.combatRoll( min, max ); } } @@ -95,7 +95,7 @@ public class Goo extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 2); + return super.drRoll() + Char.combatRoll(0, 2); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Guard.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Guard.java index fe1b8625f..d2af73c20 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Guard.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Guard.java @@ -38,7 +38,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.GuardSprite; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.Callback; -import com.watabou.utils.Random; public class Guard extends Mob { @@ -64,7 +63,7 @@ public class Guard extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange(4, 12); + return Char.combatRoll(4, 12); } private boolean chain(int target){ @@ -137,7 +136,7 @@ public class Guard extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 7); + return super.drRoll() + Char.combatRoll(0, 7); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mimic.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mimic.java index 55eb5768e..f805be5b7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mimic.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mimic.java @@ -213,15 +213,15 @@ public class Mimic extends Mob { @Override public int damageRoll() { if (alignment == Alignment.NEUTRAL){ - return Random.NormalIntRange( 2 + 2*level, 2 + 2*level); + return Char.combatRoll( 2 + 2*level, 2 + 2*level); } else { - return Random.NormalIntRange( 1 + level, 2 + 2*level); + return Char.combatRoll( 1 + level, 2 + 2*level); } } @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 1 + level/2); + return super.drRoll() + Char.combatRoll(0, 1 + level/2); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Monk.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Monk.java index 5665b7311..1604fc829 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Monk.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Monk.java @@ -53,7 +53,7 @@ public class Monk extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 12, 25 ); + return Char.combatRoll( 12, 25 ); } @Override @@ -68,7 +68,7 @@ public class Monk extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 2); + return super.drRoll() + Char.combatRoll(0, 2); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Necromancer.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Necromancer.java index 44447c925..3490e4b58 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Necromancer.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Necromancer.java @@ -44,7 +44,6 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.utils.BArray; import com.watabou.utils.Bundle; import com.watabou.utils.PathFinder; -import com.watabou.utils.Random; public class Necromancer extends Mob { @@ -84,7 +83,7 @@ public class Necromancer extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 5); + return super.drRoll() + Char.combatRoll(0, 5); } @Override @@ -216,7 +215,7 @@ public class Necromancer extends Mob { Char blocker = Actor.findChar(summoningPos); if (blocker.alignment != alignment){ - blocker.damage( Random.NormalIntRange(2, 10), new SummoningBlockDamage() ); + blocker.damage( Char.combatRoll(2, 10), new SummoningBlockDamage() ); if (blocker == Dungeon.hero && !blocker.isAlive()){ Badges.validateDeathFromEnemyMagic(); Dungeon.fail(this); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Piranha.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Piranha.java index 1bc33cc8b..46d8870f8 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Piranha.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Piranha.java @@ -76,7 +76,7 @@ public class Piranha extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( Dungeon.depth, 4 + Dungeon.depth * 2 ); + return Char.combatRoll( Dungeon.depth, 4 + Dungeon.depth * 2 ); } @Override @@ -86,7 +86,7 @@ public class Piranha extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, Dungeon.depth); + return super.drRoll() + Char.combatRoll(0, Dungeon.depth); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Pylon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Pylon.java index 3d138ad5e..b26e5d07a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Pylon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Pylon.java @@ -140,7 +140,7 @@ public class Pylon extends Mob { private void shockChar( Char ch ){ if (ch != null && !(ch instanceof DM300)){ ch.sprite.flash(); - ch.damage(Random.NormalIntRange(10, 20), new Electricity()); + ch.damage(Char.combatRoll(10, 20), new Electricity()); if (ch == Dungeon.hero) { Statistics.qualifiedForBossChallengeBadge = false; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Rat.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Rat.java index 5da456212..cd84a9dc0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Rat.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Rat.java @@ -26,7 +26,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.Ratmogrify; import com.shatteredpixel.shatteredpixeldungeon.sprites.RatSprite; import com.watabou.utils.Bundle; -import com.watabou.utils.Random; public class Rat extends Mob { @@ -50,7 +49,7 @@ public class Rat extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 1, 4 ); + return Char.combatRoll( 1, 4 ); } @Override @@ -60,7 +59,7 @@ public class Rat extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 1); + return super.drRoll() + Char.combatRoll(0, 1); } private static final String RAT_ALLY = "rat_ally"; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RipperDemon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RipperDemon.java index 9befbca1b..6d5ab86d3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RipperDemon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RipperDemon.java @@ -69,7 +69,7 @@ public class RipperDemon extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 15, 25 ); + return Char.combatRoll( 15, 25 ); } @Override @@ -84,7 +84,7 @@ public class RipperDemon extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 4); + return super.drRoll() + Char.combatRoll(0, 4); } private static final String LAST_ENEMY_POS = "last_enemy_pos"; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotHeart.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotHeart.java index e388c88a0..0d9f37414 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotHeart.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotHeart.java @@ -37,7 +37,6 @@ import com.shatteredpixel.shatteredpixeldungeon.plants.Rotberry; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.RotHeartSprite; import com.watabou.utils.PathFinder; -import com.watabou.utils.Random; public class RotHeart extends Mob { @@ -131,7 +130,7 @@ public class RotHeart extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 5); + return super.drRoll() + Char.combatRoll(0, 5); } { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotLasher.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotLasher.java index a5689eeef..6ef77daf5 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotLasher.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotLasher.java @@ -31,7 +31,6 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.FloatingText; import com.shatteredpixel.shatteredpixeldungeon.items.Generator; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.RotLasherSprite; -import com.watabou.utils.Random; public class RotLasher extends Mob { @@ -96,7 +95,7 @@ public class RotLasher extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange(10, 20); + return Char.combatRoll(10, 20); } @Override @@ -106,7 +105,7 @@ public class RotLasher extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 8); + return super.drRoll() + Char.combatRoll(0, 8); } { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Scorpio.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Scorpio.java index 209f459b0..a923d1675 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Scorpio.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Scorpio.java @@ -56,7 +56,7 @@ public class Scorpio extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 30, 40 ); + return Char.combatRoll( 30, 40 ); } @Override @@ -66,7 +66,7 @@ public class Scorpio extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 16); + return super.drRoll() + Char.combatRoll(0, 16); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Senior.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Senior.java index ad03c3841..c47bcbf92 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Senior.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Senior.java @@ -21,9 +21,9 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.items.food.Pasty; import com.shatteredpixel.shatteredpixeldungeon.sprites.SeniorSprite; -import com.watabou.utils.Random; public class Senior extends Monk { @@ -44,7 +44,7 @@ public class Senior extends Monk { @Override public int damageRoll() { - return Random.NormalIntRange( 16, 25 ); + return Char.combatRoll( 16, 25 ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Shaman.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Shaman.java index c3021f11d..c242da683 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Shaman.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Shaman.java @@ -56,7 +56,7 @@ public abstract class Shaman extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 5, 10 ); + return Char.combatRoll( 5, 10 ); } @Override @@ -66,7 +66,7 @@ public abstract class Shaman extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 6); + return super.drRoll() + Char.combatRoll(0, 6); } @Override @@ -122,7 +122,7 @@ public abstract class Shaman extends Mob { if (enemy == Dungeon.hero) Sample.INSTANCE.play( Assets.Sounds.DEBUFF ); } - int dmg = Random.NormalIntRange( 6, 15 ); + int dmg = Char.combatRoll( 6, 15 ); dmg = Math.round(dmg * AscensionChallenge.statModifier(this)); enemy.damage( dmg, new EarthenBolt() ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Skeleton.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Skeleton.java index 9f2208018..96e170e69 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Skeleton.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Skeleton.java @@ -33,7 +33,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.SkeletonSprite; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.audio.Sample; import com.watabou.utils.PathFinder; -import com.watabou.utils.Random; public class Skeleton extends Mob { @@ -55,7 +54,7 @@ public class Skeleton extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 2, 10 ); + return Char.combatRoll( 2, 10 ); } @Override @@ -69,7 +68,7 @@ public class Skeleton extends Mob { for (int i = 0; i < PathFinder.NEIGHBOURS8.length; i++) { Char ch = findChar( pos + PathFinder.NEIGHBOURS8[i] ); if (ch != null && ch.isAlive()) { - int damage = Math.round(Random.NormalIntRange(6, 12)); + int damage = Math.round(Char.combatRoll(6, 12)); damage = Math.round( damage * AscensionChallenge.statModifier(this)); //armor is 2x effective against bone explosion damage = Math.max( 0, damage - (ch.drRoll() + ch.drRoll()) ); @@ -110,7 +109,7 @@ public class Skeleton extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 5); + return super.drRoll() + Char.combatRoll(0, 5); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Slime.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Slime.java index e13e9240f..b1d269a6f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Slime.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Slime.java @@ -28,7 +28,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Generator; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon; import com.shatteredpixel.shatteredpixeldungeon.sprites.SlimeSprite; -import com.watabou.utils.Random; public class Slime extends Mob { @@ -46,7 +45,7 @@ public class Slime extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 2, 5 ); + return Char.combatRoll( 2, 5 ); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Snake.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Snake.java index 961e4004b..b36876e7a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Snake.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Snake.java @@ -30,7 +30,6 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.SnakeSprite; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; -import com.watabou.utils.Random; public class Snake extends Mob { @@ -49,7 +48,7 @@ public class Snake extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 1, 4 ); + return Char.combatRoll( 1, 4 ); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/SpectralNecromancer.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/SpectralNecromancer.java index bb7154cbe..4be2d8ca7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/SpectralNecromancer.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/SpectralNecromancer.java @@ -136,7 +136,7 @@ public class SpectralNecromancer extends Necromancer { Char blocker = Actor.findChar(summoningPos); if (blocker.alignment != alignment){ - blocker.damage( Random.NormalIntRange(2, 10), new SummoningBlockDamage() ); + blocker.damage( Char.combatRoll(2, 10), new SummoningBlockDamage() ); if (blocker == Dungeon.hero && !blocker.isAlive()){ Badges.validateDeathFromEnemyMagic(); Dungeon.fail(this); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Spinner.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Spinner.java index 1a6164c8d..5e54ed335 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Spinner.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Spinner.java @@ -58,7 +58,7 @@ public class Spinner extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange(10, 20); + return Char.combatRoll(10, 20); } @Override @@ -68,7 +68,7 @@ public class Spinner extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 6); + return super.drRoll() + Char.combatRoll(0, 6); } private int webCoolDown = 0; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Statue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Statue.java index c1f4ff515..20f59f26f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Statue.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Statue.java @@ -114,7 +114,7 @@ public class Statue extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, Dungeon.depth + weapon.defenseFactor(this)); + return super.drRoll() + Char.combatRoll(0, Dungeon.depth + weapon.defenseFactor(this)); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Succubus.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Succubus.java index 93d23b766..073ea8f6a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Succubus.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Succubus.java @@ -70,7 +70,7 @@ public class Succubus extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 25, 30 ); + return Char.combatRoll( 25, 30 ); } @Override @@ -166,7 +166,7 @@ public class Succubus extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 10); + return super.drRoll() + Char.combatRoll(0, 10); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Swarm.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Swarm.java index c3da9045c..23b959862 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Swarm.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Swarm.java @@ -77,7 +77,7 @@ public class Swarm extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 1, 4 ); + return Char.combatRoll( 1, 4 ); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java index eaa89dabb..87fceb3e5 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java @@ -101,7 +101,7 @@ public class Tengu extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 6, 12 ); + return Char.combatRoll( 6, 12 ); } @Override @@ -115,7 +115,7 @@ public class Tengu extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 5); + return super.drRoll() + Char.combatRoll(0, 5); } boolean loading = false; @@ -626,7 +626,7 @@ public class Tengu extends Mob { if (PathFinder.distance[cell] < Integer.MAX_VALUE) { Char ch = Actor.findChar(cell); if (ch != null && !(ch instanceof Tengu)) { - int dmg = Random.NormalIntRange(5 + Dungeon.scalingDepth(), 10 + Dungeon.scalingDepth() * 2); + int dmg = Char.combatRoll(5 + Dungeon.scalingDepth(), 10 + Dungeon.scalingDepth() * 2); dmg -= ch.drRoll(); if (dmg > 0) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Thief.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Thief.java index e9889d34c..3c338a36c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Thief.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Thief.java @@ -80,7 +80,7 @@ public class Thief extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 1, 10 ); + return Char.combatRoll( 1, 10 ); } @Override @@ -119,7 +119,7 @@ public class Thief extends Mob { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 3); + return super.drRoll() + Char.combatRoll(0, 3); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/TormentedSpirit.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/TormentedSpirit.java index 2cd073f75..b4a11f3b9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/TormentedSpirit.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/TormentedSpirit.java @@ -44,7 +44,7 @@ public class TormentedSpirit extends Wraith { //50% more damage scaling than regular wraiths @Override public int damageRoll() { - return Random.NormalIntRange( 1 + Math.round(1.5f*level)/2, 2 + Math.round(1.5f*level) ); + return Char.combatRoll( 1 + Math.round(1.5f*level)/2, 2 + Math.round(1.5f*level) ); } //50% more accuracy (and by extension evasion) scaling than regular wraiths diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Warlock.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Warlock.java index 0d729f115..85ffac964 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Warlock.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Warlock.java @@ -62,7 +62,7 @@ public class Warlock extends Mob implements Callback { @Override public int damageRoll() { - return Random.NormalIntRange( 12, 18 ); + return Char.combatRoll( 12, 18 ); } @Override @@ -72,7 +72,7 @@ public class Warlock extends Mob implements Callback { @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 8); + return super.drRoll() + Char.combatRoll(0, 8); } @Override @@ -115,7 +115,7 @@ public class Warlock extends Mob implements Callback { Sample.INSTANCE.play( Assets.Sounds.DEBUFF ); } - int dmg = Random.NormalIntRange( 12, 18 ); + int dmg = Char.combatRoll( 12, 18 ); dmg = Math.round(dmg * AscensionChallenge.statModifier(this)); enemy.damage( dmg, new DarkBolt() ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Wraith.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Wraith.java index 04f195cbe..787204f13 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Wraith.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Wraith.java @@ -72,7 +72,7 @@ public class Wraith extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 1 + level/2, 2 + level ); + return Char.combatRoll( 1 + level/2, 2 + level ); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/YogDzewa.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/YogDzewa.java index eb677a9aa..872165d64 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/YogDzewa.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/YogDzewa.java @@ -245,9 +245,9 @@ public class YogDzewa extends Mob { if (hit( this, ch, true )) { if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)) { - ch.damage(Random.NormalIntRange(30, 50), new Eye.DeathGaze()); + ch.damage(Char.combatRoll(30, 50), new Eye.DeathGaze()); } else { - ch.damage(Random.NormalIntRange(20, 30), new Eye.DeathGaze()); + ch.damage(Char.combatRoll(20, 30), new Eye.DeathGaze()); } if (Dungeon.level.heroFOV[pos]) { ch.sprite.flash(); @@ -663,12 +663,12 @@ public class YogDzewa extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 15, 25 ); + return Char.combatRoll( 15, 25 ); } @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 4); + return super.drRoll() + Char.combatRoll(0, 4); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/YogFist.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/YogFist.java index af00485bc..67130d205 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/YogFist.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/YogFist.java @@ -172,12 +172,12 @@ public abstract class YogFist extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 18, 36 ); + return Char.combatRoll( 18, 36 ); } @Override public int drRoll() { - return super.drRoll() + Random.NormalIntRange(0, 15); + return super.drRoll() + Char.combatRoll(0, 15); } { @@ -449,7 +449,7 @@ public abstract class YogFist extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 22, 44 ); + return Char.combatRoll( 22, 44 ); } @Override @@ -499,7 +499,7 @@ public abstract class YogFist extends Mob { Char enemy = this.enemy; if (hit( this, enemy, true )) { - enemy.damage( Random.NormalIntRange(10, 20), new LightBeam() ); + enemy.damage( Char.combatRoll(10, 20), new LightBeam() ); Buff.prolong( enemy, Blindness.class, Blindness.DURATION/2f ); if (!enemy.isAlive() && enemy == Dungeon.hero) { @@ -565,7 +565,7 @@ public abstract class YogFist extends Mob { Char enemy = this.enemy; if (hit( this, enemy, true )) { - enemy.damage( Random.NormalIntRange(10, 20), new DarkBolt() ); + enemy.damage( Char.combatRoll(10, 20), new DarkBolt() ); Light l = enemy.buff(Light.class); if (l != null){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/MirrorImage.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/MirrorImage.java index 0f1517db4..617b83b64 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/MirrorImage.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/MirrorImage.java @@ -40,7 +40,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.MirrorSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.utils.Bundle; -import com.watabou.utils.Random; public class MirrorImage extends NPC { @@ -151,7 +150,7 @@ public class MirrorImage extends NPC { public int drRoll() { int dr = super.drRoll(); if (hero != null && hero.belongings.weapon() != null){ - return dr + Random.NormalIntRange(0, hero.belongings.weapon().defenseFactor(this)/2); + return dr + Char.combatRoll(0, hero.belongings.weapon().defenseFactor(this)/2); } else { return dr; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/PrismaticImage.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/PrismaticImage.java index ebcc87983..695179dac 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/PrismaticImage.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/PrismaticImage.java @@ -43,7 +43,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.PrismaticSprite; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; -import com.watabou.utils.Random; public class PrismaticImage extends NPC { @@ -152,9 +151,9 @@ public class PrismaticImage extends NPC { @Override public int damageRoll() { if (hero != null) { - return Random.NormalIntRange( 2 + hero.lvl/4, 4 + hero.lvl/2 ); + return Char.combatRoll( 2 + hero.lvl/4, 4 + hero.lvl/2 ); } else { - return Random.NormalIntRange( 2, 4 ); + return Char.combatRoll( 2, 4 ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/KindOfWeapon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/KindOfWeapon.java index 4393f2c12..a3663f80a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/KindOfWeapon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/KindOfWeapon.java @@ -34,12 +34,11 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.ActionIndicator; -import com.watabou.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions; import com.watabou.noosa.audio.Sample; +import com.watabou.utils.BArray; import com.watabou.utils.PathFinder; -import com.watabou.utils.Random; abstract public class KindOfWeapon extends EquipableItem { @@ -225,7 +224,7 @@ abstract public class KindOfWeapon extends EquipableItem { abstract public int max(int lvl); public int damageRoll( Char owner ) { - return Random.NormalIntRange( min(), max() ); + return Char.combatRoll( min(), max() ); } public float accuracyFactor( Char owner, Char target ) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/AntiMagic.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/AntiMagic.java index aca0d0357..6d33e8a9a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/AntiMagic.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/AntiMagic.java @@ -61,7 +61,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.Holy import com.shatteredpixel.shatteredpixeldungeon.levels.traps.DisintegrationTrap; import com.shatteredpixel.shatteredpixeldungeon.levels.traps.GrimTrap; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; -import com.watabou.utils.Random; import java.util.HashSet; @@ -129,7 +128,7 @@ public class AntiMagic extends Armor.Glyph { } public static int drRoll( Char ch, int level ){ - return Random.NormalIntRange( + return Char.combatRoll( Math.round(level * genericProcChanceMultiplier(ch)), Math.round((3 + (level*1.5f)) * genericProcChanceMultiplier(ch))); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CapeOfThorns.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CapeOfThorns.java index c1c362752..0e848a5c2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CapeOfThorns.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CapeOfThorns.java @@ -28,7 +28,6 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; -import com.watabou.utils.Random; public class CapeOfThorns extends Artifact { @@ -100,7 +99,7 @@ public class CapeOfThorns extends Artifact { } if (cooldown != 0){ - int deflected = Random.NormalIntRange(0, damage); + int deflected = Char.combatRoll(0, damage); damage -= deflected; if (attacker != null && Dungeon.level.adjacent(attacker.pos, defender.pos)) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java index 3d6e9155a..d87997e86 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java @@ -624,7 +624,7 @@ public class DriedRose extends Artifact { if (rose != null && rose.weapon != null){ dmg += rose.weapon.damageRoll(this); } else { - dmg += Random.NormalIntRange(0, 5); + dmg += Char.combatRoll(0, 5); } return dmg; @@ -710,10 +710,10 @@ public class DriedRose extends Artifact { public int drRoll() { int dr = super.drRoll(); if (rose != null && rose.armor != null){ - dr += Random.NormalIntRange( rose.armor.DRMin(), rose.armor.DRMax()); + dr += Char.combatRoll( rose.armor.DRMin(), rose.armor.DRMax()); } if (rose != null && rose.weapon != null){ - dr += Random.NormalIntRange( 0, rose.weapon.defenseFactor( this )); + dr += Char.combatRoll( 0, rose.weapon.defenseFactor( this )); } return dr; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ArcaneBomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ArcaneBomb.java index 9cba0ad38..683367c4d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ArcaneBomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ArcaneBomb.java @@ -33,7 +33,6 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.watabou.utils.BArray; import com.watabou.utils.PathFinder; -import com.watabou.utils.Random; import java.util.ArrayList; @@ -81,7 +80,7 @@ public class ArcaneBomb extends Bomb { for (Char ch : affected){ // 100%/83%/67% bomb damage based on distance, but pierces armor. - int damage = Math.round(Random.NormalIntRange( Dungeon.scalingDepth()+5, 10 + Dungeon.scalingDepth() * 2 )); + int damage = Math.round(Char.combatRoll( Dungeon.scalingDepth()+5, 10 + Dungeon.scalingDepth() * 2 )); float multiplier = 1f - (.16667f*Dungeon.level.distance(cell, ch.pos)); ch.damage(Math.round(damage*multiplier), this); if (ch == Dungeon.hero && !ch.isAlive()){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java index 45ef4e33f..b7d1da2da 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java @@ -183,7 +183,7 @@ public class Bomb extends Item { continue; } - int dmg = Random.NormalIntRange(5 + Dungeon.scalingDepth(), 10 + Dungeon.scalingDepth()*2); + int dmg = Char.combatRoll(5 + Dungeon.scalingDepth(), 10 + Dungeon.scalingDepth()*2); //those not at the center of the blast take less damage if (ch.pos != cell){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/HolyBomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/HolyBomb.java index 43e1fe1a5..3c7a31cdd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/HolyBomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/HolyBomb.java @@ -29,10 +29,9 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Flare; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap; -import com.watabou.utils.BArray; import com.watabou.noosa.audio.Sample; +import com.watabou.utils.BArray; import com.watabou.utils.PathFinder; -import com.watabou.utils.Random; import java.util.ArrayList; @@ -68,7 +67,7 @@ public class HolyBomb extends Bomb { ch.sprite.emitter().start( ShadowParticle.UP, 0.05f, 10 ); //bomb deals an additional 50% damage to unholy enemies in a 5x5 range - int damage = Math.round(Random.NormalIntRange( Dungeon.scalingDepth()+5, 10 + Dungeon.scalingDepth() * 2 ) * 0.5f); + int damage = Math.round(Char.combatRoll( Dungeon.scalingDepth()+5, 10 + Dungeon.scalingDepth() * 2 ) * 0.5f); ch.damage(damage, new HolyDamage()); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ShockBomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ShockBomb.java index 996fd717f..c5117478e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ShockBomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ShockBomb.java @@ -33,10 +33,9 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SparkParticle; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap; -import com.watabou.utils.BArray; import com.watabou.noosa.audio.Sample; +import com.watabou.utils.BArray; import com.watabou.utils.PathFinder; -import com.watabou.utils.Random; import java.util.ArrayList; @@ -71,7 +70,7 @@ public class ShockBomb extends Bomb { int power = 16 - 4*Dungeon.level.distance(ch.pos, cell); if (power > 0){ //32% to 8% regular bomb damage - int damage = Math.round(Random.NormalIntRange(5 + Dungeon.scalingDepth(), 10 + 2*Dungeon.scalingDepth()) * (power/50f)); + int damage = Math.round(Char.combatRoll(5 + Dungeon.scalingDepth(), 10 + 2*Dungeon.scalingDepth()) * (power/50f)); ch.damage(damage, this); if (ch.isAlive()) Buff.prolong(ch, Paralysis.class, power); arcs.add(new Lightning.Arc(DungeonTilemap.tileCenterToWorld(cell), ch.sprite.center())); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ShrapnelBomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ShrapnelBomb.java index 54b52d353..cc11d6581 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ShrapnelBomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ShrapnelBomb.java @@ -29,7 +29,6 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.particles.BlastParticle; import com.shatteredpixel.shatteredpixeldungeon.mechanics.ShadowCaster; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.watabou.utils.Point; -import com.watabou.utils.Random; import java.util.ArrayList; @@ -68,7 +67,7 @@ public class ShrapnelBomb extends Bomb { for (Char ch : affected){ //regular bomb damage, which falls off at a rate of 5% per tile of distance - int damage = Math.round(Random.NormalIntRange( Dungeon.scalingDepth()+5, 10 + Dungeon.scalingDepth() * 2 )); + int damage = Math.round(Char.combatRoll( Dungeon.scalingDepth()+5, 10 + Dungeon.scalingDepth() * 2 )); damage = Math.round(damage * (1f - .05f*Dungeon.level.distance(cell, ch.pos))); damage -= ch.drRoll(); ch.damage(damage, this); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfForce.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfForce.java index 0964be8f1..2724c546e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfForce.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfForce.java @@ -34,7 +34,6 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.AttackIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.Image; -import com.watabou.utils.Random; import java.util.ArrayList; @@ -82,10 +81,10 @@ public class RingOfForce extends Ring { && hero.buff(MonkEnergy.MonkAbility.UnarmedAbilityTracker.class) == null) { int level = getBuffedBonus(hero, Force.class); float tier = tier(hero.STR()); - return Random.NormalIntRange(min(level, tier), max(level, tier)); + return Char.combatRoll(min(level, tier), max(level, tier)); } else { //attack without any ring of force influence - return Random.NormalIntRange(1, Math.max(hero.STR()-8, 1)); + return Char.combatRoll(1, Math.max(hero.STR()-8, 1)); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/DamageWand.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/DamageWand.java index 11cd650cf..be3831c0c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/DamageWand.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/DamageWand.java @@ -23,10 +23,10 @@ package com.shatteredpixel.shatteredpixeldungeon.items.wands; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.WandEmpower; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.watabou.noosa.audio.Sample; -import com.watabou.utils.Random; //for wands that directly damage a target //wands with AOE effects count here (e.g. fireblast), but wands with indrect damage do not (e.g. venom, transfusion) @@ -49,7 +49,7 @@ public abstract class DamageWand extends Wand{ } public int damageRoll(int lvl){ - int dmg = Random.NormalIntRange(min(lvl), max(lvl)); + int dmg = Char.combatRoll(min(lvl), max(lvl)); WandEmpower emp = Dungeon.hero.buff(WandEmpower.class); if (emp != null){ dmg += emp.dmgBoost; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlastWave.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlastWave.java index af5203d45..49e4367da 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlastWave.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlastWave.java @@ -158,7 +158,7 @@ public class WandOfBlastWave extends DamageWand { int oldPos = ch.pos; ch.pos = newPos; if (finalCollided && ch.isActive()) { - ch.damage(Random.NormalIntRange(finalDist, 2*finalDist), new Knockback()); + ch.damage(Char.combatRoll(finalDist, 2*finalDist), new Knockback()); if (ch.isActive()) { Paralysis.prolong(ch, Paralysis.class, 1 + finalDist/2f); } else if (ch == Dungeon.hero){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLivingEarth.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLivingEarth.java index 6c4287e36..642f37796 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLivingEarth.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLivingEarth.java @@ -353,16 +353,16 @@ public class WandOfLivingEarth extends DamageWand { @Override public int damageRoll() { - return Random.NormalIntRange(2, 4 + Dungeon.scalingDepth()/2); + return Char.combatRoll(2, 4 + Dungeon.scalingDepth()/2); } @Override public int drRoll() { int dr = super.drRoll(); if (Dungeon.isChallenged(Challenges.NO_ARMOR)){ - return dr + Random.NormalIntRange(wandLevel, 2 + wandLevel); + return dr + Char.combatRoll(wandLevel, 2 + wandLevel); } else { - return dr + Random.NormalIntRange(wandLevel, 3 + 3 * wandLevel); + return dr + Char.combatRoll(wandLevel, 3 + 3 * wandLevel); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfTransfusion.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfTransfusion.java index fb257016b..27c6641de 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfTransfusion.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfTransfusion.java @@ -124,7 +124,7 @@ public class WandOfTransfusion extends Wand { //harms the undead } else { - ch.damage(Random.NormalIntRange(3 + buffedLvl(), 6+2*buffedLvl()), this); + ch.damage(Char.combatRoll(3 + buffedLvl(), 6+2*buffedLvl()), this); ch.sprite.emitter().start(ShadowParticle.UP, 0.05f, 10 + buffedLvl()); Sample.INSTANCE.play(Assets.Sounds.BURNING); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfWarding.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfWarding.java index f42ab798f..b0dbfb194 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfWarding.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfWarding.java @@ -304,7 +304,7 @@ public class WandOfWarding extends Wand { public int drRoll() { int dr = super.drRoll(); if (tier > 3){ - return dr + Math.round(Random.NormalIntRange(0, 3 + Dungeon.scalingDepth()/2) / (7f - tier)); + return dr + Math.round(Char.combatRoll(0, 3 + Dungeon.scalingDepth()/2) / (7f - tier)); } else { return dr; } @@ -331,7 +331,7 @@ public class WandOfWarding extends Wand { spend( 1f ); //always hits - int dmg = Random.NormalIntRange( 2 + wandLevel, 8 + 4*wandLevel ); + int dmg = Char.combatRoll( 2 + wandLevel, 8 + 4*wandLevel ); Char enemy = this.enemy; enemy.damage( dmg, this ); if (enemy.isAlive()){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/SpiritBow.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/SpiritBow.java index 841964200..f24640df1 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/SpiritBow.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/SpiritBow.java @@ -214,7 +214,7 @@ public class SpiritBow extends Weapon { if (owner instanceof Hero) { int exStr = ((Hero)owner).STR() - STRReq(); if (exStr > 0) { - damage += Random.IntRange( 0, exStr ); + damage += Char.combatRoll( 0, exStr ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Blazing.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Blazing.java index 189849f43..8cc385598 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Blazing.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Blazing.java @@ -53,7 +53,7 @@ public class Blazing extends Weapon.Enchantment { } if (powerMulti > 0){ - int burnDamage = Random.NormalIntRange( 1, 3 + Dungeon.scalingDepth()/4 ); + int burnDamage = Char.combatRoll( 1, 3 + Dungeon.scalingDepth()/4 ); burnDamage = Math.round(burnDamage * 0.67f * powerMulti); if (burnDamage > 0) { defender.damage(burnDamage, this); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/AssassinsBlade.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/AssassinsBlade.java index 16d093787..5d9d8c49f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/AssassinsBlade.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/AssassinsBlade.java @@ -27,7 +27,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; -import com.watabou.utils.Random; public class AssassinsBlade extends MeleeWeapon { @@ -53,12 +52,12 @@ public class AssassinsBlade extends MeleeWeapon { if (enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero)) { //deals 50% toward max to max on surprise, instead of min to max. int diff = max() - min(); - int damage = augment.damageFactor(Random.NormalIntRange( + int damage = augment.damageFactor(Char.combatRoll( min() + Math.round(diff*0.50f), max())); int exStr = hero.STR() - STRReq(); if (exStr > 0) { - damage += Random.IntRange(0, exStr); + damage += Char.combatRoll(0, exStr); } return damage; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dagger.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dagger.java index 659a1fa14..ecfe60298 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dagger.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dagger.java @@ -39,7 +39,6 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.audio.Sample; import com.watabou.utils.BArray; import com.watabou.utils.PathFinder; -import com.watabou.utils.Random; public class Dagger extends MeleeWeapon { @@ -67,12 +66,12 @@ public class Dagger extends MeleeWeapon { if (enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero)) { //deals 75% toward max to max on surprise, instead of min to max. int diff = max() - min(); - int damage = augment.damageFactor(Random.NormalIntRange( + int damage = augment.damageFactor(Char.combatRoll( min() + Math.round(diff*0.75f), max())); int exStr = hero.STR() - STRReq(); if (exStr > 0) { - damage += Random.IntRange(0, exStr); + damage += Char.combatRoll(0, exStr); } return damage; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dirk.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dirk.java index 11258afba..c38b394bc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dirk.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dirk.java @@ -27,7 +27,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; -import com.watabou.utils.Random; public class Dirk extends MeleeWeapon { @@ -53,12 +52,12 @@ public class Dirk extends MeleeWeapon { if (enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero)) { //deals 67% toward max to max on surprise, instead of min to max. int diff = max() - min(); - int damage = augment.damageFactor(Random.NormalIntRange( + int damage = augment.damageFactor(Char.combatRoll( min() + Math.round(diff*0.67f), max())); int exStr = hero.STR() - STRReq(); if (exStr > 0) { - damage += Random.IntRange(0, exStr); + damage += Char.combatRoll(0, exStr); } return damage; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MeleeWeapon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MeleeWeapon.java index b24c51a16..44451b499 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MeleeWeapon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MeleeWeapon.java @@ -53,7 +53,6 @@ import com.watabou.noosa.Image; import com.watabou.noosa.Visual; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; -import com.watabou.utils.Random; import java.util.ArrayList; @@ -348,7 +347,7 @@ public class MeleeWeapon extends Weapon { if (owner instanceof Hero) { int exStr = ((Hero)owner).STR() - STRReq(); if (exStr > 0) { - damage += Random.IntRange( 0, exStr ); + damage += Char.combatRoll( 0, exStr ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/Kunai.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/Kunai.java index cfa04944c..bf498ff74 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/Kunai.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/Kunai.java @@ -27,7 +27,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; -import com.watabou.utils.Random; public class Kunai extends MissileWeapon { @@ -55,12 +54,12 @@ public class Kunai extends MissileWeapon { if (enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero)) { //deals 60% toward max to max on surprise, instead of min to max. int diff = max() - min(); - int damage = augment.damageFactor(Random.NormalIntRange( + int damage = augment.damageFactor(Char.combatRoll( min() + Math.round(diff*0.6f), max())); int exStr = hero.STR() - STRReq(); if (exStr > 0) { - damage += Random.IntRange(0, exStr); + damage += Char.combatRoll(0, exStr); } return damage; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/MissileWeapon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/MissileWeapon.java index ddcb0c08e..ac6ba747e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/MissileWeapon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/MissileWeapon.java @@ -376,7 +376,7 @@ abstract public class MissileWeapon extends Weapon { if (owner instanceof Hero) { int exStr = ((Hero)owner).STR() - STRReq(); if (exStr > 0) { - damage += Random.IntRange( 0, exStr ); + damage += Char.combatRoll( 0, exStr ); } if (owner.buff(Momentum.class) != null && owner.buff(Momentum.class).freerunning()) { damage = Math.round(damage * (1f + 0.15f * ((Hero) owner).pointsInTalent(Talent.PROJECTILE_MOMENTUM))); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/ThrowingKnife.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/ThrowingKnife.java index 0723fe563..cc7c043bc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/ThrowingKnife.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/ThrowingKnife.java @@ -26,7 +26,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; -import com.watabou.utils.Random; public class ThrowingKnife extends MissileWeapon { @@ -55,12 +54,12 @@ public class ThrowingKnife extends MissileWeapon { if (enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero)) { //deals 75% toward max to max on surprise, instead of min to max. int diff = max() - min(); - int damage = augment.damageFactor(Random.NormalIntRange( + int damage = augment.damageFactor(Char.combatRoll( min() + Math.round(diff*0.75f), max())); int exStr = hero.STR() - STRReq(); if (exStr > 0) { - damage += Random.IntRange(0, exStr); + damage += Char.combatRoll(0, exStr); } return damage; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/HolyDart.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/HolyDart.java index b5114cb7d..edd1364d8 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/HolyDart.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/HolyDart.java @@ -29,7 +29,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.watabou.noosa.audio.Sample; -import com.watabou.utils.Random; public class HolyDart extends TippedDart { @@ -53,7 +52,7 @@ public class HolyDart extends TippedDart { if (Char.hasProp(defender, Char.Property.UNDEAD) || Char.hasProp(defender, Char.Property.DEMONIC)){ defender.sprite.emitter().start( ShadowParticle.UP, 0.05f, 10+buffedLvl() ); Sample.INSTANCE.play(Assets.Sounds.BURNING); - defender.damage(Random.NormalIntRange(10 + Dungeon.scalingDepth()/3, 20 + Dungeon.scalingDepth()/3), this); + defender.damage(Char.combatRoll(10 + Dungeon.scalingDepth()/3, 20 + Dungeon.scalingDepth()/3), this); //also do not bless enemies if processing charged shot } else if (!processingChargedShot){ Buff.affect(defender, Bless.class, Math.round(Bless.DURATION)); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/ShockingDart.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/ShockingDart.java index df1ef7ac4..6e5faae58 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/ShockingDart.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/ShockingDart.java @@ -30,7 +30,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.watabou.noosa.audio.Sample; import com.watabou.utils.PointF; -import com.watabou.utils.Random; import java.util.ArrayList; @@ -45,7 +44,7 @@ public class ShockingDart extends TippedDart { //when processing charged shot, only shock enemies if (!processingChargedShot || attacker.alignment != defender.alignment) { - defender.damage(Random.NormalIntRange(5 + Dungeon.scalingDepth() / 4, 10 + Dungeon.scalingDepth() / 4), new Electricity()); + defender.damage(Char.combatRoll(5 + Dungeon.scalingDepth() / 4, 10 + Dungeon.scalingDepth() / 4), new Electricity()); CharSprite s = defender.sprite; if (s != null && s.parent != null) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java index 6e4eefbf9..5dcd84c23 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java @@ -827,7 +827,7 @@ public class CavesBossLevel extends Level { Char ch = Actor.findChar(cell); if (ch != null && !(ch instanceof DM300) && !ch.flying) { Sample.INSTANCE.play( Assets.Sounds.LIGHTNING ); - ch.damage( Random.NormalIntRange(6, 12), new Electricity()); + ch.damage( Char.combatRoll(6, 12), new Electricity()); ch.sprite.flash(); if (ch == Dungeon.hero){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java index 9353523be..9ba505d21 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java @@ -24,6 +24,7 @@ package com.shatteredpixel.shatteredpixeldungeon.levels.features; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bleeding; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple; @@ -46,7 +47,6 @@ import com.watabou.noosa.Game; import com.watabou.noosa.Image; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Callback; -import com.watabou.utils.Random; public class Chasm implements Hero.Doom { @@ -146,7 +146,7 @@ public class Chasm implements Hero.Doom { //The lower the hero's HP, the more bleed and the less upfront damage. //Hero has a 50% chance to bleed out at 66% HP, and begins to risk instant-death at 25% Buff.affect( hero, Bleeding.class).set( Math.round(hero.HT / (6f + (6f*(hero.HP/(float)hero.HT)))), Chasm.class); - hero.damage( Math.max( hero.HP / 2, Random.NormalIntRange( hero.HP / 2, hero.HT / 4 )), new Chasm() ); + hero.damage( Math.max( hero.HP / 2, Char.combatRoll( hero.HP / 2, hero.HT / 4 )), new Chasm() ); } public static void mobFall( Mob mob ) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/SentryRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/SentryRoom.java index b4d6e62df..6eb63201c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/SentryRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/SentryRoom.java @@ -277,7 +277,7 @@ public class SentryRoom extends SpecialRoom { public void onZapComplete(){ if (hit(this, Dungeon.hero, true)) { - Dungeon.hero.damage(Random.NormalIntRange(2 + Dungeon.depth / 2, 4 + Dungeon.depth), new Eye.DeathGaze()); + Dungeon.hero.damage(Char.combatRoll(2 + Dungeon.depth / 2, 4 + Dungeon.depth), new Eye.DeathGaze()); if (!Dungeon.hero.isAlive()) { Badges.validateDeathFromEnemyMagic(); Dungeon.fail(this); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DisintegrationTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DisintegrationTrap.java index 63338a0f2..49c9114d1 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DisintegrationTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DisintegrationTrap.java @@ -35,7 +35,6 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.audio.Sample; -import com.watabou.utils.Random; public class DisintegrationTrap extends Trap { @@ -74,7 +73,7 @@ public class DisintegrationTrap extends Trap { Sample.INSTANCE.play(Assets.Sounds.RAY); ShatteredPixelDungeon.scene().add(new Beam.DeathRay(DungeonTilemap.tileCenterToWorld(pos), target.sprite.center())); } - target.damage( Random.NormalIntRange(30, 50) + scalingDepth(), this ); + target.damage( Char.combatRoll(30, 50) + scalingDepth(), this ); if (target == Dungeon.hero){ Hero hero = (Hero)target; if (!hero.isAlive()){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GeyserTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GeyserTrap.java index 70df71deb..5d1915813 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GeyserTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GeyserTrap.java @@ -30,8 +30,8 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Splash; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlastWave; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap; -import com.watabou.utils.BArray; import com.watabou.noosa.audio.Sample; +import com.watabou.utils.BArray; import com.watabou.utils.PathFinder; import com.watabou.utils.PointF; import com.watabou.utils.Random; @@ -75,7 +75,7 @@ public class GeyserTrap extends Trap { //does the equivalent of a bomb's damage against fiery enemies. if (Char.hasProp(ch, Char.Property.FIERY)){ - int dmg = Random.NormalIntRange(5 + scalingDepth(), 10 + scalingDepth()*2); + int dmg = Char.combatRoll(5 + scalingDepth(), 10 + scalingDepth()*2); dmg *= 0.67f; if (!ch.isImmune(GeyserTrap.class)){ ch.damage(dmg, this); @@ -117,7 +117,7 @@ public class GeyserTrap extends Trap { //does the equivalent of a bomb's damage against fiery enemies. if (Char.hasProp(ch, Char.Property.FIERY)){ - int dmg = Random.NormalIntRange(5 + scalingDepth(), 10 + scalingDepth()*2); + int dmg = Char.combatRoll(5 + scalingDepth(), 10 + scalingDepth()*2); if (!ch.isImmune(GeyserTrap.class)){ ch.damage(dmg, this); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GnollRockfallTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GnollRockfallTrap.java index c5ab39b64..15f498259 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GnollRockfallTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GnollRockfallTrap.java @@ -81,7 +81,7 @@ public class GnollRockfallTrap extends RockfallTrap { if (ch != null && ch.isAlive() && !(ch instanceof GnollGeomancer)){ //deals notably less damage than a regular rockfall trap, but ignores armor - int damage = Random.NormalIntRange(6, 12); + int damage = Char.combatRoll(6, 12); ch.damage( Math.max(damage, 0) , this); //guards take full paralysis, otherwise just a little diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PoisonDartTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PoisonDartTrap.java index 26cd14bbb..5e9c0c14c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PoisonDartTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PoisonDartTrap.java @@ -95,7 +95,7 @@ public class PoisonDartTrap extends Trap { reset(pos, finalTarget.sprite, new PoisonDart(), new Callback() { @Override public void call() { - int dmg = Random.NormalIntRange(4, 8) - finalTarget.drRoll(); + int dmg = Char.combatRoll(4, 8) - finalTarget.drRoll(); finalTarget.damage(dmg, PoisonDartTrap.this); if (finalTarget == Dungeon.hero){ //for the poison dart traps in the Tengu fight @@ -116,7 +116,7 @@ public class PoisonDartTrap extends Trap { }); return false; } else { - finalTarget.damage(Random.NormalIntRange(4, 8) - finalTarget.drRoll(), PoisonDartTrap.this); + finalTarget.damage(Char.combatRoll(4, 8) - finalTarget.drRoll(), PoisonDartTrap.this); Buff.affect( finalTarget, Poison.class ).set( poisonAmount() ); return true; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/RockfallTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/RockfallTrap.java index eb718dea7..fab182dd6 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/RockfallTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/RockfallTrap.java @@ -33,12 +33,11 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.RegularLevel; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.Room; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; -import com.watabou.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.audio.Sample; +import com.watabou.utils.BArray; import com.watabou.utils.PathFinder; import com.watabou.utils.Point; -import com.watabou.utils.Random; import java.util.ArrayList; @@ -94,7 +93,7 @@ public class RockfallTrap extends Trap { Char ch = Actor.findChar( cell ); if (ch != null && ch.isAlive()){ - int damage = Random.NormalIntRange(5+scalingDepth(), 10+scalingDepth()*2); + int damage = Char.combatRoll(5+scalingDepth(), 10+scalingDepth()*2); damage -= ch.drRoll(); ch.damage( Math.max(damage, 0) , this); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/WornDartTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/WornDartTrap.java index 68f196e29..d1bce6b10 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/WornDartTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/WornDartTrap.java @@ -80,7 +80,7 @@ public class WornDartTrap extends Trap { reset(pos, finalTarget.sprite, new Dart(), new Callback() { @Override public void call() { - int dmg = Random.NormalIntRange(4, 8) - finalTarget.drRoll(); + int dmg = Char.combatRoll(4, 8) - finalTarget.drRoll(); finalTarget.damage(dmg, WornDartTrap.this); if (finalTarget == Dungeon.hero && !finalTarget.isAlive()){ Dungeon.fail( WornDartTrap.this ); @@ -93,7 +93,7 @@ public class WornDartTrap extends Trap { }); return false; } else { - finalTarget.damage(Random.NormalIntRange(4, 8) - finalTarget.drRoll(), WornDartTrap.this); + finalTarget.damage(Char.combatRoll(4, 8) - finalTarget.drRoll(), WornDartTrap.this); return true; } } else {