v0.7.0: fixes:
- teleportation working on floor 5 - glitches in tranfusion shield calculation - incorrect boolean logic on magic immune - dragon's breath and enchantment being lost when they shouldn't be - typo in potion of shielding
This commit is contained in:
parent
0aadab116b
commit
f11a2727bc
|
@ -354,7 +354,7 @@ public class Armor extends EquipableItem {
|
||||||
|
|
||||||
public int proc( Char attacker, Char defender, int damage ) {
|
public int proc( Char attacker, Char defender, int damage ) {
|
||||||
|
|
||||||
if (glyph != null && defender.buff(MagicImmune.class) != null) {
|
if (glyph != null && defender.buff(MagicImmune.class) == null) {
|
||||||
damage = glyph.proc( this, attacker, defender, damage );
|
damage = glyph.proc( this, attacker, defender, damage );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -504,7 +504,7 @@ public class Armor extends EquipableItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasGlyph(Class<?extends Glyph> type, Char owner) {
|
public boolean hasGlyph(Class<?extends Glyph> type, Char owner) {
|
||||||
return glyph != null && glyph.getClass() == type && owner.buff(MagicImmune.class) == null;
|
return glyph != null && glyph.getClass() == type && owner.buff(MagicImmune.class) == null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//these are not used to process specific glyph effects, so magic immune doesn't affect them
|
//these are not used to process specific glyph effects, so magic immune doesn't affect them
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class PotionOfDragonsBreath extends ExoticPotion {
|
||||||
@Override
|
@Override
|
||||||
//need to override drink so that time isn't spent right away
|
//need to override drink so that time isn't spent right away
|
||||||
protected void drink(final Hero hero) {
|
protected void drink(final Hero hero) {
|
||||||
detach( hero.belongings.backpack );
|
curItem = detach( hero.belongings.backpack );
|
||||||
setKnown();
|
setKnown();
|
||||||
|
|
||||||
GameScene.selectCell(targeter);
|
GameScene.selectCell(targeter);
|
||||||
|
@ -70,7 +70,8 @@ public class PotionOfDragonsBreath extends ExoticPotion {
|
||||||
public void onSelect(final Integer cell) {
|
public void onSelect(final Integer cell) {
|
||||||
|
|
||||||
if (cell == null){
|
if (cell == null){
|
||||||
return;
|
//TODO if this can ever be found un-IDed, need logic for that
|
||||||
|
curItem.collect();
|
||||||
} else {
|
} else {
|
||||||
Sample.INSTANCE.play( Assets.SND_DRINK );
|
Sample.INSTANCE.play( Assets.SND_DRINK );
|
||||||
curUser.sprite.operate(curUser.pos, new Callback() {
|
curUser.sprite.operate(curUser.pos, new Callback() {
|
||||||
|
|
|
@ -135,7 +135,7 @@ public class ScrollOfTeleportation extends Scroll {
|
||||||
|
|
||||||
public static void teleportPreferringUnseen( Hero hero ){
|
public static void teleportPreferringUnseen( Hero hero ){
|
||||||
|
|
||||||
if (!(Dungeon.level instanceof RegularLevel)){
|
if (Dungeon.bossLevel() || !(Dungeon.level instanceof RegularLevel)){
|
||||||
teleportHero( hero );
|
teleportHero( hero );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,10 +84,10 @@ public abstract class ExoticScroll extends Scroll {
|
||||||
//TODO
|
//TODO
|
||||||
|
|
||||||
regToExo.put(ScrollOfMirrorImage.class, ScrollOfDivination.class);
|
regToExo.put(ScrollOfMirrorImage.class, ScrollOfDivination.class);
|
||||||
exoToReg.put(ScrollOfDivination.class, ScrollOfMirrorImage.class);
|
//exoToReg.put(ScrollOfDivination.class, ScrollOfMirrorImage.class);
|
||||||
|
|
||||||
regToExo.put(ScrollOfTransmutation.class, ScrollOfDivination.class);
|
regToExo.put(ScrollOfTransmutation.class, ScrollOfDivination.class);
|
||||||
exoToReg.put(ScrollOfDivination.class, ScrollOfTransmutation.class);
|
//exoToReg.put(ScrollOfDivination.class, ScrollOfTransmutation.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -43,8 +43,6 @@ public class ScrollOfEnchantment extends ExoticScroll {
|
||||||
public void doRead() {
|
public void doRead() {
|
||||||
setKnown();
|
setKnown();
|
||||||
|
|
||||||
curItem = this;
|
|
||||||
|
|
||||||
GameScene.selectItem( itemSelector, WndBag.Mode.ENCHANTABLE, Messages.get(this, "inv_title"));
|
GameScene.selectItem( itemSelector, WndBag.Mode.ENCHANTABLE, Messages.get(this, "inv_title"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,7 +80,7 @@ public class ScrollOfEnchantment extends ExoticScroll {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else if (item instanceof Armor) {
|
||||||
|
|
||||||
final Armor.Glyph glyphs[] = new Armor.Glyph[3];
|
final Armor.Glyph glyphs[] = new Armor.Glyph[3];
|
||||||
|
|
||||||
|
@ -111,6 +109,9 @@ public class ScrollOfEnchantment extends ExoticScroll {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
//TODO if this can ever be found un-IDed, need logic for that
|
||||||
|
curItem.collect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -80,15 +80,16 @@ public class WandOfTransfusion extends Wand {
|
||||||
if (ch.alignment == Char.Alignment.ALLY || ch.buff(Charm.class) != null){
|
if (ch.alignment == Char.Alignment.ALLY || ch.buff(Charm.class) != null){
|
||||||
|
|
||||||
int healing = selfDmg + 3*level();
|
int healing = selfDmg + 3*level();
|
||||||
int shielding = -(ch.HT - ch.HP - healing);
|
int shielding = (ch.HP + healing) - ch.HT;
|
||||||
if (shielding > 0){
|
if (shielding > 0){
|
||||||
healing -= shielding;
|
healing -= shielding;
|
||||||
|
Buff.affect(ch, Barrier.class).set(shielding);
|
||||||
|
} else {
|
||||||
|
shielding = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ch.HP += healing;
|
ch.HP += healing;
|
||||||
|
|
||||||
Buff.affect(ch, Barrier.class).set(shielding);
|
|
||||||
|
|
||||||
ch.sprite.emitter().burst(Speck.factory(Speck.HEALING), 2 + level() / 2);
|
ch.sprite.emitter().burst(Speck.factory(Speck.HEALING), 2 + level() / 2);
|
||||||
ch.sprite.showStatus(CharSprite.POSITIVE, "+%dHP", healing + shielding);
|
ch.sprite.showStatus(CharSprite.POSITIVE, "+%dHP", healing + shielding);
|
||||||
|
|
||||||
|
|
|
@ -100,7 +100,7 @@ abstract public class Weapon extends KindOfWeapon {
|
||||||
@Override
|
@Override
|
||||||
public int proc( Char attacker, Char defender, int damage ) {
|
public int proc( Char attacker, Char defender, int damage ) {
|
||||||
|
|
||||||
if (enchantment != null && attacker.buff(MagicImmune.class) != null) {
|
if (enchantment != null && attacker.buff(MagicImmune.class) == null) {
|
||||||
damage = enchantment.proc( this, attacker, defender, damage );
|
damage = enchantment.proc( this, attacker, defender, damage );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,7 +251,7 @@ abstract public class Weapon extends KindOfWeapon {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasEnchant(Class<?extends Enchantment> type, Char owner) {
|
public boolean hasEnchant(Class<?extends Enchantment> type, Char owner) {
|
||||||
return enchantment != null && enchantment.getClass() == type && owner.buff(MagicImmune.class) != null;
|
return enchantment != null && enchantment.getClass() == type && owner.buff(MagicImmune.class) == null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//these are not used to process specific enchant effects, so magic immune doesn't affect them
|
//these are not used to process specific enchant effects, so magic immune doesn't affect them
|
||||||
|
|
|
@ -78,7 +78,7 @@ public class Dart extends MissileWeapon {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int proc(Char attacker, Char defender, int damage) {
|
public int proc(Char attacker, Char defender, int damage) {
|
||||||
if (bow != null && bow.enchantment != null && attacker.buff(MagicImmune.class) != null){
|
if (bow != null && bow.enchantment != null && attacker.buff(MagicImmune.class) == null){
|
||||||
damage = bow.enchantment.proc(bow, attacker, defender, damage);
|
damage = bow.enchantment.proc(bow, attacker, defender, damage);
|
||||||
}
|
}
|
||||||
return super.proc(attacker, defender, damage);
|
return super.proc(attacker, defender, damage);
|
||||||
|
|
|
@ -581,7 +581,7 @@ items.potions.exotic.potionofmagicalsight.name=potion of magical sight
|
||||||
items.potions.exotic.potionofmagicalsight.desc=After drinking this, your senses will be breifly heightened to incredible levels, allowing you to see through walls!
|
items.potions.exotic.potionofmagicalsight.desc=After drinking this, your senses will be breifly heightened to incredible levels, allowing you to see through walls!
|
||||||
|
|
||||||
items.potions.exotic.potionofshielding.name=potion of shielding
|
items.potions.exotic.potionofshielding.name=potion of shielding
|
||||||
items.potions.exotic.potionofshielding.desc=Rather than heal, this potion will instead project a durable shield around the users body, blocking a considerable amount of damage.
|
items.potions.exotic.potionofshielding.desc=Rather than heal, this potion will instead project a durable shield around the user's body, blocking a considerable amount of damage.
|
||||||
|
|
||||||
items.potions.exotic.potionofshroudingfog.name=potion of shrouding fog
|
items.potions.exotic.potionofshroudingfog.name=potion of shrouding fog
|
||||||
items.potions.exotic.potionofshroudingfog.desc=When exposed to air, the liquid in this flask will produce a thick smoky fog which completely blocks vision.
|
items.potions.exotic.potionofshroudingfog.desc=When exposed to air, the liquid in this flask will produce a thick smoky fog which completely blocks vision.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user