Seperate some Sprite Icons, Upscaled sprite_planar_conquest,

added some ability icons, Enabled texture filter on some textures
This commit is contained in:
Anthony Calosa
2019-10-01 13:41:52 +08:00
parent a939a8a042
commit 91674ef0b2
13 changed files with 220 additions and 141 deletions

View File

@@ -148,7 +148,7 @@ public class GameAction {
} }
// if an adventureCard is put from Stack somewhere else, need to reset to Original State // if an adventureCard is put from Stack somewhere else, need to reset to Original State
if (c.isAdventureCard() && (zoneFrom.is(ZoneType.Stack) || !zoneTo.is(ZoneType.Stack))) { if (c.isAdventureCard() && (ZoneType.Stack.equals(zoneFrom) || !ZoneType.Stack.equals(zoneTo))) { //fix NPE momir
c.setState(CardStateName.Original, true); c.setState(CardStateName.Original, true);
} }

View File

@@ -1027,11 +1027,13 @@ public class CardView extends GameEntityView {
public boolean hasFlying() { return get(TrackableProperty.HasFlying); } public boolean hasFlying() { return get(TrackableProperty.HasFlying); }
public boolean hasFear() { return get(TrackableProperty.HasFear); } public boolean hasFear() { return get(TrackableProperty.HasFear); }
public boolean hasHexproof() { return get(TrackableProperty.HasHexproof); } public boolean hasHexproof() { return get(TrackableProperty.HasHexproof); }
public boolean hasHorsemanship() { return get(TrackableProperty.HasHorsemanship); }
public boolean hasIndestructible() { return get(TrackableProperty.HasIndestructible); } public boolean hasIndestructible() { return get(TrackableProperty.HasIndestructible); }
public boolean hasIntimidate() { return get(TrackableProperty.HasIntimidate); } public boolean hasIntimidate() { return get(TrackableProperty.HasIntimidate); }
public boolean hasLifelink() { return get(TrackableProperty.HasLifelink); } public boolean hasLifelink() { return get(TrackableProperty.HasLifelink); }
public boolean hasMenace() { return get(TrackableProperty.HasMenace); } public boolean hasMenace() { return get(TrackableProperty.HasMenace); }
public boolean hasReach() { return get(TrackableProperty.HasReach); } public boolean hasReach() { return get(TrackableProperty.HasReach); }
public boolean hasShadow() { return get(TrackableProperty.HasShadow); }
public boolean hasShroud() { return get(TrackableProperty.HasShroud); } public boolean hasShroud() { return get(TrackableProperty.HasShroud); }
public boolean hasTrample() { return get(TrackableProperty.HasTrample); } public boolean hasTrample() { return get(TrackableProperty.HasTrample); }
public boolean hasVigilance() { return get(TrackableProperty.HasVigilance); } public boolean hasVigilance() { return get(TrackableProperty.HasVigilance); }
@@ -1061,11 +1063,13 @@ public class CardView extends GameEntityView {
set(TrackableProperty.HasFlying, c.hasKeyword(Keyword.FLYING, state)); set(TrackableProperty.HasFlying, c.hasKeyword(Keyword.FLYING, state));
set(TrackableProperty.HasFear, c.hasKeyword(Keyword.FEAR, state)); set(TrackableProperty.HasFear, c.hasKeyword(Keyword.FEAR, state));
set(TrackableProperty.HasHexproof, c.hasKeyword(Keyword.HEXPROOF, state)); set(TrackableProperty.HasHexproof, c.hasKeyword(Keyword.HEXPROOF, state));
set(TrackableProperty.HasHorsemanship, c.hasKeyword(Keyword.HORSEMANSHIP, state));
set(TrackableProperty.HasIndestructible, c.hasKeyword(Keyword.INDESTRUCTIBLE, state)); set(TrackableProperty.HasIndestructible, c.hasKeyword(Keyword.INDESTRUCTIBLE, state));
set(TrackableProperty.HasIntimidate, c.hasKeyword(Keyword.INTIMIDATE, state)); set(TrackableProperty.HasIntimidate, c.hasKeyword(Keyword.INTIMIDATE, state));
set(TrackableProperty.HasLifelink, c.hasKeyword(Keyword.LIFELINK, state)); set(TrackableProperty.HasLifelink, c.hasKeyword(Keyword.LIFELINK, state));
set(TrackableProperty.HasMenace, c.hasKeyword(Keyword.MENACE, state)); set(TrackableProperty.HasMenace, c.hasKeyword(Keyword.MENACE, state));
set(TrackableProperty.HasReach, c.hasKeyword(Keyword.REACH, state)); set(TrackableProperty.HasReach, c.hasKeyword(Keyword.REACH, state));
set(TrackableProperty.HasShadow, c.hasKeyword(Keyword.SHADOW, state));
set(TrackableProperty.HasShroud, c.hasKeyword(Keyword.SHROUD, state)); set(TrackableProperty.HasShroud, c.hasKeyword(Keyword.SHROUD, state));
set(TrackableProperty.HasTrample, c.hasKeyword(Keyword.TRAMPLE, state)); set(TrackableProperty.HasTrample, c.hasKeyword(Keyword.TRAMPLE, state));
set(TrackableProperty.HasVigilance, c.hasKeyword(Keyword.VIGILANCE, state)); set(TrackableProperty.HasVigilance, c.hasKeyword(Keyword.VIGILANCE, state));

View File

@@ -90,11 +90,13 @@ public enum TrackableProperty {
HasFlying(TrackableTypes.BooleanType), HasFlying(TrackableTypes.BooleanType),
HasFear(TrackableTypes.BooleanType), HasFear(TrackableTypes.BooleanType),
HasHexproof(TrackableTypes.BooleanType), HasHexproof(TrackableTypes.BooleanType),
HasHorsemanship(TrackableTypes.BooleanType),
HasIndestructible(TrackableTypes.BooleanType), HasIndestructible(TrackableTypes.BooleanType),
HasIntimidate(TrackableTypes.BooleanType), HasIntimidate(TrackableTypes.BooleanType),
HasLifelink(TrackableTypes.BooleanType), HasLifelink(TrackableTypes.BooleanType),
HasMenace(TrackableTypes.BooleanType), HasMenace(TrackableTypes.BooleanType),
HasReach(TrackableTypes.BooleanType), HasReach(TrackableTypes.BooleanType),
HasShadow(TrackableTypes.BooleanType),
HasShroud(TrackableTypes.BooleanType), HasShroud(TrackableTypes.BooleanType),
HasTrample(TrackableTypes.BooleanType), HasTrample(TrackableTypes.BooleanType),
HasVigilance(TrackableTypes.BooleanType), HasVigilance(TrackableTypes.BooleanType),

View File

@@ -1039,7 +1039,7 @@ public class FSkin {
private static String preferredDir; private static String preferredDir;
private static String preferredName; private static String preferredName;
private static BufferedImage bimDefaultSprite, bimFavIcon, bimPreferredSprite, bimFoils, bimQuestDraftDeck, private static BufferedImage bimDefaultSprite, bimFavIcon, bimPreferredSprite, bimFoils, bimQuestDraftDeck,
bimOldFoils, bimDefaultAvatars, bimPreferredAvatars, bimTrophies, bimAbilities; bimOldFoils, bimDefaultAvatars, bimPreferredAvatars, bimTrophies, bimAbilities, bimManaIcons;
private static int x0, y0, w0, h0, newW, newH, preferredW, preferredH; private static int x0, y0, w0, h0, newW, newH, preferredW, preferredH;
private static int[] tempCoords; private static int[] tempCoords;
private static int defaultFontSize = 12; private static int defaultFontSize = 12;
@@ -1172,6 +1172,7 @@ public class FSkin {
final File f8 = new File(defaultDir + ForgeConstants.DRAFT_DECK_IMG_FILE); final File f8 = new File(defaultDir + ForgeConstants.DRAFT_DECK_IMG_FILE);
final File f9 = new File(defaultDir + ForgeConstants.SPRITE_FAVICONS_FILE); final File f9 = new File(defaultDir + ForgeConstants.SPRITE_FAVICONS_FILE);
final File f10 = new File(defaultDir + ForgeConstants.SPRITE_ABILITY_FILE); final File f10 = new File(defaultDir + ForgeConstants.SPRITE_ABILITY_FILE);
final File f11 = new File(defaultDir + ForgeConstants.SPRITE_MANAICONS_FILE);
try { try {
int p = 0; int p = 0;
@@ -1179,6 +1180,8 @@ public class FSkin {
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p); FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
bimAbilities = ImageIO.read(f10); bimAbilities = ImageIO.read(f10);
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p); FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
bimManaIcons = ImageIO.read(f11);
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
bimPreferredSprite = ImageIO.read(f2); bimPreferredSprite = ImageIO.read(f2);
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p); FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
bimFoils = ImageIO.read(f3); bimFoils = ImageIO.read(f3);
@@ -1242,6 +1245,9 @@ public class FSkin {
case ABILITY: case ABILITY:
setImage(prop, bimAbilities); setImage(prop, bimAbilities);
break; break;
case MANAICONS:
setImage(prop, bimManaIcons);
break;
default: default:
break; break;
} }
@@ -1263,6 +1269,7 @@ public class FSkin {
bimQuestDraftDeck.flush(); bimQuestDraftDeck.flush();
bimTrophies.flush(); bimTrophies.flush();
bimAbilities.flush(); bimAbilities.flush();
bimManaIcons.flush();
if (bimPreferredAvatars != null) { bimPreferredAvatars.flush(); } if (bimPreferredAvatars != null) { bimPreferredAvatars.flush(); }
@@ -1275,6 +1282,7 @@ public class FSkin {
bimQuestDraftDeck = null; bimQuestDraftDeck = null;
bimTrophies = null; bimTrophies = null;
bimAbilities = null; bimAbilities = null;
bimManaIcons = null;
//establish encoding symbols //establish encoding symbols
final File dir = new File(ForgeConstants.CACHE_SYMBOLS_DIR); final File dir = new File(ForgeConstants.CACHE_SYMBOLS_DIR);

View File

@@ -182,6 +182,7 @@ public class FSkin {
final FileHandle f4 = getDefaultSkinFile(ForgeConstants.SPRITE_AVATARS_FILE); final FileHandle f4 = getDefaultSkinFile(ForgeConstants.SPRITE_AVATARS_FILE);
final FileHandle f5 = getSkinFile(ForgeConstants.SPRITE_AVATARS_FILE); final FileHandle f5 = getSkinFile(ForgeConstants.SPRITE_AVATARS_FILE);
final FileHandle f6 = getDefaultSkinFile(SourceFile.OLD_FOILS.getFilename()); final FileHandle f6 = getDefaultSkinFile(SourceFile.OLD_FOILS.getFilename());
final FileHandle f7 = getDefaultSkinFile(ForgeConstants.SPRITE_MANAICONS_FILE);
try { try {
textures.put(f1.path(), new Texture(f1)); textures.put(f1.path(), new Texture(f1));
@@ -194,6 +195,11 @@ public class FSkin {
else { else {
textures.put(f6.path(), textures.get(f3.path())); textures.put(f6.path(), textures.get(f3.path()));
} }
if (f7.exists()){
Texture t = new Texture(f7, true);
t.setFilter(Texture.TextureFilter.MipMapLinearLinear, Texture.TextureFilter.Linear);
textures.put(f7.path(), t);
}
//update colors //update colors
for (final FSkinColor.Colors c : FSkinColor.Colors.values()) { for (final FSkinColor.Colors c : FSkinColor.Colors.values()) {

View File

@@ -8,6 +8,7 @@ import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion;
import forge.Forge;
import forge.Graphics; import forge.Graphics;
import forge.properties.ForgeConstants; import forge.properties.ForgeConstants;
import forge.util.ImageUtil; import forge.util.ImageUtil;
@@ -25,67 +26,67 @@ public enum FSkinImage implements FImage {
POISON (FSkinProp.IMG_ZONE_POISON, SourceFile.ICONS), POISON (FSkinProp.IMG_ZONE_POISON, SourceFile.ICONS),
//Mana symbols //Mana symbols
MANA_COLORLESS (FSkinProp.IMG_MANA_COLORLESS, SourceFile.ICONS), MANA_COLORLESS (FSkinProp.IMG_MANA_COLORLESS, SourceFile.MANAICONS),
MANA_B (FSkinProp.IMG_MANA_B, SourceFile.ICONS), MANA_B (FSkinProp.IMG_MANA_B, SourceFile.MANAICONS),
MANA_R (FSkinProp.IMG_MANA_R, SourceFile.ICONS), MANA_R (FSkinProp.IMG_MANA_R, SourceFile.MANAICONS),
MANA_U (FSkinProp.IMG_MANA_U, SourceFile.ICONS), MANA_U (FSkinProp.IMG_MANA_U, SourceFile.MANAICONS),
MANA_G (FSkinProp.IMG_MANA_G, SourceFile.ICONS), MANA_G (FSkinProp.IMG_MANA_G, SourceFile.MANAICONS),
MANA_W (FSkinProp.IMG_MANA_W, SourceFile.ICONS), MANA_W (FSkinProp.IMG_MANA_W, SourceFile.MANAICONS),
MANA_2B (FSkinProp.IMG_MANA_2B, SourceFile.ICONS), MANA_2B (FSkinProp.IMG_MANA_2B, SourceFile.MANAICONS),
MANA_2G (FSkinProp.IMG_MANA_2G, SourceFile.ICONS), MANA_2G (FSkinProp.IMG_MANA_2G, SourceFile.MANAICONS),
MANA_2R (FSkinProp.IMG_MANA_2R, SourceFile.ICONS), MANA_2R (FSkinProp.IMG_MANA_2R, SourceFile.MANAICONS),
MANA_2U (FSkinProp.IMG_MANA_2U, SourceFile.ICONS), MANA_2U (FSkinProp.IMG_MANA_2U, SourceFile.MANAICONS),
MANA_2W (FSkinProp.IMG_MANA_2W, SourceFile.ICONS), MANA_2W (FSkinProp.IMG_MANA_2W, SourceFile.MANAICONS),
MANA_HYBRID_BG (FSkinProp.IMG_MANA_HYBRID_BG, SourceFile.ICONS), MANA_HYBRID_BG (FSkinProp.IMG_MANA_HYBRID_BG, SourceFile.MANAICONS),
MANA_HYBRID_BR (FSkinProp.IMG_MANA_HYBRID_BR, SourceFile.ICONS), MANA_HYBRID_BR (FSkinProp.IMG_MANA_HYBRID_BR, SourceFile.MANAICONS),
MANA_HYBRID_GU (FSkinProp.IMG_MANA_HYBRID_GU, SourceFile.ICONS), MANA_HYBRID_GU (FSkinProp.IMG_MANA_HYBRID_GU, SourceFile.MANAICONS),
MANA_HYBRID_GW (FSkinProp.IMG_MANA_HYBRID_GW, SourceFile.ICONS), MANA_HYBRID_GW (FSkinProp.IMG_MANA_HYBRID_GW, SourceFile.MANAICONS),
MANA_HYBRID_RG (FSkinProp.IMG_MANA_HYBRID_RG, SourceFile.ICONS), MANA_HYBRID_RG (FSkinProp.IMG_MANA_HYBRID_RG, SourceFile.MANAICONS),
MANA_HYBRID_RW (FSkinProp.IMG_MANA_HYBRID_RW, SourceFile.ICONS), MANA_HYBRID_RW (FSkinProp.IMG_MANA_HYBRID_RW, SourceFile.MANAICONS),
MANA_HYBRID_UB (FSkinProp.IMG_MANA_HYBRID_UB, SourceFile.ICONS), MANA_HYBRID_UB (FSkinProp.IMG_MANA_HYBRID_UB, SourceFile.MANAICONS),
MANA_HYBRID_UR (FSkinProp.IMG_MANA_HYBRID_UR, SourceFile.ICONS), MANA_HYBRID_UR (FSkinProp.IMG_MANA_HYBRID_UR, SourceFile.MANAICONS),
MANA_HYBRID_WB (FSkinProp.IMG_MANA_HYBRID_WB, SourceFile.ICONS), MANA_HYBRID_WB (FSkinProp.IMG_MANA_HYBRID_WB, SourceFile.MANAICONS),
MANA_HYBRID_WU (FSkinProp.IMG_MANA_HYBRID_WU, SourceFile.ICONS), MANA_HYBRID_WU (FSkinProp.IMG_MANA_HYBRID_WU, SourceFile.MANAICONS),
MANA_PHRYX_U (FSkinProp.IMG_MANA_PHRYX_U, SourceFile.ICONS), MANA_PHRYX_U (FSkinProp.IMG_MANA_PHRYX_U, SourceFile.MANAICONS),
MANA_PHRYX_W (FSkinProp.IMG_MANA_PHRYX_W, SourceFile.ICONS), MANA_PHRYX_W (FSkinProp.IMG_MANA_PHRYX_W, SourceFile.MANAICONS),
MANA_PHRYX_R (FSkinProp.IMG_MANA_PHRYX_R, SourceFile.ICONS), MANA_PHRYX_R (FSkinProp.IMG_MANA_PHRYX_R, SourceFile.MANAICONS),
MANA_PHRYX_G (FSkinProp.IMG_MANA_PHRYX_G, SourceFile.ICONS), MANA_PHRYX_G (FSkinProp.IMG_MANA_PHRYX_G, SourceFile.MANAICONS),
MANA_PHRYX_B (FSkinProp.IMG_MANA_PHRYX_B, SourceFile.ICONS), MANA_PHRYX_B (FSkinProp.IMG_MANA_PHRYX_B, SourceFile.MANAICONS),
MANA_SNOW (FSkinProp.IMG_MANA_SNOW, SourceFile.ICONS), MANA_SNOW (FSkinProp.IMG_MANA_SNOW, SourceFile.MANAICONS),
MANA_0 (FSkinProp.IMG_MANA_0, SourceFile.ICONS), MANA_0 (FSkinProp.IMG_MANA_0, SourceFile.MANAICONS),
MANA_1 (FSkinProp.IMG_MANA_1, SourceFile.ICONS), MANA_1 (FSkinProp.IMG_MANA_1, SourceFile.MANAICONS),
MANA_2 (FSkinProp.IMG_MANA_2, SourceFile.ICONS), MANA_2 (FSkinProp.IMG_MANA_2, SourceFile.MANAICONS),
MANA_3 (FSkinProp.IMG_MANA_3, SourceFile.ICONS), MANA_3 (FSkinProp.IMG_MANA_3, SourceFile.MANAICONS),
MANA_4 (FSkinProp.IMG_MANA_4, SourceFile.ICONS), MANA_4 (FSkinProp.IMG_MANA_4, SourceFile.MANAICONS),
MANA_5 (FSkinProp.IMG_MANA_5, SourceFile.ICONS), MANA_5 (FSkinProp.IMG_MANA_5, SourceFile.MANAICONS),
MANA_6 (FSkinProp.IMG_MANA_6, SourceFile.ICONS), MANA_6 (FSkinProp.IMG_MANA_6, SourceFile.MANAICONS),
MANA_7 (FSkinProp.IMG_MANA_7, SourceFile.ICONS), MANA_7 (FSkinProp.IMG_MANA_7, SourceFile.MANAICONS),
MANA_8 (FSkinProp.IMG_MANA_8, SourceFile.ICONS), MANA_8 (FSkinProp.IMG_MANA_8, SourceFile.MANAICONS),
MANA_9 (FSkinProp.IMG_MANA_9, SourceFile.ICONS), MANA_9 (FSkinProp.IMG_MANA_9, SourceFile.MANAICONS),
MANA_10 (FSkinProp.IMG_MANA_10, SourceFile.ICONS), MANA_10 (FSkinProp.IMG_MANA_10, SourceFile.MANAICONS),
MANA_11 (FSkinProp.IMG_MANA_11, SourceFile.ICONS), MANA_11 (FSkinProp.IMG_MANA_11, SourceFile.MANAICONS),
MANA_12 (FSkinProp.IMG_MANA_12, SourceFile.ICONS), MANA_12 (FSkinProp.IMG_MANA_12, SourceFile.MANAICONS),
MANA_13 (FSkinProp.IMG_MANA_13, SourceFile.ICONS), MANA_13 (FSkinProp.IMG_MANA_13, SourceFile.MANAICONS),
MANA_14 (FSkinProp.IMG_MANA_14, SourceFile.ICONS), MANA_14 (FSkinProp.IMG_MANA_14, SourceFile.MANAICONS),
MANA_15 (FSkinProp.IMG_MANA_15, SourceFile.ICONS), MANA_15 (FSkinProp.IMG_MANA_15, SourceFile.MANAICONS),
MANA_16 (FSkinProp.IMG_MANA_16, SourceFile.ICONS), MANA_16 (FSkinProp.IMG_MANA_16, SourceFile.MANAICONS),
MANA_17 (FSkinProp.IMG_MANA_17, SourceFile.ICONS), MANA_17 (FSkinProp.IMG_MANA_17, SourceFile.MANAICONS),
MANA_18 (FSkinProp.IMG_MANA_18, SourceFile.ICONS), MANA_18 (FSkinProp.IMG_MANA_18, SourceFile.MANAICONS),
MANA_19 (FSkinProp.IMG_MANA_19, SourceFile.ICONS), MANA_19 (FSkinProp.IMG_MANA_19, SourceFile.MANAICONS),
MANA_20 (FSkinProp.IMG_MANA_20, SourceFile.ICONS), MANA_20 (FSkinProp.IMG_MANA_20, SourceFile.MANAICONS),
MANA_X (FSkinProp.IMG_MANA_X, SourceFile.ICONS), MANA_X (FSkinProp.IMG_MANA_X, SourceFile.MANAICONS),
MANA_Y (FSkinProp.IMG_MANA_Y, SourceFile.ICONS), MANA_Y (FSkinProp.IMG_MANA_Y, SourceFile.MANAICONS),
MANA_Z (FSkinProp.IMG_MANA_Z, SourceFile.ICONS), MANA_Z (FSkinProp.IMG_MANA_Z, SourceFile.MANAICONS),
//CMC ranges //CMC ranges
CMC_LOW (FSkinProp.IMG_CMC_LOW, SourceFile.ICONS), CMC_LOW (FSkinProp.IMG_CMC_LOW, SourceFile.MANAICONS),
CMC_LOW_MID (FSkinProp.IMG_CMC_LOW_MID, SourceFile.ICONS), CMC_LOW_MID (FSkinProp.IMG_CMC_LOW_MID, SourceFile.MANAICONS),
CMC_MID_HIGH (FSkinProp.IMG_CMC_MID_HIGH, SourceFile.ICONS), CMC_MID_HIGH (FSkinProp.IMG_CMC_MID_HIGH, SourceFile.MANAICONS),
CMC_HIGH (FSkinProp.IMG_CMC_HIGH, SourceFile.ICONS), CMC_HIGH (FSkinProp.IMG_CMC_HIGH, SourceFile.MANAICONS),
//Gameplay //Gameplay
TAP (FSkinProp.IMG_TAP, SourceFile.ICONS), TAP (FSkinProp.IMG_TAP, SourceFile.MANAICONS),
UNTAP (FSkinProp.IMG_UNTAP, SourceFile.ICONS), UNTAP (FSkinProp.IMG_UNTAP, SourceFile.MANAICONS),
CHAOS (FSkinProp.IMG_CHAOS, SourceFile.ICONS), CHAOS (FSkinProp.IMG_CHAOS, SourceFile.ICONS),
SLASH (FSkinProp.IMG_SLASH, SourceFile.ICONS), SLASH (FSkinProp.IMG_SLASH, SourceFile.ICONS),
ATTACK (FSkinProp.IMG_ATTACK, SourceFile.ICONS), ATTACK (FSkinProp.IMG_ATTACK, SourceFile.ICONS),
@@ -194,15 +195,15 @@ public enum FSkinImage implements FImage {
//Editor images //Editor images
STAR_OUTINE (FSkinProp.IMG_STAR_OUTINE, SourceFile.ICONS), STAR_OUTINE (FSkinProp.IMG_STAR_OUTINE, SourceFile.ICONS),
STAR_FILLED (FSkinProp.IMG_STAR_FILLED, SourceFile.ICONS), STAR_FILLED (FSkinProp.IMG_STAR_FILLED, SourceFile.ICONS),
ARTIFACT (FSkinProp.IMG_ARTIFACT, SourceFile.ICONS), ARTIFACT (FSkinProp.IMG_ARTIFACT, SourceFile.MANAICONS),
CREATURE (FSkinProp.IMG_CREATURE, SourceFile.ICONS), CREATURE (FSkinProp.IMG_CREATURE, SourceFile.MANAICONS),
ENCHANTMENT (FSkinProp.IMG_ENCHANTMENT, SourceFile.ICONS), ENCHANTMENT (FSkinProp.IMG_ENCHANTMENT, SourceFile.MANAICONS),
INSTANT (FSkinProp.IMG_INSTANT, SourceFile.ICONS), INSTANT (FSkinProp.IMG_INSTANT, SourceFile.MANAICONS),
LAND (FSkinProp.IMG_LAND, SourceFile.ICONS), LAND (FSkinProp.IMG_LAND, SourceFile.MANAICONS),
MULTI (FSkinProp.IMG_MULTI, SourceFile.ICONS), MULTI (FSkinProp.IMG_MULTI, SourceFile.ICONS),
PLANESWALKER (FSkinProp.IMG_PLANESWALKER, SourceFile.ICONS), PLANESWALKER (FSkinProp.IMG_PLANESWALKER, SourceFile.MANAICONS),
PACK (FSkinProp.IMG_PACK, SourceFile.ICONS), PACK (FSkinProp.IMG_PACK, SourceFile.ICONS),
SORCERY (FSkinProp.IMG_SORCERY, SourceFile.ICONS), SORCERY (FSkinProp.IMG_SORCERY, SourceFile.MANAICONS),
COMMANDER (FSkinProp.IMG_COMMANDER, SourceFile.ICONS), COMMANDER (FSkinProp.IMG_COMMANDER, SourceFile.ICONS),
//Buttons //Buttons
@@ -259,12 +260,15 @@ public enum FSkinImage implements FImage {
IMG_ABILITY_FIRST_STRIKE (FSkinProp.IMG_ABILITY_FIRST_STRIKE, SourceFile.ABILITIES), IMG_ABILITY_FIRST_STRIKE (FSkinProp.IMG_ABILITY_FIRST_STRIKE, SourceFile.ABILITIES),
IMG_ABILITY_FEAR (FSkinProp.IMG_ABILITY_FEAR, SourceFile.ABILITIES), IMG_ABILITY_FEAR (FSkinProp.IMG_ABILITY_FEAR, SourceFile.ABILITIES),
IMG_ABILITY_FLYING (FSkinProp.IMG_ABILITY_FLYING, SourceFile.ABILITIES), IMG_ABILITY_FLYING (FSkinProp.IMG_ABILITY_FLYING, SourceFile.ABILITIES),
IMG_ABILITY_HASTE (FSkinProp.IMG_ABILITY_HASTE, SourceFile.ABILITIES),
IMG_ABILITY_HEXPROOF (FSkinProp.IMG_ABILITY_HEXPROOF, SourceFile.ABILITIES), IMG_ABILITY_HEXPROOF (FSkinProp.IMG_ABILITY_HEXPROOF, SourceFile.ABILITIES),
IMG_ABILITY_HORSEMANSHIP (FSkinProp.IMG_ABILITY_HORSEMANSHIP, SourceFile.ABILITIES),
IMG_ABILITY_INDESTRUCTIBLE (FSkinProp.IMG_ABILITY_INDESTRUCTIBLE, SourceFile.ABILITIES), IMG_ABILITY_INDESTRUCTIBLE (FSkinProp.IMG_ABILITY_INDESTRUCTIBLE, SourceFile.ABILITIES),
IMG_ABILITY_INTIMIDATE (FSkinProp.IMG_ABILITY_INTIMIDATE, SourceFile.ABILITIES), IMG_ABILITY_INTIMIDATE (FSkinProp.IMG_ABILITY_INTIMIDATE, SourceFile.ABILITIES),
IMG_ABILITY_LIFELINK (FSkinProp.IMG_ABILITY_LIFELINK, SourceFile.ABILITIES), IMG_ABILITY_LIFELINK (FSkinProp.IMG_ABILITY_LIFELINK, SourceFile.ABILITIES),
IMG_ABILITY_MENACE (FSkinProp.IMG_ABILITY_MENACE, SourceFile.ABILITIES), IMG_ABILITY_MENACE (FSkinProp.IMG_ABILITY_MENACE, SourceFile.ABILITIES),
IMG_ABILITY_REACH (FSkinProp.IMG_ABILITY_REACH, SourceFile.ABILITIES), IMG_ABILITY_REACH (FSkinProp.IMG_ABILITY_REACH, SourceFile.ABILITIES),
IMG_ABILITY_SHADOW (FSkinProp.IMG_ABILITY_SHADOW, SourceFile.ABILITIES),
IMG_ABILITY_SHROUD (FSkinProp.IMG_ABILITY_SHROUD, SourceFile.ABILITIES), IMG_ABILITY_SHROUD (FSkinProp.IMG_ABILITY_SHROUD, SourceFile.ABILITIES),
IMG_ABILITY_TRAMPLE (FSkinProp.IMG_ABILITY_TRAMPLE, SourceFile.ABILITIES), IMG_ABILITY_TRAMPLE (FSkinProp.IMG_ABILITY_TRAMPLE, SourceFile.ABILITIES),
IMG_ABILITY_VIGILANCE (FSkinProp.IMG_ABILITY_VIGILANCE, SourceFile.ABILITIES), IMG_ABILITY_VIGILANCE (FSkinProp.IMG_ABILITY_VIGILANCE, SourceFile.ABILITIES),
@@ -304,6 +308,7 @@ public enum FSkinImage implements FImage {
OLD_FOILS(ForgeConstants.SPRITE_OLD_FOILS_FILE), OLD_FOILS(ForgeConstants.SPRITE_OLD_FOILS_FILE),
TROPHIES(ForgeConstants.SPRITE_TROPHIES_FILE), TROPHIES(ForgeConstants.SPRITE_TROPHIES_FILE),
ABILITIES(ForgeConstants.SPRITE_ABILITY_FILE), ABILITIES(ForgeConstants.SPRITE_ABILITY_FILE),
MANAICONS(ForgeConstants.SPRITE_MANAICONS_FILE),
PLANAR_CONQUEST(ForgeConstants.SPRITE_PLANAR_CONQUEST_FILE); PLANAR_CONQUEST(ForgeConstants.SPRITE_PLANAR_CONQUEST_FILE);
private final String filename; private final String filename;
@@ -338,7 +343,12 @@ public enum FSkinImage implements FImage {
if (texture == null) { if (texture == null) {
if (preferredFile.exists()) { if (preferredFile.exists()) {
try { try {
texture = new Texture(preferredFile); if (Forge.isTextureFilteringEnabled()){
texture = new Texture(preferredFile, true);
texture.setFilter(Texture.TextureFilter.MipMapLinearLinear, Texture.TextureFilter.Linear);
} else {
texture = new Texture(preferredFile);
}
} }
catch (final Exception e) { catch (final Exception e) {
System.err.println("Failed to load skin file: " + preferredFile); System.err.println("Failed to load skin file: " + preferredFile);
@@ -409,7 +419,12 @@ public enum FSkinImage implements FImage {
if (texture == null) { if (texture == null) {
if (defaultFile.exists()) { if (defaultFile.exists()) {
try { try {
texture = new Texture(defaultFile); if (Forge.isTextureFilteringEnabled()){
texture = new Texture(defaultFile, true);
texture.setFilter(Texture.TextureFilter.MipMapLinearLinear, Texture.TextureFilter.Linear);
} else {
texture = new Texture(defaultFile);
}
} }
catch (final Exception e) { catch (final Exception e) {
System.err.println("Failed to load skin file: " + defaultFile); System.err.println("Failed to load skin file: " + defaultFile);

View File

@@ -109,12 +109,15 @@ public class CardFaceSymbols {
MANA_IMAGES.put("firststrike", FSkinImage.IMG_ABILITY_FIRST_STRIKE); MANA_IMAGES.put("firststrike", FSkinImage.IMG_ABILITY_FIRST_STRIKE);
MANA_IMAGES.put("fear", FSkinImage.IMG_ABILITY_FEAR); MANA_IMAGES.put("fear", FSkinImage.IMG_ABILITY_FEAR);
MANA_IMAGES.put("flying", FSkinImage.IMG_ABILITY_FLYING); MANA_IMAGES.put("flying", FSkinImage.IMG_ABILITY_FLYING);
MANA_IMAGES.put("haste", FSkinImage.IMG_ABILITY_HASTE);
MANA_IMAGES.put("hexproof", FSkinImage.IMG_ABILITY_HEXPROOF); MANA_IMAGES.put("hexproof", FSkinImage.IMG_ABILITY_HEXPROOF);
MANA_IMAGES.put("horsemanship", FSkinImage.IMG_ABILITY_HORSEMANSHIP);
MANA_IMAGES.put("indestructible", FSkinImage.IMG_ABILITY_INDESTRUCTIBLE); MANA_IMAGES.put("indestructible", FSkinImage.IMG_ABILITY_INDESTRUCTIBLE);
MANA_IMAGES.put("intimidate", FSkinImage.IMG_ABILITY_INTIMIDATE); MANA_IMAGES.put("intimidate", FSkinImage.IMG_ABILITY_INTIMIDATE);
MANA_IMAGES.put("lifelink", FSkinImage.IMG_ABILITY_LIFELINK); MANA_IMAGES.put("lifelink", FSkinImage.IMG_ABILITY_LIFELINK);
MANA_IMAGES.put("menace", FSkinImage.IMG_ABILITY_MENACE); MANA_IMAGES.put("menace", FSkinImage.IMG_ABILITY_MENACE);
MANA_IMAGES.put("reach", FSkinImage.IMG_ABILITY_REACH); MANA_IMAGES.put("reach", FSkinImage.IMG_ABILITY_REACH);
MANA_IMAGES.put("shadow", FSkinImage.IMG_ABILITY_SHADOW);
MANA_IMAGES.put("shroud", FSkinImage.IMG_ABILITY_SHROUD); MANA_IMAGES.put("shroud", FSkinImage.IMG_ABILITY_SHROUD);
MANA_IMAGES.put("trample", FSkinImage.IMG_ABILITY_TRAMPLE); MANA_IMAGES.put("trample", FSkinImage.IMG_ABILITY_TRAMPLE);
MANA_IMAGES.put("vigilance", FSkinImage.IMG_ABILITY_VIGILANCE); MANA_IMAGES.put("vigilance", FSkinImage.IMG_ABILITY_VIGILANCE);

View File

@@ -562,6 +562,7 @@ public class CardRenderer {
if (card.isToken()){ if (card.isToken()){
CardFaceSymbols.drawSymbol("token", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("token", g, abiX, abiY, abiScale, abiScale);
abiY += abiSpace; abiY += abiSpace;
abiCount += 1;
} }
if (card.getCurrentState().hasFlying()) { if (card.getCurrentState().hasFlying()) {
CardFaceSymbols.drawSymbol("flying", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("flying", g, abiX, abiY, abiScale, abiScale);
@@ -570,6 +571,13 @@ public class CardRenderer {
abiY += abiSpace; abiY += abiSpace;
abiCount += 1; abiCount += 1;
} }
if (card.getCurrentState().hasHaste()) {
CardFaceSymbols.drawSymbol("haste", g, abiX, abiY, abiScale, abiScale);
if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
abiY += abiSpace;
abiCount += 1;
}
if (card.getCurrentState().hasDoubleStrike()) { if (card.getCurrentState().hasDoubleStrike()) {
CardFaceSymbols.drawSymbol("doublestrike", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("doublestrike", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){
@@ -585,6 +593,7 @@ public class CardRenderer {
abiCount += 1; abiCount += 1;
} }
if (card.getCurrentState().hasDeathtouch()) { if (card.getCurrentState().hasDeathtouch()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("deathtouch", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("deathtouch", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);} g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
@@ -592,6 +601,7 @@ public class CardRenderer {
abiCount += 1; abiCount += 1;
} }
if (card.getCurrentState().hasIndestructible()) { if (card.getCurrentState().hasIndestructible()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("indestructible", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("indestructible", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);} g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
@@ -599,6 +609,7 @@ public class CardRenderer {
abiCount += 1; abiCount += 1;
} }
if (card.getCurrentState().hasMenace()) { if (card.getCurrentState().hasMenace()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("menace", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("menace", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);} g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
@@ -606,6 +617,7 @@ public class CardRenderer {
abiCount += 1; abiCount += 1;
} }
if (card.getCurrentState().hasFear()) { if (card.getCurrentState().hasFear()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("fear", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("fear", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);} g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
@@ -613,13 +625,31 @@ public class CardRenderer {
abiCount += 1; abiCount += 1;
} }
if (card.getCurrentState().hasIntimidate()) { if (card.getCurrentState().hasIntimidate()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("intimidate", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("intimidate", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);} g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
abiY += abiSpace; abiY += abiSpace;
abiCount += 1; abiCount += 1;
} }
if (card.getCurrentState().hasShadow()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("shadow", g, abiX, abiY, abiScale, abiScale);
if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
abiY += abiSpace;
abiCount += 1;
}
if (card.getCurrentState().hasHorsemanship()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("horsemanship", g, abiX, abiY, abiScale, abiScale);
if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
abiY += abiSpace;
abiCount += 1;
}
if (card.getCurrentState().hasHexproof()) { if (card.getCurrentState().hasHexproof()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
if (!card.getCurrentState().getHexproofKey().isEmpty()){ if (!card.getCurrentState().getHexproofKey().isEmpty()){
String[] splitK = card.getCurrentState().getHexproofKey().split(":"); String[] splitK = card.getCurrentState().getHexproofKey().split(":");
List<String> listHK = Arrays.asList(splitK); List<String> listHK = Arrays.asList(splitK);
@@ -681,6 +711,7 @@ public class CardRenderer {
} }
} }
else if (card.getCurrentState().hasShroud()) { else if (card.getCurrentState().hasShroud()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("shroud", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("shroud", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);} g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
@@ -688,14 +719,15 @@ public class CardRenderer {
abiCount += 1; abiCount += 1;
} }
if (card.getCurrentState().hasVigilance()) { if (card.getCurrentState().hasVigilance()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("vigilance", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("vigilance", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);} g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
abiY += abiSpace; abiY += abiSpace;
abiCount += 1; abiCount += 1;
} }
//TODO: If ability icons is more than 7 where to put???
if (card.getCurrentState().hasTrample()) { if (card.getCurrentState().hasTrample()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("trample", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("trample", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);} g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
@@ -703,6 +735,7 @@ public class CardRenderer {
abiCount += 1; abiCount += 1;
} }
if (card.getCurrentState().hasReach()) { if (card.getCurrentState().hasReach()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("reach", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("reach", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);} g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
@@ -710,6 +743,7 @@ public class CardRenderer {
abiCount += 1; abiCount += 1;
} }
if (card.getCurrentState().hasLifelink()) { if (card.getCurrentState().hasLifelink()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("lifelink", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("lifelink", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);} g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
@@ -717,6 +751,7 @@ public class CardRenderer {
abiCount += 1; abiCount += 1;
} }
if (card.getCurrentState().hasDefender()) { if (card.getCurrentState().hasDefender()) {
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
CardFaceSymbols.drawSymbol("defender", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("defender", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){
g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);} g.setAlphaComposite(0.6f); g.fillRect(Color.BLACK, abiX, abiY, abiScale, abiScale ); g.setAlphaComposite(oldAlpha);}
@@ -725,6 +760,7 @@ public class CardRenderer {
} }
//Protection Icons //Protection Icons
if (!card.getCurrentState().getProtectionKey().isEmpty()){ if (!card.getCurrentState().getProtectionKey().isEmpty()){
if (abiCount > 5 ) { abiY = cy + (abiScale * (abiCount - 6)); abiX = cx + ((cw*2)/1.93f); }
if (card.getCurrentState().getProtectionKey().contains("everything") || card.getCurrentState().getProtectionKey().contains("allcolors")) { if (card.getCurrentState().getProtectionKey().contains("everything") || card.getCurrentState().getProtectionKey().contains("allcolors")) {
CardFaceSymbols.drawSymbol("protectAll", g, abiX, abiY, abiScale, abiScale); CardFaceSymbols.drawSymbol("protectAll", g, abiX, abiY, abiScale, abiScale);
if (unselectable){ if (unselectable){

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -55,69 +55,69 @@ public enum FSkinProp {
IMG_ZONE_POISON (new int[] {320, 80, 40, 40}, PropType.IMAGE), IMG_ZONE_POISON (new int[] {320, 80, 40, 40}, PropType.IMAGE),
//mana images //mana images
IMG_MANA_B (new int[] {360, 160, 40, 40}, PropType.IMAGE), IMG_MANA_B (new int[] {166, 2, 80, 80}, PropType.MANAICONS),
IMG_MANA_R (new int[] {400, 160, 40, 40}, PropType.IMAGE), IMG_MANA_R (new int[] {330, 2, 80, 80}, PropType.MANAICONS),
IMG_MANA_COLORLESS (new int[] {440, 160, 40, 40}, PropType.IMAGE), IMG_MANA_COLORLESS (new int[] {248, 2, 80, 80}, PropType.MANAICONS),
IMG_MANA_U (new int[] {360, 200, 40, 40}, PropType.IMAGE), IMG_MANA_U (new int[] {330, 84, 80, 80}, PropType.MANAICONS),
IMG_MANA_G (new int[] {400, 200, 40, 40}, PropType.IMAGE), IMG_MANA_G (new int[] {166, 84, 80, 80}, PropType.MANAICONS),
IMG_MANA_W (new int[] {440, 200, 40, 40}, PropType.IMAGE), IMG_MANA_W (new int[] {412, 84, 80, 80}, PropType.MANAICONS),
IMG_MANA_2B (new int[] {360, 400, 40, 40}, PropType.IMAGE), IMG_MANA_2B (new int[] {166, 494, 80, 80}, PropType.MANAICONS),
IMG_MANA_2G (new int[] {400, 400, 40, 40}, PropType.IMAGE), IMG_MANA_2G (new int[] {248, 494, 80, 80}, PropType.MANAICONS),
IMG_MANA_2R (new int[] {440, 400, 40, 40}, PropType.IMAGE), IMG_MANA_2R (new int[] {330, 494, 80, 80}, PropType.MANAICONS),
IMG_MANA_2U (new int[] {440, 360, 40, 40}, PropType.IMAGE), IMG_MANA_2U (new int[] {412, 494, 80, 80}, PropType.MANAICONS),
IMG_MANA_2W (new int[] {400, 360, 40, 40}, PropType.IMAGE), IMG_MANA_2W (new int[] {166, 576, 80, 80}, PropType.MANAICONS),
IMG_MANA_HYBRID_BG (new int[] {360, 240, 40, 40}, PropType.IMAGE), IMG_MANA_HYBRID_BG (new int[] {166, 166, 80, 80}, PropType.MANAICONS),
IMG_MANA_HYBRID_BR (new int[] {400, 240, 40, 40}, PropType.IMAGE), IMG_MANA_HYBRID_BR (new int[] {248, 166, 80, 80}, PropType.MANAICONS),
IMG_MANA_HYBRID_GU (new int[] {360, 280, 40, 40}, PropType.IMAGE), IMG_MANA_HYBRID_GU (new int[] {166, 248, 80, 80}, PropType.MANAICONS),
IMG_MANA_HYBRID_GW (new int[] {440, 280, 40, 40}, PropType.IMAGE), IMG_MANA_HYBRID_GW (new int[] {248, 248, 80, 80}, PropType.MANAICONS),
IMG_MANA_HYBRID_RG (new int[] {360, 320, 40, 40}, PropType.IMAGE), IMG_MANA_HYBRID_RG (new int[] {166, 330, 80, 80}, PropType.MANAICONS),
IMG_MANA_HYBRID_RW (new int[] {400, 320, 40, 40}, PropType.IMAGE), IMG_MANA_HYBRID_RW (new int[] {248, 330, 80, 80}, PropType.MANAICONS),
IMG_MANA_HYBRID_UB (new int[] {440, 240, 40, 40}, PropType.IMAGE), IMG_MANA_HYBRID_UB (new int[] {330, 330, 80, 80}, PropType.MANAICONS),
IMG_MANA_HYBRID_UR (new int[] {440, 320, 40, 40}, PropType.IMAGE), IMG_MANA_HYBRID_UR (new int[] {412, 330, 80, 80}, PropType.MANAICONS),
IMG_MANA_HYBRID_WB (new int[] {400, 280, 40, 40}, PropType.IMAGE), IMG_MANA_HYBRID_WB (new int[] {330, 412, 80, 80}, PropType.MANAICONS),
IMG_MANA_HYBRID_WU (new int[] {360, 360, 40, 40}, PropType.IMAGE), IMG_MANA_HYBRID_WU (new int[] {412, 412, 80, 80}, PropType.MANAICONS),
IMG_MANA_PHRYX_U (new int[] {320, 200, 40, 40}, PropType.IMAGE), IMG_MANA_PHRYX_U (new int[] {330, 248, 80, 80}, PropType.MANAICONS),
IMG_MANA_PHRYX_W (new int[] {320, 240, 40, 40}, PropType.IMAGE), IMG_MANA_PHRYX_W (new int[] {412, 248, 80, 80}, PropType.MANAICONS),
IMG_MANA_PHRYX_R (new int[] {320, 280, 40, 40}, PropType.IMAGE), IMG_MANA_PHRYX_R (new int[] {412, 166, 80, 80}, PropType.MANAICONS),
IMG_MANA_PHRYX_G (new int[] {320, 320, 40, 40}, PropType.IMAGE), IMG_MANA_PHRYX_G (new int[] {330, 166, 80, 80}, PropType.MANAICONS),
IMG_MANA_PHRYX_B (new int[] {320, 360, 40, 40}, PropType.IMAGE), IMG_MANA_PHRYX_B (new int[] {248, 84, 80, 80}, PropType.MANAICONS),
IMG_MANA_SNOW (new int[] {320, 160, 40, 40}, PropType.IMAGE), IMG_MANA_SNOW (new int[] {412, 2, 80, 80}, PropType.MANAICONS),
//generic mana images //generic mana images
IMG_MANA_0 (new int[] {640, 200, 20, 20}, PropType.IMAGE), IMG_MANA_0 (new int[] {2, 2, 80, 80}, PropType.MANAICONS),
IMG_MANA_1 (new int[] {660, 200, 20, 20}, PropType.IMAGE), IMG_MANA_1 (new int[] {84, 2, 80, 80}, PropType.MANAICONS),
IMG_MANA_2 (new int[] {640, 220, 20, 20}, PropType.IMAGE), IMG_MANA_2 (new int[] {2, 84, 80, 80}, PropType.MANAICONS),
IMG_MANA_3 (new int[] {660, 220, 20, 20}, PropType.IMAGE), IMG_MANA_3 (new int[] {84, 84, 80, 80}, PropType.MANAICONS),
IMG_MANA_4 (new int[] {640, 240, 20, 20}, PropType.IMAGE), IMG_MANA_4 (new int[] {2, 166, 80, 80}, PropType.MANAICONS),
IMG_MANA_5 (new int[] {660, 240, 20, 20}, PropType.IMAGE), IMG_MANA_5 (new int[] {84, 166, 80, 80}, PropType.MANAICONS),
IMG_MANA_6 (new int[] {640, 260, 20, 20}, PropType.IMAGE), IMG_MANA_6 (new int[] {2, 248, 80, 80}, PropType.MANAICONS),
IMG_MANA_7 (new int[] {660, 260, 20, 20}, PropType.IMAGE), IMG_MANA_7 (new int[] {84, 248, 80, 80}, PropType.MANAICONS),
IMG_MANA_8 (new int[] {640, 280, 20, 20}, PropType.IMAGE), IMG_MANA_8 (new int[] {2, 330, 80, 80}, PropType.MANAICONS),
IMG_MANA_9 (new int[] {660, 280, 20, 20}, PropType.IMAGE), IMG_MANA_9 (new int[] {84, 330, 80, 80}, PropType.MANAICONS),
IMG_MANA_10 (new int[] {640, 300, 20, 20}, PropType.IMAGE), IMG_MANA_10 (new int[] {2, 412, 80, 80}, PropType.MANAICONS),
IMG_MANA_11 (new int[] {660, 300, 20, 20}, PropType.IMAGE), IMG_MANA_11 (new int[] {84, 412, 80, 80}, PropType.MANAICONS),
IMG_MANA_12 (new int[] {640, 320, 20, 20}, PropType.IMAGE), IMG_MANA_12 (new int[] {2, 494, 80, 80}, PropType.MANAICONS),
IMG_MANA_13 (new int[] {660, 320, 20, 20}, PropType.IMAGE), IMG_MANA_13 (new int[] {84, 494, 80, 80}, PropType.MANAICONS),
IMG_MANA_14 (new int[] {640, 340, 20, 20}, PropType.IMAGE), IMG_MANA_14 (new int[] {2, 576, 80, 80}, PropType.MANAICONS),
IMG_MANA_15 (new int[] {660, 340, 20, 20}, PropType.IMAGE), IMG_MANA_15 (new int[] {84, 576, 80, 80}, PropType.MANAICONS),
IMG_MANA_16 (new int[] {640, 360, 20, 20}, PropType.IMAGE), IMG_MANA_16 (new int[] {2, 658, 80, 80}, PropType.MANAICONS),
IMG_MANA_17 (new int[] {660, 360, 20, 20}, PropType.IMAGE), IMG_MANA_17 (new int[] {84, 658, 80, 80}, PropType.MANAICONS),
IMG_MANA_18 (new int[] {640, 380, 20, 20}, PropType.IMAGE), IMG_MANA_18 (new int[] {166, 658, 80, 80}, PropType.MANAICONS),
IMG_MANA_19 (new int[] {660, 380, 20, 20}, PropType.IMAGE), IMG_MANA_19 (new int[] {248, 658, 80, 80}, PropType.MANAICONS),
IMG_MANA_20 (new int[] {640, 400, 20, 20}, PropType.IMAGE), IMG_MANA_20 (new int[] {330, 658, 80, 80}, PropType.MANAICONS),
IMG_MANA_X (new int[] {660, 400, 20, 20}, PropType.IMAGE), IMG_MANA_X (new int[] {248, 576, 80, 80}, PropType.MANAICONS),
IMG_MANA_Y (new int[] {640, 420, 20, 20}, PropType.IMAGE), IMG_MANA_Y (new int[] {330, 576, 80, 80}, PropType.MANAICONS),
IMG_MANA_Z (new int[] {660, 420, 20, 20}, PropType.IMAGE), IMG_MANA_Z (new int[] {412, 576, 80, 80}, PropType.MANAICONS),
//combination images for CMC ranges //combination images for CMC ranges
IMG_CMC_LOW (new int[] {640, 200, 40, 40}, PropType.IMAGE), IMG_CMC_LOW (new int[] {2, 2, 160, 160}, PropType.MANAICONS),
IMG_CMC_LOW_MID (new int[] {640, 220, 40, 40}, PropType.IMAGE), IMG_CMC_LOW_MID (new int[] {2, 84, 160, 160}, PropType.MANAICONS),
IMG_CMC_MID_HIGH (new int[] {640, 240, 40, 40}, PropType.IMAGE), IMG_CMC_MID_HIGH (new int[] {2, 166, 160, 160}, PropType.MANAICONS),
IMG_CMC_HIGH (new int[] {640, 260, 40, 40}, PropType.IMAGE), IMG_CMC_HIGH (new int[] {2, 248, 160, 160}, PropType.MANAICONS),
//gameplay images //gameplay images
IMG_TAP (new int[] {640, 440, 20, 20}, PropType.IMAGE), IMG_TAP (new int[] {166, 412, 80, 80}, PropType.MANAICONS),
IMG_UNTAP (new int[] {660, 440, 20, 20}, PropType.IMAGE), IMG_UNTAP (new int[] {248, 412, 80, 80}, PropType.MANAICONS),
IMG_CHAOS (new int[] {320, 400, 40, 40}, PropType.IMAGE), IMG_CHAOS (new int[] {320, 400, 40, 40}, PropType.IMAGE),
IMG_SLASH (new int[] {660, 400, 10, 13}, PropType.IMAGE), IMG_SLASH (new int[] {660, 400, 10, 13}, PropType.IMAGE),
IMG_ATTACK (new int[] {160, 320, 80, 80, 32, 32}, PropType.IMAGE), IMG_ATTACK (new int[] {160, 320, 80, 80, 32, 32}, PropType.IMAGE),
@@ -231,15 +231,15 @@ public enum FSkinProp {
//editor images //editor images
IMG_STAR_OUTINE (new int[] {640, 460, 20, 20}, PropType.IMAGE), IMG_STAR_OUTINE (new int[] {640, 460, 20, 20}, PropType.IMAGE),
IMG_STAR_FILLED (new int[] {660, 460, 20, 20}, PropType.IMAGE), IMG_STAR_FILLED (new int[] {660, 460, 20, 20}, PropType.IMAGE),
IMG_ARTIFACT (new int[] {280, 720, 40, 40}, PropType.IMAGE), IMG_ARTIFACT (new int[] {412, 658, 80, 80}, PropType.MANAICONS),
IMG_CREATURE (new int[] {240, 720, 40, 40}, PropType.IMAGE), IMG_CREATURE (new int[] {2, 740, 80, 80}, PropType.MANAICONS),
IMG_ENCHANTMENT (new int[] {320, 720, 40, 40}, PropType.IMAGE), IMG_ENCHANTMENT (new int[] {84, 740, 80, 80}, PropType.MANAICONS),
IMG_INSTANT (new int[] {360, 720, 40, 40}, PropType.IMAGE), IMG_INSTANT (new int[] {166, 740, 80, 80}, PropType.MANAICONS),
IMG_LAND (new int[] {120, 720, 40, 40}, PropType.IMAGE), IMG_LAND (new int[] {248, 740, 80, 80}, PropType.MANAICONS),
IMG_MULTI (new int[] {80, 720, 40, 40}, PropType.IMAGE), IMG_MULTI (new int[] {80, 720, 40, 40}, PropType.IMAGE),
IMG_PLANESWALKER (new int[] {200, 720, 40, 40}, PropType.IMAGE), IMG_PLANESWALKER (new int[] {330, 740, 80, 80}, PropType.MANAICONS),
IMG_PACK (new int[] {80, 760, 40, 40}, PropType.IMAGE), IMG_PACK (new int[] {80, 760, 40, 40}, PropType.IMAGE),
IMG_SORCERY (new int[] {160, 720, 40, 40}, PropType.IMAGE), IMG_SORCERY (new int[] {412, 740, 80, 80}, PropType.MANAICONS),
IMG_COMMANDER (new int[] {120, 760, 40, 40}, PropType.IMAGE), IMG_COMMANDER (new int[] {120, 760, 40, 40}, PropType.IMAGE),
//achievement trophies and shelf //achievement trophies and shelf
@@ -253,14 +253,14 @@ public enum FSkinProp {
IMG_TROPHY_SHELF (new int[] {0, 223, 798, 257}, PropType.TROPHY), IMG_TROPHY_SHELF (new int[] {0, 223, 798, 257}, PropType.TROPHY),
//planar conquest images //planar conquest images
IMG_PLANE_MONITOR (new int[] {0, 0, 443, 315}, PropType.PLANAR_CONQUEST), IMG_PLANE_MONITOR (new int[] {2, 466, 900, 650}, PropType.PLANAR_CONQUEST),
IMG_AETHER_SHARD (new int[] {0, 315, 120, 120}, PropType.PLANAR_CONQUEST), IMG_AETHER_SHARD (new int[] {244, 224, 240, 240}, PropType.PLANAR_CONQUEST),
IMG_MULTIVERSE (new int[] {125, 320, 110, 110}, PropType.PLANAR_CONQUEST), IMG_MULTIVERSE (new int[] {486, 244, 220, 220}, PropType.PLANAR_CONQUEST),
IMG_SPELLBOOK (new int[] {240, 315, 120, 120}, PropType.PLANAR_CONQUEST), IMG_SPELLBOOK (new int[] {2, 224, 240, 240}, PropType.PLANAR_CONQUEST),
IMG_PW_BADGE_COMMON (new int[] {443, 0, 110, 110}, PropType.PLANAR_CONQUEST), IMG_PW_BADGE_COMMON (new int[] {224, 2, 220, 220}, PropType.PLANAR_CONQUEST),
IMG_PW_BADGE_UNCOMMON (new int[] {443, 110, 110, 110}, PropType.PLANAR_CONQUEST), IMG_PW_BADGE_UNCOMMON (new int[] {668, 22, 220, 220}, PropType.PLANAR_CONQUEST),
IMG_PW_BADGE_RARE (new int[] {443, 220, 110, 110}, PropType.PLANAR_CONQUEST), IMG_PW_BADGE_RARE (new int[] {2, 2, 220, 220}, PropType.PLANAR_CONQUEST),
IMG_PW_BADGE_MYTHIC (new int[] {443, 330, 110, 110}, PropType.PLANAR_CONQUEST), IMG_PW_BADGE_MYTHIC (new int[] {446, 2, 220, 220}, PropType.PLANAR_CONQUEST),
//button images //button images
IMG_BTN_START_UP (new int[] {480, 200, 160, 80}, PropType.ICON), IMG_BTN_START_UP (new int[] {480, 200, 160, 80}, PropType.ICON),
@@ -300,12 +300,15 @@ public enum FSkinProp {
IMG_ABILITY_FIRST_STRIKE (new int[] {248, 2, 80, 80}, PropType.ABILITY), IMG_ABILITY_FIRST_STRIKE (new int[] {248, 2, 80, 80}, PropType.ABILITY),
IMG_ABILITY_FEAR (new int[] {84, 412, 80, 80}, PropType.ABILITY), IMG_ABILITY_FEAR (new int[] {84, 412, 80, 80}, PropType.ABILITY),
IMG_ABILITY_FLYING (new int[] {330, 2, 80, 80}, PropType.ABILITY), IMG_ABILITY_FLYING (new int[] {330, 2, 80, 80}, PropType.ABILITY),
IMG_ABILITY_HASTE (new int[] {412, 494, 80, 80}, PropType.ABILITY),
IMG_ABILITY_HEXPROOF (new int[] {412, 2, 80, 80}, PropType.ABILITY), IMG_ABILITY_HEXPROOF (new int[] {412, 2, 80, 80}, PropType.ABILITY),
IMG_ABILITY_HORSEMANSHIP (new int[] {2, 576, 80, 80}, PropType.ABILITY),
IMG_ABILITY_INDESTRUCTIBLE (new int[] {2, 84, 80, 80}, PropType.ABILITY), IMG_ABILITY_INDESTRUCTIBLE (new int[] {2, 84, 80, 80}, PropType.ABILITY),
IMG_ABILITY_INTIMIDATE (new int[] {166, 412, 80, 80}, PropType.ABILITY), IMG_ABILITY_INTIMIDATE (new int[] {166, 412, 80, 80}, PropType.ABILITY),
IMG_ABILITY_LIFELINK (new int[] {84, 84, 80, 80}, PropType.ABILITY), IMG_ABILITY_LIFELINK (new int[] {84, 84, 80, 80}, PropType.ABILITY),
IMG_ABILITY_MENACE (new int[] {166, 84, 80, 80}, PropType.ABILITY), IMG_ABILITY_MENACE (new int[] {166, 84, 80, 80}, PropType.ABILITY),
IMG_ABILITY_REACH (new int[] {248, 330, 80, 80}, PropType.ABILITY), IMG_ABILITY_REACH (new int[] {248, 330, 80, 80}, PropType.ABILITY),
IMG_ABILITY_SHADOW (new int[] {84, 576, 80, 80}, PropType.ABILITY),
IMG_ABILITY_SHROUD (new int[] {330, 330, 80, 80}, PropType.ABILITY), IMG_ABILITY_SHROUD (new int[] {330, 330, 80, 80}, PropType.ABILITY),
IMG_ABILITY_TRAMPLE (new int[] {412, 330, 80, 80}, PropType.ABILITY), IMG_ABILITY_TRAMPLE (new int[] {412, 330, 80, 80}, PropType.ABILITY),
IMG_ABILITY_VIGILANCE (new int[] {2, 412, 80, 80}, PropType.ABILITY), IMG_ABILITY_VIGILANCE (new int[] {2, 412, 80, 80}, PropType.ABILITY),
@@ -371,6 +374,7 @@ public enum FSkinProp {
OLD_FOIL, OLD_FOIL,
TROPHY, TROPHY,
ABILITY, ABILITY,
MANAICONS,
PLANAR_CONQUEST, PLANAR_CONQUEST,
FAVICON FAVICON
} }

View File

@@ -94,6 +94,7 @@ public final class ForgeConstants {
public static final String SPRITE_OLD_FOILS_FILE = "sprite_old_foils.png"; public static final String SPRITE_OLD_FOILS_FILE = "sprite_old_foils.png";
public static final String SPRITE_TROPHIES_FILE = "sprite_trophies.png"; public static final String SPRITE_TROPHIES_FILE = "sprite_trophies.png";
public static final String SPRITE_ABILITY_FILE = "sprite_ability.png"; public static final String SPRITE_ABILITY_FILE = "sprite_ability.png";
public static final String SPRITE_MANAICONS_FILE = "sprite_manaicons.png";
public static final String SPRITE_AVATARS_FILE = "sprite_avatars.png"; public static final String SPRITE_AVATARS_FILE = "sprite_avatars.png";
public static final String SPRITE_FAVICONS_FILE = "sprite_favicons.png"; public static final String SPRITE_FAVICONS_FILE = "sprite_favicons.png";
public static final String SPRITE_PLANAR_CONQUEST_FILE = "sprite_planar_conquest.png"; public static final String SPRITE_PLANAR_CONQUEST_FILE = "sprite_planar_conquest.png";