v2.0.0: charged shot is now cleared when xbow is unequipped

This commit is contained in:
Evan Debenham
2023-02-12 23:15:56 -05:00
parent c7faaca349
commit d382ed74c3
@@ -26,6 +26,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FlavourBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FlavourBuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfForce;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
@@ -42,6 +43,21 @@ public class Crossbow extends MeleeWeapon {
tier = 4; tier = 4;
} }
@Override
public boolean doUnequip(Hero hero, boolean collect, boolean single) {
if (super.doUnequip(hero, collect, single)){
if (hero.buff(ChargedShot.class) != null &&
!(hero.belongings.weapon() instanceof Crossbow)
&& !(hero.belongings.secondWep() instanceof Crossbow)){
//clear charged shot if no crossbow is equipped
hero.buff(ChargedShot.class).detach();
}
return true;
} else {
return false;
}
}
@Override @Override
public int max(int lvl) { public int max(int lvl) {
@@ -57,13 +73,13 @@ public class Crossbow extends MeleeWeapon {
} }
beforeAbilityUsed(hero); beforeAbilityUsed(hero);
Buff.prolong(hero, ChargedShot.class, 100f); Buff.affect(hero, ChargedShot.class);
hero.sprite.operate(hero.pos); hero.sprite.operate(hero.pos);
hero.next(); hero.next();
afterAbilityUsed(hero); afterAbilityUsed(hero);
} }
public static class ChargedShot extends FlavourBuff{ public static class ChargedShot extends Buff{
{ {
announced = true; announced = true;