From 39450322aac62094dc222d27b325f7903129a3bc Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Tue, 12 May 2020 20:24:49 -0400 Subject: [PATCH] v0.8.1: added item icon functionality to rings, no icon assets yet --- .../items/rings/RingOfAccuracy.java | 5 +++++ .../items/rings/RingOfElements.java | 7 ++++++- .../items/rings/RingOfEnergy.java | 7 ++++++- .../items/rings/RingOfEvasion.java | 7 ++++++- .../items/rings/RingOfForce.java | 5 +++++ .../items/rings/RingOfFuror.java | 7 ++++++- .../items/rings/RingOfHaste.java | 7 ++++++- .../items/rings/RingOfMight.java | 5 +++++ .../items/rings/RingOfSharpshooting.java | 7 ++++++- .../items/rings/RingOfTenacity.java | 7 ++++++- .../items/rings/RingOfWealth.java | 7 ++++++- .../sprites/ItemSpriteSheet.java | 16 ++++++++++++++++ .../shatteredpixeldungeon/ui/ItemSlot.java | 3 ++- 13 files changed, 81 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfAccuracy.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfAccuracy.java index 780ceea60..d439ea371 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfAccuracy.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfAccuracy.java @@ -23,10 +23,15 @@ package com.shatteredpixel.shatteredpixeldungeon.items.rings; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import java.text.DecimalFormat; public class RingOfAccuracy extends Ring { + + { + icon = ItemSpriteSheet.Icons.RING_ACCURACY; + } public String statsInfo() { if (isIdentified()){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfElements.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfElements.java index f5946c58d..0631d5b67 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfElements.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfElements.java @@ -36,12 +36,17 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison; import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.AntiMagic; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import java.text.DecimalFormat; import java.util.HashSet; public class RingOfElements extends Ring { - + + { + icon = ItemSpriteSheet.Icons.RING_ELEMENTS; + } + public String statsInfo() { if (isIdentified()){ return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (1f - Math.pow(0.80f, soloBuffedBonus())))); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfEnergy.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfEnergy.java index c2c04bec7..ad852b1f3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfEnergy.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfEnergy.java @@ -23,11 +23,16 @@ package com.shatteredpixel.shatteredpixeldungeon.items.rings; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import java.text.DecimalFormat; public class RingOfEnergy extends Ring { - + + { + icon = ItemSpriteSheet.Icons.RING_ENERGY; + } + public String statsInfo() { if (isIdentified()){ return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.30f, soloBuffedBonus()) - 1f))); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfEvasion.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfEvasion.java index bdd1b4279..f3c38758a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfEvasion.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfEvasion.java @@ -23,11 +23,16 @@ package com.shatteredpixel.shatteredpixeldungeon.items.rings; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import java.text.DecimalFormat; public class RingOfEvasion extends Ring { - + + { + icon = ItemSpriteSheet.Icons.RING_EVASION; + } + public String statsInfo() { if (isIdentified()){ return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.15f, soloBuffedBonus()) - 1f))); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfForce.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfForce.java index aba814ff1..7f9977935 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfForce.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfForce.java @@ -25,10 +25,15 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.watabou.utils.Random; public class RingOfForce extends Ring { + { + icon = ItemSpriteSheet.Icons.RING_FORCE; + } + @Override protected RingBuff buff( ) { return new Force(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfFuror.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfFuror.java index dc569cb55..e21cdf6c0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfFuror.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfFuror.java @@ -23,11 +23,16 @@ package com.shatteredpixel.shatteredpixeldungeon.items.rings; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import java.text.DecimalFormat; public class RingOfFuror extends Ring { - + + { + icon = ItemSpriteSheet.Icons.RING_FUROR; + } + public String statsInfo() { if (isIdentified()){ return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.105f, soloBuffedBonus()) - 1f))); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfHaste.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfHaste.java index ce5807516..8e3d5f409 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfHaste.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfHaste.java @@ -23,11 +23,16 @@ package com.shatteredpixel.shatteredpixeldungeon.items.rings; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import java.text.DecimalFormat; public class RingOfHaste extends Ring { - + + { + icon = ItemSpriteSheet.Icons.RING_HASTE; + } + public String statsInfo() { if (isIdentified()){ return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.2f, soloBuffedBonus()) - 1f))); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfMight.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfMight.java index 2aa2c1914..a4e920f6b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfMight.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfMight.java @@ -26,11 +26,16 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import java.text.DecimalFormat; public class RingOfMight extends Ring { + { + icon = ItemSpriteSheet.Icons.RING_MIGHT; + } + @Override public boolean doEquip(Hero hero) { if (super.doEquip(hero)){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfSharpshooting.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfSharpshooting.java index 221bc33b1..6c2b92734 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfSharpshooting.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfSharpshooting.java @@ -23,11 +23,16 @@ package com.shatteredpixel.shatteredpixeldungeon.items.rings; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import java.text.DecimalFormat; public class RingOfSharpshooting extends Ring { - + + { + icon = ItemSpriteSheet.Icons.RING_SHARPSHOOT; + } + public String statsInfo() { if (isIdentified()){ return Messages.get(this, "stats", soloBuffedBonus(), new DecimalFormat("#.##").format(100f * (Math.pow(1.2, soloBonus()) - 1f))); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfTenacity.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfTenacity.java index f15ad9f4e..7c48eaaac 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfTenacity.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfTenacity.java @@ -23,11 +23,16 @@ package com.shatteredpixel.shatteredpixeldungeon.items.rings; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import java.text.DecimalFormat; public class RingOfTenacity extends Ring { - + + { + icon = ItemSpriteSheet.Icons.RING_TENACITY; + } + public String statsInfo() { if (isIdentified()){ return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (1f - Math.pow(0.85f, soloBuffedBonus())))); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfWealth.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfWealth.java index b639ef991..86d7be0fa 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfWealth.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfWealth.java @@ -35,6 +35,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.spells.ArcaneCatalyst; import com.shatteredpixel.shatteredpixeldungeon.items.stones.StoneOfEnchantment; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.watabou.utils.Bundle; import com.watabou.utils.Random; @@ -43,7 +44,11 @@ import java.util.ArrayList; import java.util.HashSet; public class RingOfWealth extends Ring { - + + { + icon = ItemSpriteSheet.Icons.RING_WEALTH; + } + private float triesToDrop = Float.MIN_VALUE; private int dropsToRare = Integer.MIN_VALUE; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java index b777ece8d..c38a34914 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java @@ -699,6 +699,22 @@ public class ItemSpriteSheet { } private static final int RINGS = xy(1, 1); //16 slots + public static final int RING_ACCURACY = RINGS+0; + public static final int RING_ELEMENTS = RINGS+1; + public static final int RING_ENERGY = RINGS+2; + public static final int RING_EVASION = RINGS+3; + public static final int RING_FORCE = RINGS+4; + public static final int RING_FUROR = RINGS+5; + public static final int RING_HASTE = RINGS+6; + public static final int RING_MIGHT = RINGS+7; + public static final int RING_SHARPSHOOT = RINGS+8; + public static final int RING_TENACITY = RINGS+9; + public static final int RING_WEALTH = RINGS+10; + public static final int RING_UNUSED = RINGS+11; + static { + for (int i = RINGS; i < RINGS+16; i++) + assignIconRect(i, 8, 8); + } //16 free slots diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ItemSlot.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ItemSlot.java index 877a1cb70..705d8a12e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ItemSlot.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ItemSlot.java @@ -25,6 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor; +import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; @@ -191,7 +192,7 @@ public class ItemSlot extends Button { status.text( item.status() ); - if (item.icon != -1 && item.isIdentified()){ + if (item.icon != -1 && (item.isIdentified() || (item instanceof Ring && ((Ring) item).isKnown()))){ extra.text( null ); itemIcon = new Image(Assets.Sprites.ITEM_ICONS);