v1.3.0: fixed DK challenge badge not counting all wands

This commit is contained in:
Evan Debenham
2022-07-05 11:29:24 -04:00
parent f106cf41a2
commit 0ffbf194e0
4 changed files with 20 additions and 3 deletions

View File

@@ -47,6 +47,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.KingsCrown;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Viscosity;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfForce;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfLightning;
@@ -438,8 +439,13 @@ public class DwarfKing extends Mob {
@Override
public void damage(int dmg, Object src) {
//lightning and corrosion have their own custom logic
if (src == Dungeon.hero || (src instanceof Wand && !(src instanceof WandOfLightning))){
//hero only counts as unarmed if they have no weapon and aren't benefiting from force
if (src == Dungeon.hero && (Dungeon.hero.belongings.weapon() != null || Dungeon.hero.buff(RingOfForce.Force.class) != null)){
Statistics.qualifiedForBossChallengeBadge = false;
//Corrosion, corruption, and regrowth do no direct damage and so have their own custom logic
//Transfusion damages DK and so doesn't need custom logic
//Lightning has custom logic so that chaining it doesn't DQ for the badge
} else if (src instanceof Wand && !(src instanceof WandOfLightning)){
Statistics.qualifiedForBossChallengeBadge = false;
}

View File

@@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.wands;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
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.AllyBuff;
@@ -55,6 +56,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vulnerable;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Bee;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DwarfKing;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mimic;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Piranha;
@@ -131,6 +133,10 @@ public class WandOfCorruption extends Wand {
Mob enemy = (Mob) ch;
if (enemy instanceof DwarfKing){
Statistics.qualifiedForBossChallengeBadge = false;
}
float corruptingPower = 3 + buffedLvl()/2f;
//base enemy resistance is usually based on their exp, but in special cases it is based on other criteria

View File

@@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.wands;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
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.AllyBuff;
@@ -38,6 +39,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.mage.WildMagic;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DwarfKing;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.NPC;
import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
import com.shatteredpixel.shatteredpixeldungeon.items.Dewdrop;
@@ -120,6 +122,9 @@ public class WandOfRegrowth extends Wand {
}
Char ch = Actor.findChar(cell);
if (ch != null){
if (ch instanceof DwarfKing){
Statistics.qualifiedForBossChallengeBadge = false;
}
wandProc(ch, chargesPerCast());
Buff.prolong( ch, Roots.class, 4f * chrgUsed );
}

View File

@@ -106,7 +106,7 @@ public class WandOfTransfusion extends Wand {
//grant a self-shield, and...
Buff.affect(curUser, Barrier.class).setShield((5 + buffedLvl()));
//chars living enemies
//charms living enemies
if (!ch.properties().contains(Char.Property.UNDEAD)) {
Charm charm = Buff.affect(ch, Charm.class, Charm.DURATION/2f);
charm.object = curUser.id();