v0.9.3: thematic changes to tome and armor kit, now mask and crown.
This commit is contained in:
parent
3f7c0da811
commit
2dcc716a86
|
@ -1620,12 +1620,6 @@ items.ankh.bless=You bless the ankh with magical water.
|
|||
items.ankh.desc=This ancient symbol of immortality grants the ability to return to life after death. Upon resurrection all non-equipped items are lost. Using a full waterskin, the ankh can be blessed with extra strength.
|
||||
items.ankh.desc_blessed=This ancient symbol of immortality grants the ability to return to life after death. The ankh has been blessed and is now much stronger. The Ankh will sacrifice itself to save you in a moment of deadly peril.
|
||||
|
||||
items.armorkit.name=armor kit
|
||||
items.armorkit.ac_apply=APPLY
|
||||
items.armorkit.prompt=Select an armor
|
||||
items.armorkit.upgraded=You applied the armor kit to upgrade your %s
|
||||
items.armorkit.desc=Using this kit of small tools and materials anybody can transform any armor into an "epic armor", which will keep all properties of the original armor, but will also provide its wearer a special ability depending on his class. No skills in tailoring, leatherworking or blacksmithing are required.
|
||||
|
||||
items.brokenseal.name=broken seal
|
||||
items.brokenseal.ac_affix=AFFIX
|
||||
items.brokenseal.prompt=Select an armor
|
||||
|
@ -1685,6 +1679,12 @@ items.kindofmisc.unequip_message=You must unequip one of these items first. Sele
|
|||
|
||||
items.kindofweapon.equip_cursed=Your grip involuntarily tightens around the weapon.
|
||||
|
||||
items.kingscrown.name=Dwarf King's crown
|
||||
items.kingscrown.ac_wear=WEAR
|
||||
items.kingscrown.naked=Unfortunately, the crown cannot transform your underwear.
|
||||
items.kingscrown.upgraded=The crown glows brightly and then disintegrates as your armor transforms!
|
||||
items.kingscrown.desc=The crown of the last dwarven king, it glows with tremendous magical energy.\n\nWhen worn, the crown's magic will flow into the armor you're currently wearing, transforming it into a _unique epic armor with special abilities._ The new armor will keep all the properties of the original armor.
|
||||
|
||||
items.merchantsbeacon.name=merchant's beacon
|
||||
items.merchantsbeacon.ac_use=USE
|
||||
items.merchantsbeacon.desc=This odd piece of dwarven technology allows you to communicate from great distances.\n\nAfter being activated, this beacon will let you sell items to Pixel Mart from anywhere in the dungeon.\n\nHowever, the magic within the beacon will only last for one session, so use it wisely.
|
||||
|
@ -1697,10 +1697,10 @@ items.stylus.cursed=The stylus's magic will not work on cursed armor.
|
|||
items.stylus.inscribed=You inscribed your armor with the stylus.
|
||||
items.stylus.desc=This arcane stylus is made of some dark, very hard stone. Using it you can inscribe a magical glyph on your armor, but you have no power over choosing what glyph it will be, the stylus will decide it for you.
|
||||
|
||||
items.tomeofmastery.name=Tome of Mastery
|
||||
items.tomeofmastery.ac_read=READ
|
||||
items.tomeofmastery.way=You have chosen the way of the %s!
|
||||
items.tomeofmastery.desc=This worn leather book is not that thick, but you feel somehow, that you can gather a lot from it. Remember though that reading this tome may require some time.
|
||||
items.tengusmask.name=Tengu's mask
|
||||
items.tengusmask.ac_wear=WEAR
|
||||
items.tengusmask.used=The mask disintegrates as its power flows into you!
|
||||
items.tengusmask.desc=This mask fell of Tengu's face as he died, you can feel great magical power emanating from it. Was the mask Tengu's source of strength?\n\nWhen worn, the tremendous power of the mask will be transferred into you, enabling you to _choose a subclass for your hero._\n\nWhich subclass will you choose?
|
||||
|
||||
items.torch.name=torch
|
||||
items.torch.ac_light=LIGHT
|
||||
|
|
|
@ -4,7 +4,7 @@ windows.wndblacksmith.reforge=Reforge them
|
|||
|
||||
windows.wndchallenges.title=Challenges
|
||||
|
||||
windows.wndchooseway.message=Which way will you follow?
|
||||
windows.wndchooseway.message=As the mask fits over your face, your eyesight fades and visions of new power flood into your mind. How will you direct the mask's power?
|
||||
windows.wndchooseway.cancel=I'll decide later
|
||||
|
||||
windows.wndclass.mastery=Mastery
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
@ -82,6 +82,12 @@ public class ShatteredPixelDungeon extends Game {
|
|||
com.watabou.utils.Bundle.addAlias(
|
||||
com.shatteredpixel.shatteredpixeldungeon.items.Waterskin.class,
|
||||
"com.shatteredpixel.shatteredpixeldungeon.items.DewVial" );
|
||||
com.watabou.utils.Bundle.addAlias(
|
||||
com.shatteredpixel.shatteredpixeldungeon.items.TengusMask.class,
|
||||
"com.shatteredpixel.shatteredpixeldungeon.items.TomeOfMastery" );
|
||||
com.watabou.utils.Bundle.addAlias(
|
||||
com.shatteredpixel.shatteredpixeldungeon.items.KingsCrown.class,
|
||||
"com.shatteredpixel.shatteredpixeldungeon.items.ArmorKit" );
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -38,9 +38,9 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Pushing;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ElmoParticle;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.ArmorKit;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
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;
|
||||
|
@ -430,9 +430,9 @@ public class DwarfKing extends Mob {
|
|||
}
|
||||
h.destroy();
|
||||
}
|
||||
Dungeon.level.drop(new ArmorKit(), pos + Dungeon.level.width()).sprite.drop(pos);
|
||||
Dungeon.level.drop(new KingsCrown(), pos + Dungeon.level.width()).sprite.drop(pos);
|
||||
} else {
|
||||
Dungeon.level.drop(new ArmorKit(), pos).sprite.drop();
|
||||
Dungeon.level.drop(new KingsCrown(), pos).sprite.drop();
|
||||
}
|
||||
|
||||
Badges.validateBossSlain();
|
||||
|
|
|
@ -36,7 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Flare;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.ArmorKit;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.KingsCrown;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.keys.SkeletonKey;
|
||||
|
@ -150,7 +150,7 @@ public class King extends Mob {
|
|||
public void die( Object cause ) {
|
||||
|
||||
GameScene.bossSlain();
|
||||
Dungeon.level.drop( new ArmorKit(), pos ).sprite.drop();
|
||||
Dungeon.level.drop( new KingsCrown(), pos ).sprite.drop();
|
||||
Dungeon.level.drop( new SkeletonKey( Dungeon.depth ), pos ).sprite.drop();
|
||||
|
||||
super.die( cause );
|
||||
|
|
|
@ -48,7 +48,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SmokeParticle;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SparkParticle;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.TomeOfMastery;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.TengusMask;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Bomb;
|
||||
|
@ -199,7 +199,7 @@ public class Tengu extends Mob {
|
|||
public void die( Object cause ) {
|
||||
|
||||
if (Dungeon.hero.subClass == HeroSubClass.NONE) {
|
||||
Dungeon.level.drop( new TomeOfMastery(), pos ).sprite.drop();
|
||||
Dungeon.level.drop( new TengusMask(), pos ).sprite.drop();
|
||||
}
|
||||
|
||||
GameScene.bossSlain();
|
||||
|
|
|
@ -22,12 +22,12 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.items;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
|
@ -36,16 +36,12 @@ import com.watabou.noosa.audio.Sample;
|
|||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class ArmorKit extends Item {
|
||||
|
||||
private static final String TXT_UPGRADED = "you applied the armor kit to upgrade your %s";
|
||||
public class KingsCrown extends Item {
|
||||
|
||||
private static final float TIME_TO_UPGRADE = 2;
|
||||
|
||||
private static final String AC_APPLY = "APPLY";
|
||||
private static final String AC_WEAR = "WEAR";
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.KIT;
|
||||
image = ItemSpriteSheet.CROWN;
|
||||
|
||||
unique = true;
|
||||
}
|
||||
|
@ -53,7 +49,7 @@ public class ArmorKit extends Item {
|
|||
@Override
|
||||
public ArrayList<String> actions( Hero hero ) {
|
||||
ArrayList<String> actions = super.actions( hero );
|
||||
actions.add( AC_APPLY );
|
||||
actions.add( AC_WEAR );
|
||||
return actions;
|
||||
}
|
||||
|
||||
|
@ -62,10 +58,14 @@ public class ArmorKit extends Item {
|
|||
|
||||
super.execute( hero, action );
|
||||
|
||||
if (action.equals(AC_APPLY)) {
|
||||
if (action.equals(AC_WEAR)) {
|
||||
|
||||
curUser = hero;
|
||||
GameScene.selectItem( itemSelector, WndBag.Mode.ARMOR, Messages.get(this, "prompt") );
|
||||
if (hero.belongings.armor != null){
|
||||
upgrade(hero.belongings.armor);
|
||||
} else {
|
||||
GLog.w( Messages.get(this, "naked"));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -85,10 +85,11 @@ public class ArmorKit extends Item {
|
|||
detach( curUser.belongings.backpack );
|
||||
|
||||
curUser.sprite.centerEmitter().start( Speck.factory( Speck.KIT ), 0.05f, 10 );
|
||||
curUser.spend( TIME_TO_UPGRADE );
|
||||
//TODO add a spell icon?
|
||||
curUser.spend( Actor.TICK );
|
||||
curUser.busy();
|
||||
|
||||
GLog.w( Messages.get(this, "upgraded", armor.name()) );
|
||||
GLog.p( Messages.get(this, "upgraded"));
|
||||
|
||||
ClassArmor classArmor = ClassArmor.upgrade( curUser, armor );
|
||||
if (curUser.belongings.armor == armor) {
|
||||
|
@ -105,14 +106,14 @@ public class ArmorKit extends Item {
|
|||
}
|
||||
|
||||
curUser.sprite.operate( curUser.pos );
|
||||
Sample.INSTANCE.play( Assets.Sounds.EVOKE );
|
||||
Sample.INSTANCE.play( Assets.Sounds.MASTERY );
|
||||
}
|
||||
|
||||
private final WndBag.Listener itemSelector = new WndBag.Listener() {
|
||||
@Override
|
||||
public void onSelect( Item item ) {
|
||||
if (item != null) {
|
||||
ArmorKit.this.upgrade( (Armor)item );
|
||||
KingsCrown.this.upgrade( (Armor)item );
|
||||
}
|
||||
}
|
||||
};
|
|
@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items;
|
|||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
||||
|
@ -37,15 +38,13 @@ import com.watabou.noosa.audio.Sample;
|
|||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class TomeOfMastery extends Item {
|
||||
public class TengusMask extends Item {
|
||||
|
||||
public static final float TIME_TO_READ = 10;
|
||||
|
||||
public static final String AC_READ = "READ";
|
||||
public static final String AC_WEAR = "WEAR";
|
||||
|
||||
{
|
||||
stackable = false;
|
||||
image = ItemSpriteSheet.MASTERY;
|
||||
image = ItemSpriteSheet.MASK;
|
||||
|
||||
unique = true;
|
||||
}
|
||||
|
@ -53,7 +52,7 @@ public class TomeOfMastery extends Item {
|
|||
@Override
|
||||
public ArrayList<String> actions( Hero hero ) {
|
||||
ArrayList<String> actions = super.actions( hero );
|
||||
actions.add( AC_READ );
|
||||
actions.add( AC_WEAR );
|
||||
return actions;
|
||||
}
|
||||
|
||||
|
@ -62,7 +61,7 @@ public class TomeOfMastery extends Item {
|
|||
|
||||
super.execute( hero, action );
|
||||
|
||||
if (action.equals( AC_READ )) {
|
||||
if (action.equals( AC_WEAR )) {
|
||||
|
||||
curUser = hero;
|
||||
|
||||
|
@ -111,7 +110,7 @@ public class TomeOfMastery extends Item {
|
|||
|
||||
detach( curUser.belongings.backpack );
|
||||
|
||||
curUser.spend( TomeOfMastery.TIME_TO_READ );
|
||||
curUser.spend( Actor.TICK );
|
||||
curUser.busy();
|
||||
|
||||
curUser.subClass = way;
|
||||
|
@ -120,9 +119,9 @@ public class TomeOfMastery extends Item {
|
|||
curUser.sprite.operate( curUser.pos );
|
||||
Sample.INSTANCE.play( Assets.Sounds.MASTERY );
|
||||
|
||||
SpellSprite.show( curUser, SpellSprite.MASTERY );
|
||||
SpellSprite.show( curUser, SpellSprite.MASTERY ); //TODO new spell icon!
|
||||
curUser.sprite.emitter().burst( Speck.factory( Speck.MASTERY ), 12 );
|
||||
GLog.w( Messages.get(this, "way", way.title()) );
|
||||
GLog.p( Messages.get(this, "used"));
|
||||
|
||||
}
|
||||
}
|
|
@ -125,23 +125,23 @@ public class ItemSpriteSheet {
|
|||
assignItemRect(EBONY_CHEST, 16, 14);
|
||||
}
|
||||
|
||||
private static final int SINGLE_USE = xy(1, 4); //16 slots
|
||||
public static final int ANKH = SINGLE_USE+0;
|
||||
public static final int STYLUS = SINGLE_USE+1;
|
||||
|
||||
public static final int SEAL = SINGLE_USE+3;
|
||||
public static final int TORCH = SINGLE_USE+4;
|
||||
public static final int BEACON = SINGLE_USE+5;
|
||||
|
||||
public static final int HONEYPOT = SINGLE_USE+7;
|
||||
public static final int SHATTPOT = SINGLE_USE+8;
|
||||
public static final int IRON_KEY = SINGLE_USE+9;
|
||||
public static final int GOLDEN_KEY = SINGLE_USE+10;
|
||||
public static final int CRYSTAL_KEY = SINGLE_USE+11;
|
||||
public static final int SKELETON_KEY = SINGLE_USE+12;
|
||||
public static final int MASTERY = SINGLE_USE+13;
|
||||
public static final int KIT = SINGLE_USE+14;
|
||||
public static final int AMULET = SINGLE_USE+15;
|
||||
private static final int MISC_CONSUMABLE = xy(1, 4); //16 slots
|
||||
public static final int ANKH = MISC_CONSUMABLE +0;
|
||||
public static final int STYLUS = MISC_CONSUMABLE +1;
|
||||
public static final int SEAL = MISC_CONSUMABLE +2;
|
||||
public static final int TORCH = MISC_CONSUMABLE +3;
|
||||
public static final int BEACON = MISC_CONSUMABLE +4;
|
||||
public static final int HONEYPOT = MISC_CONSUMABLE +5;
|
||||
public static final int SHATTPOT = MISC_CONSUMABLE +6;
|
||||
public static final int IRON_KEY = MISC_CONSUMABLE +7;
|
||||
public static final int GOLDEN_KEY = MISC_CONSUMABLE +8;
|
||||
public static final int CRYSTAL_KEY = MISC_CONSUMABLE +9;
|
||||
public static final int SKELETON_KEY = MISC_CONSUMABLE +10;
|
||||
public static final int MASK = MISC_CONSUMABLE +11; //FIXME placeholder sprite
|
||||
public static final int CROWN = MISC_CONSUMABLE +12; //FIXME placeholder sprite
|
||||
public static final int AMULET = MISC_CONSUMABLE +13;
|
||||
public static final int MASTERY = MISC_CONSUMABLE +14;
|
||||
public static final int KIT = MISC_CONSUMABLE +15;
|
||||
static{
|
||||
assignItemRect(ANKH, 10, 16);
|
||||
assignItemRect(STYLUS, 12, 13);
|
||||
|
@ -156,9 +156,11 @@ public class ItemSpriteSheet {
|
|||
assignItemRect(GOLDEN_KEY, 8, 14);
|
||||
assignItemRect(CRYSTAL_KEY, 8, 14);
|
||||
assignItemRect(SKELETON_KEY, 8, 14);
|
||||
assignItemRect(MASK, 9, 9);
|
||||
assignItemRect(CROWN, 13, 6);
|
||||
assignItemRect(AMULET, 16, 16);
|
||||
assignItemRect(MASTERY, 13, 16);
|
||||
assignItemRect(KIT, 16, 15);
|
||||
assignItemRect(AMULET, 16, 16);
|
||||
}
|
||||
|
||||
private static final int BOMBS = xy(1, 5); //16 slots
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.windows;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.TomeOfMastery;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.TengusMask;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||
|
@ -36,7 +36,7 @@ public class WndChooseWay extends Window {
|
|||
private static final int BTN_HEIGHT = 18;
|
||||
private static final float GAP = 2;
|
||||
|
||||
public WndChooseWay( final TomeOfMastery tome, final HeroSubClass way1, final HeroSubClass way2 ) {
|
||||
public WndChooseWay(final TengusMask tome, final HeroSubClass way1, final HeroSubClass way2 ) {
|
||||
|
||||
super();
|
||||
|
||||
|
@ -47,7 +47,7 @@ public class WndChooseWay extends Window {
|
|||
add( titlebar );
|
||||
|
||||
RenderedTextBlock hl = PixelScene.renderTextBlock( 6 );
|
||||
hl.text( way1.desc() + "\n\n" + way2.desc() + "\n\n" + Messages.get(this, "message"), WIDTH );
|
||||
hl.text( Messages.get(this, "message") + "\n\n" + way1.desc() + "\n\n" + way2.desc(), WIDTH );
|
||||
hl.setPos( titlebar.left(), titlebar.bottom() + GAP );
|
||||
add( hl );
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user