v2.5.0: more thoroughly filled out equipment and consumable catalog tabs
This commit is contained in:
@@ -122,7 +122,9 @@ windows.wndjournal$notestab.landmarks=Landmarks
|
|||||||
windows.wndjournal$catalogtab.title=Catalogs
|
windows.wndjournal$catalogtab.title=Catalogs
|
||||||
windows.wndjournal$catalogtab.title_equipment=Equipment
|
windows.wndjournal$catalogtab.title_equipment=Equipment
|
||||||
windows.wndjournal$catalogtab.title_consumables=Consumables
|
windows.wndjournal$catalogtab.title_consumables=Consumables
|
||||||
windows.wndjournal$catalogtab.not_seen=You haven't identified this item yet.
|
windows.wndjournal$catalogtab.not_seen_item=You haven't found and identified that item in any of your runs yet.
|
||||||
|
windows.wndjournal$catalogtab.not_seen_enchantment=You haven't found and identified a weapon with that enchantmet in any of your runs yet.
|
||||||
|
windows.wndjournal$catalogtab.not_seen_glyph=You haven't found and identified an armor with that glyph in any of your runs yet.
|
||||||
windows.wndjournal$loretab.title=Documents
|
windows.wndjournal$loretab.title=Documents
|
||||||
|
|
||||||
windows.wndkeybindings.controller_info=The left stick moves your character\nThe right stick controls an on-screen pointer
|
windows.wndkeybindings.controller_info=The left stick moves your character\nThe right stick controls an on-screen pointer
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WornShortswor
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpike;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpike;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingStone;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingStone;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.watabou.utils.DeviceCompat;
|
import com.watabou.utils.DeviceCompat;
|
||||||
|
|
||||||
@@ -164,6 +165,7 @@ public enum HeroClass {
|
|||||||
|
|
||||||
if (hero.belongings.armor != null){
|
if (hero.belongings.armor != null){
|
||||||
hero.belongings.armor.affixSeal(new BrokenSeal());
|
hero.belongings.armor.affixSeal(new BrokenSeal());
|
||||||
|
Catalog.setSeen(BrokenSeal.class); //as it's not added to the inventory
|
||||||
}
|
}
|
||||||
|
|
||||||
new PotionOfHealing().identify();
|
new PotionOfHealing().identify();
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.FloatingText;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.FloatingText;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||||
@@ -49,6 +50,7 @@ public class Dewdrop extends Item {
|
|||||||
public boolean doPickUp(Hero hero, int pos) {
|
public boolean doPickUp(Hero hero, int pos) {
|
||||||
|
|
||||||
Waterskin flask = hero.belongings.getItem( Waterskin.class );
|
Waterskin flask = hero.belongings.getItem( Waterskin.class );
|
||||||
|
Catalog.setSeen(getClass());
|
||||||
|
|
||||||
if (flask != null && !flask.isFull()){
|
if (flask != null && !flask.isFull()){
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.FloatingText;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.FloatingText;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
import com.watabou.noosa.audio.Sample;
|
import com.watabou.noosa.audio.Sample;
|
||||||
@@ -54,6 +55,8 @@ public class EnergyCrystal extends Item {
|
|||||||
@Override
|
@Override
|
||||||
public boolean doPickUp(Hero hero, int pos) {
|
public boolean doPickUp(Hero hero, int pos) {
|
||||||
|
|
||||||
|
Catalog.setSeen(getClass());
|
||||||
|
|
||||||
Dungeon.energy += quantity;
|
Dungeon.energy += quantity;
|
||||||
//TODO track energy collected maybe? We do already track recipes crafted though..
|
//TODO track energy collected maybe? We do already track recipes crafted though..
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.FloatingText;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.FloatingText;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
@@ -57,7 +58,9 @@ public class Gold extends Item {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean doPickUp(Hero hero, int pos) {
|
public boolean doPickUp(Hero hero, int pos) {
|
||||||
|
|
||||||
|
Catalog.setSeen(getClass());
|
||||||
|
|
||||||
Dungeon.gold += quantity;
|
Dungeon.gold += quantity;
|
||||||
Statistics.goldCollected += quantity;
|
Statistics.goldCollected += quantity;
|
||||||
Badges.validateGoldCollected();
|
Badges.validateGoldCollected();
|
||||||
|
|||||||
@@ -268,7 +268,7 @@ public class Item implements Bundlable {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean collect() {
|
public final boolean collect() {
|
||||||
return collect( Dungeon.hero.belongings.backpack );
|
return collect( Dungeon.hero.belongings.backpack );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -57,8 +57,10 @@ import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Stone;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Swiftness;
|
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Swiftness;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Thorns;
|
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Thorns;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Viscosity;
|
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Viscosity;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.bags.Bag;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfArcana;
|
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfArcana;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.ParchmentScrap;
|
import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.ParchmentScrap;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite;
|
||||||
@@ -201,6 +203,26 @@ public class Armor extends EquipableItem {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean collect(Bag container) {
|
||||||
|
if(super.collect(container)){
|
||||||
|
if (isIdentified() && glyph != null){
|
||||||
|
Catalog.setSeen(glyph.getClass());
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Item identify(boolean byHero) {
|
||||||
|
if (glyph != null && byHero && Dungeon.hero != null && Dungeon.hero.isAlive()){
|
||||||
|
Catalog.setSeen(glyph.getClass());
|
||||||
|
}
|
||||||
|
return super.identify(byHero);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean doEquip( Hero hero ) {
|
public boolean doEquip( Hero hero ) {
|
||||||
|
|
||||||
@@ -613,6 +635,10 @@ public class Armor extends EquipableItem {
|
|||||||
if (seal != null){
|
if (seal != null){
|
||||||
seal.setGlyph(glyph);
|
seal.setGlyph(glyph);
|
||||||
}
|
}
|
||||||
|
if (isIdentified() && Dungeon.hero != null
|
||||||
|
&& Dungeon.hero.isAlive() && Dungeon.hero.belongings.contains(this)){
|
||||||
|
Catalog.setSeen(glyph.getClass());
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -660,7 +686,7 @@ public class Armor extends EquipableItem {
|
|||||||
10 //3.33% each
|
10 //3.33% each
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final Class<?>[] curses = new Class<?>[]{
|
public static final Class<?>[] curses = new Class<?>[]{
|
||||||
AntiEntropy.class, Corrosion.class, Displacement.class, Metabolism.class,
|
AntiEntropy.class, Corrosion.class, Displacement.class, Metabolism.class,
|
||||||
Multiplicity.class, Stench.class, Overgrowth.class, Bulk.class
|
Multiplicity.class, Stench.class, Overgrowth.class, Bulk.class
|
||||||
};
|
};
|
||||||
|
|||||||
+2
@@ -53,6 +53,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRetributio
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfPsionicBlast;
|
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfPsionicBlast;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.AlchemyScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.AlchemyScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.CellSelector;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.CellSelector;
|
||||||
@@ -489,6 +490,7 @@ public class DriedRose extends Artifact {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean doPickUp(Hero hero, int pos) {
|
public boolean doPickUp(Hero hero, int pos) {
|
||||||
|
Catalog.setSeen(getClass());
|
||||||
DriedRose rose = hero.belongings.getItem( DriedRose.class );
|
DriedRose rose = hero.belongings.getItem( DriedRose.class );
|
||||||
|
|
||||||
if (rose == null){
|
if (rose == null){
|
||||||
|
|||||||
+2
@@ -34,6 +34,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEnergy;
|
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEnergy;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.Trap;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.Trap;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
|
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
|
||||||
@@ -475,6 +476,7 @@ public class TimekeepersHourglass extends Artifact {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean doPickUp(Hero hero, int pos) {
|
public boolean doPickUp(Hero hero, int pos) {
|
||||||
|
Catalog.setSeen(getClass());
|
||||||
TimekeepersHourglass hourglass = hero.belongings.getItem( TimekeepersHourglass.class );
|
TimekeepersHourglass hourglass = hero.belongings.getItem( TimekeepersHourglass.class );
|
||||||
if (hourglass != null && !hourglass.cursed) {
|
if (hourglass != null && !hourglass.cursed) {
|
||||||
hourglass.upgrade();
|
hourglass.upgrade();
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.keys;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.windows.WndJournal;
|
import com.shatteredpixel.shatteredpixeldungeon.windows.WndJournal;
|
||||||
@@ -49,6 +50,7 @@ public abstract class Key extends Item {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean doPickUp(Hero hero, int pos) {
|
public boolean doPickUp(Hero hero, int pos) {
|
||||||
|
Catalog.setSeen(getClass());
|
||||||
GameScene.pickUpJournal(this, pos);
|
GameScene.pickUpJournal(this, pos);
|
||||||
WndJournal.last_index = 2;
|
WndJournal.last_index = 2;
|
||||||
Notes.add(this);
|
Notes.add(this);
|
||||||
|
|||||||
+28
-2
@@ -31,6 +31,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.duelist.ElementalStrike;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.duelist.ElementalStrike;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.KindOfWeapon;
|
import com.shatteredpixel.shatteredpixeldungeon.items.KindOfWeapon;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.bags.Bag;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfArcana;
|
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfArcana;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfForce;
|
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfForce;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfFuror;
|
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfFuror;
|
||||||
@@ -58,6 +59,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Unstab
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Vampiric;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Vampiric;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RunicBlade;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RunicBlade;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Scimitar;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Scimitar;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
@@ -176,6 +178,26 @@ abstract public class Weapon extends KindOfWeapon {
|
|||||||
usesLeftToID = USES_TO_ID;
|
usesLeftToID = USES_TO_ID;
|
||||||
availableUsesToID = USES_TO_ID/2f;
|
availableUsesToID = USES_TO_ID/2f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean collect(Bag container) {
|
||||||
|
if(super.collect(container)){
|
||||||
|
if (isIdentified() && enchantment != null){
|
||||||
|
Catalog.setSeen(enchantment.getClass());
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Item identify(boolean byHero) {
|
||||||
|
if (enchantment != null && byHero && Dungeon.hero != null && Dungeon.hero.isAlive()){
|
||||||
|
Catalog.setSeen(enchantment.getClass());
|
||||||
|
}
|
||||||
|
return super.identify(byHero);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float accuracyFactor(Char owner, Char target) {
|
public float accuracyFactor(Char owner, Char target) {
|
||||||
@@ -331,6 +353,10 @@ abstract public class Weapon extends KindOfWeapon {
|
|||||||
if (ench == null || !ench.curse()) curseInfusionBonus = false;
|
if (ench == null || !ench.curse()) curseInfusionBonus = false;
|
||||||
enchantment = ench;
|
enchantment = ench;
|
||||||
updateQuickslot();
|
updateQuickslot();
|
||||||
|
if (isIdentified() && Dungeon.hero != null
|
||||||
|
&& Dungeon.hero.isAlive() && Dungeon.hero.belongings.contains(this)){
|
||||||
|
Catalog.setSeen(ench.getClass());
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -377,8 +403,8 @@ abstract public class Weapon extends KindOfWeapon {
|
|||||||
40, //6.67% each
|
40, //6.67% each
|
||||||
10 //3.33% each
|
10 //3.33% each
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final Class<?>[] curses = new Class<?>[]{
|
public static final Class<?>[] curses = new Class<?>[]{
|
||||||
Annoying.class, Displacing.class, Dazzling.class, Explosive.class,
|
Annoying.class, Displacing.class, Dazzling.class, Explosive.class,
|
||||||
Sacrificial.class, Wayward.class, Polarized.class, Friendly.class
|
Sacrificial.class, Wayward.class, Polarized.class, Friendly.class
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -25,18 +25,19 @@ import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Amulet;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Amulet;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Ankh;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Ankh;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.ArcaneResin;
|
import com.shatteredpixel.shatteredpixeldungeon.items.ArcaneResin;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Dewdrop;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Dewdrop;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.EnergyCrystal;
|
import com.shatteredpixel.shatteredpixeldungeon.items.EnergyCrystal;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Gold;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Gold;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Honeypot;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Honeypot;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.KingsCrown;
|
import com.shatteredpixel.shatteredpixeldungeon.items.KingsCrown;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.LiquidMetal;
|
import com.shatteredpixel.shatteredpixeldungeon.items.LiquidMetal;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Stylus;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Stylus;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.TengusMask;
|
import com.shatteredpixel.shatteredpixeldungeon.items.TengusMask;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Torch;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Torch;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Waterskin;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Waterskin;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.bags.MagicalHolster;
|
import com.shatteredpixel.shatteredpixeldungeon.items.bags.MagicalHolster;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.bags.PotionBandolier;
|
import com.shatteredpixel.shatteredpixeldungeon.items.bags.PotionBandolier;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.bags.ScrollHolder;
|
import com.shatteredpixel.shatteredpixeldungeon.items.bags.ScrollHolder;
|
||||||
@@ -83,6 +84,11 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfIc
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfMight;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfMight;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfToxicEssence;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfToxicEssence;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.ExoticPotion;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.ExoticPotion;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.quest.CeremonialCandle;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.quest.CorpseDust;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.quest.DarkGold;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.quest.DwarfToken;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.quest.Embers;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.GooBlob;
|
import com.shatteredpixel.shatteredpixeldungeon.items.quest.GooBlob;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.MetalShard;
|
import com.shatteredpixel.shatteredpixeldungeon.items.quest.MetalShard;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.remains.BowFragment;
|
import com.shatteredpixel.shatteredpixeldungeon.items.remains.BowFragment;
|
||||||
@@ -104,6 +110,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.spells.UnstableSpell;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.items.spells.WildEnergy;
|
import com.shatteredpixel.shatteredpixeldungeon.items.spells.WildEnergy;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.TrinketCatalyst;
|
import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.TrinketCatalyst;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.SpiritBow;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.SpiritBow;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.TippedDart;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.TippedDart;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.watabou.utils.Bundle;
|
import com.watabou.utils.Bundle;
|
||||||
@@ -119,6 +126,8 @@ public enum Catalog {
|
|||||||
//EQUIPMENT
|
//EQUIPMENT
|
||||||
MELEE_WEAPONS,
|
MELEE_WEAPONS,
|
||||||
ARMOR,
|
ARMOR,
|
||||||
|
ENCHANTMENTS,
|
||||||
|
GLYPHS,
|
||||||
THROWN_WEAPONS,
|
THROWN_WEAPONS,
|
||||||
WANDS,
|
WANDS,
|
||||||
RINGS,
|
RINGS,
|
||||||
@@ -140,16 +149,16 @@ public enum Catalog {
|
|||||||
SPELLS,
|
SPELLS,
|
||||||
MISC_CONSUMABLES;
|
MISC_CONSUMABLES;
|
||||||
|
|
||||||
private LinkedHashMap<Class<? extends Item>, Boolean> seen = new LinkedHashMap<>();
|
private LinkedHashMap<Class<?>, Boolean> seen = new LinkedHashMap<>();
|
||||||
|
|
||||||
public Collection<Class<? extends Item>> items(){
|
public Collection<Class<?>> items(){
|
||||||
return seen.keySet();
|
return seen.keySet();
|
||||||
}
|
}
|
||||||
|
|
||||||
//should only be used when initializing
|
//should only be used when initializing
|
||||||
private void addItems( Class<?>... items){
|
private void addItems( Class<?>... items){
|
||||||
for (Class<?> item : items){
|
for (Class<?> item : items){
|
||||||
seen.put((Class<? extends Item>) item, false);
|
seen.put(item, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,6 +195,16 @@ public enum Catalog {
|
|||||||
THROWN_WEAPONS.addItems(Generator.Category.MIS_T4.classes);
|
THROWN_WEAPONS.addItems(Generator.Category.MIS_T4.classes);
|
||||||
THROWN_WEAPONS.addItems(Generator.Category.MIS_T5.classes);
|
THROWN_WEAPONS.addItems(Generator.Category.MIS_T5.classes);
|
||||||
|
|
||||||
|
ENCHANTMENTS.addItems(Weapon.Enchantment.common);
|
||||||
|
ENCHANTMENTS.addItems(Weapon.Enchantment.uncommon);
|
||||||
|
ENCHANTMENTS.addItems(Weapon.Enchantment.rare);
|
||||||
|
ENCHANTMENTS.addItems(Weapon.Enchantment.curses);
|
||||||
|
|
||||||
|
GLYPHS.addItems(Armor.Glyph.common);
|
||||||
|
GLYPHS.addItems(Armor.Glyph.uncommon);
|
||||||
|
GLYPHS.addItems(Armor.Glyph.rare);
|
||||||
|
GLYPHS.addItems(Armor.Glyph.curses);
|
||||||
|
|
||||||
WANDS.addItems(Generator.Category.WAND.classes);
|
WANDS.addItems(Generator.Category.WAND.classes);
|
||||||
|
|
||||||
RINGS.addItems(Generator.Category.RING.classes);
|
RINGS.addItems(Generator.Category.RING.classes);
|
||||||
@@ -194,7 +213,7 @@ public enum Catalog {
|
|||||||
|
|
||||||
TRINKETS.addItems(Generator.Category.TRINKET.classes);
|
TRINKETS.addItems(Generator.Category.TRINKET.classes);
|
||||||
|
|
||||||
MISC_EQUIPMENT.addItems( SpiritBow.class, Waterskin.class, VelvetPouch.class,
|
MISC_EQUIPMENT.addItems(BrokenSeal.class, SpiritBow.class, Waterskin.class, VelvetPouch.class,
|
||||||
PotionBandolier.class, ScrollHolder.class, MagicalHolster.class, Amulet.class);
|
PotionBandolier.class, ScrollHolder.class, MagicalHolster.class, Amulet.class);
|
||||||
|
|
||||||
|
|
||||||
@@ -232,6 +251,7 @@ public enum Catalog {
|
|||||||
MISC_CONSUMABLES.addItems( Gold.class, EnergyCrystal.class, Dewdrop.class,
|
MISC_CONSUMABLES.addItems( Gold.class, EnergyCrystal.class, Dewdrop.class,
|
||||||
IronKey.class, GoldenKey.class, CrystalKey.class, SkeletonKey.class,
|
IronKey.class, GoldenKey.class, CrystalKey.class, SkeletonKey.class,
|
||||||
TrinketCatalyst.class, Stylus.class, Torch.class, Honeypot.class, Ankh.class,
|
TrinketCatalyst.class, Stylus.class, Torch.class, Honeypot.class, Ankh.class,
|
||||||
|
CorpseDust.class, Embers.class, CeremonialCandle.class, DarkGold.class, DwarfToken.class,
|
||||||
GooBlob.class, TengusMask.class, MetalShard.class, KingsCrown.class,
|
GooBlob.class, TengusMask.class, MetalShard.class, KingsCrown.class,
|
||||||
LiquidMetal.class, ArcaneResin.class,
|
LiquidMetal.class, ArcaneResin.class,
|
||||||
SealShard.class, BrokenStaff.class, CloakScrap.class, BowFragment.class, BrokenHilt.class);
|
SealShard.class, BrokenStaff.class, CloakScrap.class, BowFragment.class, BrokenHilt.class);
|
||||||
@@ -253,6 +273,8 @@ public enum Catalog {
|
|||||||
static {
|
static {
|
||||||
equipmentCatalogs.add(MELEE_WEAPONS);
|
equipmentCatalogs.add(MELEE_WEAPONS);
|
||||||
equipmentCatalogs.add(ARMOR);
|
equipmentCatalogs.add(ARMOR);
|
||||||
|
equipmentCatalogs.add(ENCHANTMENTS);
|
||||||
|
equipmentCatalogs.add(GLYPHS);
|
||||||
equipmentCatalogs.add(THROWN_WEAPONS);
|
equipmentCatalogs.add(THROWN_WEAPONS);
|
||||||
equipmentCatalogs.add(WANDS);
|
equipmentCatalogs.add(WANDS);
|
||||||
equipmentCatalogs.add(RINGS);
|
equipmentCatalogs.add(RINGS);
|
||||||
@@ -277,7 +299,7 @@ public enum Catalog {
|
|||||||
consumableCatalogs.add(MISC_CONSUMABLES);
|
consumableCatalogs.add(MISC_CONSUMABLES);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isSeen(Class<? extends Item> itemClass){
|
public static boolean isSeen(Class<?> itemClass){
|
||||||
for (Catalog cat : values()) {
|
for (Catalog cat : values()) {
|
||||||
if (cat.seen.containsKey(itemClass)) {
|
if (cat.seen.containsKey(itemClass)) {
|
||||||
return cat.seen.get(itemClass);
|
return cat.seen.get(itemClass);
|
||||||
@@ -286,10 +308,10 @@ public enum Catalog {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setSeen(Class<? extends Item> itemClass){
|
public static void setSeen(Class<?> cls){
|
||||||
for (Catalog cat : values()) {
|
for (Catalog cat : values()) {
|
||||||
if (cat.seen.containsKey(itemClass) && !cat.seen.get(itemClass)) {
|
if (cat.seen.containsKey(cls) && !cat.seen.get(cls)) {
|
||||||
cat.seen.put(itemClass, true);
|
cat.seen.put(cls, true);
|
||||||
Journal.saveNeeded = true;
|
Journal.saveNeeded = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -305,15 +327,15 @@ public enum Catalog {
|
|||||||
ArrayList<Class> seen = new ArrayList<>();
|
ArrayList<Class> seen = new ArrayList<>();
|
||||||
|
|
||||||
//if we have identified all items of a set, we use the badge to keep track instead.
|
//if we have identified all items of a set, we use the badge to keep track instead.
|
||||||
if (!Badges.isUnlocked(Badges.Badge.ALL_ITEMS_IDENTIFIED)) {
|
//if (!Badges.isUnlocked(Badges.Badge.ALL_ITEMS_IDENTIFIED)) {
|
||||||
for (Catalog cat : values()) {
|
for (Catalog cat : values()) {
|
||||||
if (!Badges.isUnlocked(catalogBadges.get(cat))) {
|
//if (!Badges.isUnlocked(catalogBadges.get(cat))) {
|
||||||
for (Class<? extends Item> item : cat.items()) {
|
for (Class<?> item : cat.items()) {
|
||||||
if (cat.seen.get(item)) seen.add(item);
|
if (cat.seen.get(item)) seen.add(item);
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
|
|
||||||
bundle.put( CATALOG_ITEMS, seen.toArray(new Class[0]) );
|
bundle.put( CATALOG_ITEMS, seen.toArray(new Class[0]) );
|
||||||
|
|
||||||
@@ -335,13 +357,13 @@ public enum Catalog {
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
//catalog-specific badge logic
|
//catalog-specific badge logic
|
||||||
/*for (Catalog cat : values()){
|
for (Catalog cat : values()){
|
||||||
if (Badges.isUnlocked(catalogBadges.get(cat))){
|
if (Badges.isUnlocked(catalogBadges.get(cat))){
|
||||||
for (Class<? extends Item> item : cat.items()){
|
for (Class<?> item : cat.items()){
|
||||||
cat.seen.put(item, true);
|
cat.seen.put(item, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
|
|
||||||
//general save/load
|
//general save/load
|
||||||
if (bundle.contains(CATALOG_ITEMS)) {
|
if (bundle.contains(CATALOG_ITEMS)) {
|
||||||
@@ -351,7 +373,7 @@ public enum Catalog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (Catalog cat : values()) {
|
for (Catalog cat : values()) {
|
||||||
for (Class<? extends Item> item : cat.items()) {
|
for (Class<?> item : cat.items()) {
|
||||||
if (seenClasses.contains(item)) {
|
if (seenClasses.contains(item)) {
|
||||||
cat.seen.put(item, true);
|
cat.seen.put(item, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import com.watabou.glwrap.Matrix;
|
|||||||
import com.watabou.glwrap.Vertexbuffer;
|
import com.watabou.glwrap.Vertexbuffer;
|
||||||
import com.watabou.noosa.Camera;
|
import com.watabou.noosa.Camera;
|
||||||
import com.watabou.noosa.Game;
|
import com.watabou.noosa.Game;
|
||||||
|
import com.watabou.noosa.Image;
|
||||||
import com.watabou.noosa.MovieClip;
|
import com.watabou.noosa.MovieClip;
|
||||||
import com.watabou.noosa.NoosaScript;
|
import com.watabou.noosa.NoosaScript;
|
||||||
import com.watabou.noosa.audio.Sample;
|
import com.watabou.noosa.audio.Sample;
|
||||||
@@ -125,6 +126,16 @@ public class ItemSprite extends MovieClip {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void copy(Image other) {
|
||||||
|
super.copy(other);
|
||||||
|
|
||||||
|
if (other instanceof ItemSprite && ((ItemSprite) other).glowing != null){
|
||||||
|
glow(((ItemSprite) other).glowing);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void visible(boolean value){
|
public void visible(boolean value){
|
||||||
this.visible = value;
|
this.visible = value;
|
||||||
if (emitter != null && !visible){
|
if (emitter != null && !visible){
|
||||||
|
|||||||
+7
-3
@@ -22,6 +22,7 @@
|
|||||||
package com.shatteredpixel.shatteredpixeldungeon.ui;
|
package com.shatteredpixel.shatteredpixeldungeon.ui;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||||
import com.watabou.noosa.ColorBlock;
|
import com.watabou.noosa.ColorBlock;
|
||||||
import com.watabou.noosa.Image;
|
import com.watabou.noosa.Image;
|
||||||
import com.watabou.noosa.ui.Component;
|
import com.watabou.noosa.ui.Component;
|
||||||
@@ -112,7 +113,13 @@ public class ScrollingGridPane extends ScrollPane {
|
|||||||
public GridItem( Image icon ) {
|
public GridItem( Image icon ) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
|
if (icon instanceof ItemSprite){
|
||||||
|
this.icon = new ItemSprite();
|
||||||
|
} else {
|
||||||
|
this.icon = new Image();
|
||||||
|
}
|
||||||
this.icon.copy(icon);
|
this.icon.copy(icon);
|
||||||
|
add(this.icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addSecondIcon( Image icon ){
|
public void addSecondIcon( Image icon ){
|
||||||
@@ -133,9 +140,6 @@ public class ScrollingGridPane extends ScrollPane {
|
|||||||
protected void createChildren() {
|
protected void createChildren() {
|
||||||
bg = new ColorBlock( 1, 1, 0x9953564D);
|
bg = new ColorBlock( 1, 1, 0x9953564D);
|
||||||
add(bg);
|
add(bg);
|
||||||
|
|
||||||
icon = new Image();
|
|
||||||
add( icon );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+82
-31
@@ -25,10 +25,12 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor;
|
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring;
|
import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Document;
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Document;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
|
||||||
@@ -556,52 +558,101 @@ public class WndJournal extends WndTabbed {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void addGridItems( ScrollingGridPane grid, Collection<Class<? extends Item>> itemClasses) {
|
private static void addGridItems( ScrollingGridPane grid, Collection<Class<?>> classes) {
|
||||||
for (Class<? extends Item> itemClass : itemClasses) {
|
for (Class<?> itemClass : classes) {
|
||||||
Item item = Reflection.newInstance(itemClass);
|
|
||||||
boolean itemSeen = Catalog.isSeen(itemClass);
|
|
||||||
|
|
||||||
if (itemSeen) {
|
boolean seen = Catalog.isSeen(itemClass);;
|
||||||
if (item instanceof Ring) {
|
Image sprite = null;
|
||||||
((Ring) item).anonymize();
|
Image secondIcon = null;
|
||||||
} else if (item instanceof Potion) {
|
String title = "";
|
||||||
((Potion) item).anonymize();
|
String desc = "";
|
||||||
} else if (item instanceof Scroll) {
|
|
||||||
((Scroll) item).anonymize();
|
if (Item.class.isAssignableFrom(itemClass)) {
|
||||||
|
|
||||||
|
Item item = (Item) Reflection.newInstance(itemClass);
|
||||||
|
|
||||||
|
if (seen) {
|
||||||
|
if (item instanceof Ring) {
|
||||||
|
((Ring) item).anonymize();
|
||||||
|
} else if (item instanceof Potion) {
|
||||||
|
((Potion) item).anonymize();
|
||||||
|
} else if (item instanceof Scroll) {
|
||||||
|
((Scroll) item).anonymize();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sprite = new ItemSprite(item.image, seen ? item.glowing() : null);
|
||||||
|
if (!seen) {
|
||||||
|
sprite.lightness(0);
|
||||||
|
title = "???";
|
||||||
|
desc = Messages.get(CatalogTab.class, "not_seen_item");
|
||||||
|
} else {
|
||||||
|
title = Messages.titleCase(item.trueName());
|
||||||
|
desc = item instanceof ClassArmor ? item.desc() : item.info();
|
||||||
|
|
||||||
|
if (item.icon != -1) {
|
||||||
|
secondIcon = new Image(Assets.Sprites.ITEM_ICONS);
|
||||||
|
secondIcon.frame(ItemSpriteSheet.Icons.film.get(item.icon));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (Weapon.Enchantment.class.isAssignableFrom(itemClass)){
|
||||||
|
|
||||||
|
Weapon.Enchantment ench = (Weapon.Enchantment) Reflection.newInstance(itemClass);
|
||||||
|
|
||||||
|
if (seen){
|
||||||
|
sprite = new ItemSprite(ItemSpriteSheet.WORN_SHORTSWORD, ench.glowing());
|
||||||
|
title = Messages.titleCase(ench.name());
|
||||||
|
desc = ench.desc();
|
||||||
|
} else {
|
||||||
|
sprite = new ItemSprite(ItemSpriteSheet.WORN_SHORTSWORD);
|
||||||
|
sprite.lightness(0f);
|
||||||
|
title = "???";
|
||||||
|
desc = Messages.get(CatalogTab.class, "not_seen_enchantment");
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (Armor.Glyph.class.isAssignableFrom(itemClass)){
|
||||||
|
|
||||||
|
Armor.Glyph glyph = (Armor.Glyph) Reflection.newInstance(itemClass);
|
||||||
|
|
||||||
|
if (seen){
|
||||||
|
sprite = new ItemSprite(ItemSpriteSheet.ARMOR_CLOTH, glyph.glowing());
|
||||||
|
title = Messages.titleCase(glyph.name());
|
||||||
|
desc = glyph.desc();
|
||||||
|
} else {
|
||||||
|
sprite = new ItemSprite(ItemSpriteSheet.ARMOR_CLOTH);
|
||||||
|
sprite.lightness(0f);
|
||||||
|
title = "???";
|
||||||
|
desc = Messages.get(CatalogTab.class, "not_seen_glyph");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Image sprite = new ItemSprite(item);
|
String finalTitle = title;
|
||||||
if (!itemSeen) sprite.lightness(0);
|
String finalDesc = desc;
|
||||||
ScrollingGridPane.GridItem gridItem = new ScrollingGridPane.GridItem(
|
ScrollingGridPane.GridItem gridItem = new ScrollingGridPane.GridItem(sprite) {
|
||||||
sprite) {
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onClick(float x, float y) {
|
public boolean onClick(float x, float y) {
|
||||||
if (inside(x, y)) {
|
if (inside(x, y)) {
|
||||||
Image sprite = new Image(icon);
|
//TODO need to dupe!
|
||||||
if (itemSeen) {
|
Image sprite;
|
||||||
GameScene.show(new WndTitledMessage(sprite,
|
if (icon instanceof ItemSprite){
|
||||||
Messages.titleCase(item.trueName()),
|
sprite = new ItemSprite();
|
||||||
item instanceof ClassArmor ? item.desc() : item.info()));
|
sprite.copy(icon);
|
||||||
} else {
|
} else {
|
||||||
sprite.lightness(0);
|
sprite = new Image(icon);
|
||||||
GameScene.show(new WndTitledMessage(sprite,
|
|
||||||
"???",
|
|
||||||
Messages.get(CatalogTab.class, "not_seen")));
|
|
||||||
}
|
}
|
||||||
|
GameScene.show(new WndTitledMessage(sprite, finalTitle, finalDesc));
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (itemSeen) {
|
if (secondIcon != null){
|
||||||
if (item.icon != -1) {
|
gridItem.addSecondIcon(secondIcon);
|
||||||
Image icon = new Image(Assets.Sprites.ITEM_ICONS);
|
}
|
||||||
icon.frame(ItemSpriteSheet.Icons.film.get(item.icon));
|
if (!seen) {
|
||||||
gridItem.addSecondIcon(icon);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
gridItem.hardLightBG(2f, 1f, 2f);
|
gridItem.hardLightBG(2f, 1f, 2f);
|
||||||
}
|
}
|
||||||
grid.addItem(gridItem);
|
grid.addItem(gridItem);
|
||||||
|
|||||||
Reference in New Issue
Block a user