diff --git a/sigIRCv2.jar b/sigIRCv2.jar index 89add99..425aaf7 100644 Binary files a/sigIRCv2.jar and b/sigIRCv2.jar differ diff --git a/src/sig/modules/RabiRace/Profile.java b/src/sig/modules/RabiRace/Profile.java index 7d5d03e..8fa956a 100644 --- a/src/sig/modules/RabiRace/Profile.java +++ b/src/sig/modules/RabiRace/Profile.java @@ -16,6 +16,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.ConcurrentModificationException; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import sig.ScrollingText; @@ -41,14 +42,15 @@ public class Profile { public int loop = 0; public float itempct = 0; public float mappct = 0; - public HashMap key_items = new HashMap(); - public HashMap badges = new HashMap(); + public LinkedHashMap key_items = new LinkedHashMap(); + public LinkedHashMap badges = new LinkedHashMap(); public List updates = new ArrayList(); RabiRaceModule parent; public long lastWebUpdate = System.currentTimeMillis(); DecimalFormat df = new DecimalFormat("0.0"); Profile oldProfile; public boolean isArchive = false; + final static Color TEAL = new Color(0,128,128); public Profile(RabiRaceModule module) { this(module,true); @@ -72,8 +74,8 @@ public class Profile { oldProfile.regenUps = regenUps; oldProfile.packUps = packUps; oldProfile.rainbowEggCount = rainbowEggCount; - oldProfile.key_items = (HashMap)key_items.clone(); - oldProfile.badges = (HashMap)badges.clone(); + oldProfile.key_items = (LinkedHashMap)key_items.clone(); + oldProfile.badges = (LinkedHashMap)badges.clone(); oldProfile.playtime = playtime; } @@ -339,12 +341,27 @@ public class Profile { Graphics2D g2 = tmp.createGraphics(); final int border=20; final int width=(int)(tmp.getWidth()-border*2); - final int spacing=width/5; - for (int i=0;i<5;i++) { + int spacing=width/5; + int shiftyval = 0; + double iconsize = 1; + if (rainbowEggCount<=5) { Image img = RabiRaceModule.image_map.get("easter_egg.png"); - Color col = (rainbowEggCount>i)?RabiRaceModule.rainbowcycler.getCycleColor():new Color(0,0,0,192); - DrawUtils.drawImage(g2, img, (int)(border+i*spacing-img.getWidth(sigIRC.panel)/4),(int)(36),col,sigIRC.panel); + for (int i=0;i<5;i++) { + Color col = (rainbowEggCount>i)?RabiRaceModule.rainbowcycler.getCycleColor():new Color(0,0,0,192); + DrawUtils.drawImage(g2, img, (int)(border+i*spacing-img.getWidth(sigIRC.panel)/4),(int)(36),col,sigIRC.panel); + } + } else { + shiftyval = -RabiRaceModule.image_map.get("easter_egg.png").getWidth(sigIRC.panel)/2; + iconsize = 1; } + /* + { + Image img = RabiRaceModule.image_map.get("easter_egg.png"); + Color col = RabiRaceModule.rainbowcycler.getCycleColor(); + DrawUtils.drawImage(g2, img, (int)(border+((1.5)*spacing)-img.getWidth(sigIRC.panel)/4),(int)(36),col,sigIRC.panel); + DrawUtils.drawCenteredOutlineText(g2, sigIRC.panel.programFont, (int)(border+((3)*spacing)-img.getWidth(sigIRC.panel)/4),(int)12+img.getHeight(sigIRC.panel), 1, Color.WHITE, Color.BLUE,"x"+rainbowEggCount); + } + */ int size = key_items.size(); final int icon_size = 24; int count = 0; @@ -353,15 +370,15 @@ public class Profile { if (key_items.get(data)<0) { Image img = data.getImage().getScaledInstance(icon_size, icon_size, Image.SCALE_DEFAULT); if (size*icon_size5) { + imgs = Arrays.copyOf(imgs, imgs.length+1); + imgs[imgs.length-1] = RabiRaceModule.image_map.get("easter_egg.png"); + amts = Arrays.copyOf(amts, amts.length+1); + amts[amts.length-1] = rainbowEggCount; + spacing = width/6; + } //g2.drawImage(RabiRaceModule.image_map.get("bunny_strike.png"),(int)(+border+(i++)*(spacing)-img2.getWidth(sigIRC.panel)/4),(int)(+96+56), (int)icon_size, (int)icon_size, sigIRC.panel); + int counting=0; for (Image img : imgs) { - g2.drawImage(img,(int)(+border+((i)*(spacing))-icon_size/2),(int)(+96+56), (int)icon_size, (int)icon_size, sigIRC.panel); - DrawUtils.drawCenteredOutlineText(g2, sigIRC.panel.programFont, (int)((+border+((i)*(spacing))-icon_size/2)+(spacing/2)+4), (int)(+96+56+icon_size+12), 1, Color.WHITE, Color.BLUE, Integer.toString(amts[i++])); + if (counting++==5) { + DrawUtils.drawImageScaled(g2, img,(int)(+border+((i)*(spacing))-icon_size/2),(int)(+96+56)+shiftyval, (int)icon_size, (int)icon_size, RabiRaceModule.rainbowcycler.getCycleColor(), sigIRC.panel); + } else { + g2.drawImage(img,(int)(+border+((i)*(spacing))-icon_size/2),(int)(+96+56)+shiftyval, (int)icon_size, (int)icon_size, sigIRC.panel); + } + DrawUtils.drawCenteredOutlineText(g2, sigIRC.panel.programFont, (int)((+border+((i)*(spacing))-icon_size/2)+(spacing/2)+4), (int)(+96+56+icon_size+12)+shiftyval, 1, Color.WHITE, Color.BLUE, Integer.toString(amts[i++])); } } catch (ConcurrentModificationException e) { diff --git a/src/sig/utils/DrawUtils.java b/src/sig/utils/DrawUtils.java index 08ab433..684f3b3 100644 --- a/src/sig/utils/DrawUtils.java +++ b/src/sig/utils/DrawUtils.java @@ -117,6 +117,17 @@ public class DrawUtils { g.drawImage(tmp,(int)x,(int)y,source); } + public static void drawImageScaled(Graphics g, Image img, double x, double y, double xsize, double ysize, Color blend_col, ImageObserver source) { + BufferedImage tmp = new BufferedImage(img.getWidth(source),img.getHeight(source),BufferedImage.TYPE_INT_ARGB); + Graphics2D g2 = tmp.createGraphics(); + g2.drawImage(img, 0, 0, null); + g2.setComposite(AlphaComposite.SrcAtop); + g2.setColor(blend_col); + g2.fillRect(0, 0, img.getWidth(source), img.getHeight(source)); + g2.dispose(); + g.drawImage(tmp,(int)x,(int)y,(int)xsize,(int)ysize,source); + } + public static Color invertColor(Color c) { return new Color(255-c.getRed(),255-c.getGreen(),255-c.getBlue(),255); }