mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
[Mobile] update bg animation and overlays
This commit is contained in:
@@ -7,6 +7,7 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
|
import forge.util.*;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
@@ -36,10 +37,6 @@ import forge.trackable.TrackableCollection;
|
|||||||
import forge.trackable.TrackableObject;
|
import forge.trackable.TrackableObject;
|
||||||
import forge.trackable.TrackableProperty;
|
import forge.trackable.TrackableProperty;
|
||||||
import forge.trackable.Tracker;
|
import forge.trackable.Tracker;
|
||||||
import forge.util.CardTranslation;
|
|
||||||
import forge.util.Lang;
|
|
||||||
import forge.util.Localizer;
|
|
||||||
import forge.util.TextUtil;
|
|
||||||
import forge.util.collect.FCollectionView;
|
import forge.util.collect.FCollectionView;
|
||||||
|
|
||||||
public class CardView extends GameEntityView {
|
public class CardView extends GameEntityView {
|
||||||
@@ -311,12 +308,19 @@ public class CardView extends GameEntityView {
|
|||||||
state.updateLoyalty(c);
|
state.updateLoyalty(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getCrackOverlayInt() {
|
||||||
|
if (get(TrackableProperty.CrackOverlay) == null)
|
||||||
|
return 0;
|
||||||
|
return get(TrackableProperty.CrackOverlay);
|
||||||
|
}
|
||||||
public int getDamage() {
|
public int getDamage() {
|
||||||
return get(TrackableProperty.Damage);
|
return get(TrackableProperty.Damage);
|
||||||
}
|
}
|
||||||
void updateDamage(Card c) {
|
void updateDamage(Card c) {
|
||||||
set(TrackableProperty.Damage, c.getDamage());
|
set(TrackableProperty.Damage, c.getDamage());
|
||||||
updateLethalDamage(c);
|
updateLethalDamage(c);
|
||||||
|
//update CrackOverlay (currently 16 overlays)
|
||||||
|
set(TrackableProperty.CrackOverlay, c.getDamage() > 0 ? MyRandom.getRandom().nextInt(16) : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getAssignedDamage() {
|
public int getAssignedDamage() {
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ public enum TrackableProperty {
|
|||||||
CloneOrigin(TrackableTypes.CardViewType),
|
CloneOrigin(TrackableTypes.CardViewType),
|
||||||
ExiledWith(TrackableTypes.CardViewType),
|
ExiledWith(TrackableTypes.CardViewType),
|
||||||
WasDestroyed(TrackableTypes.BooleanType),
|
WasDestroyed(TrackableTypes.BooleanType),
|
||||||
|
CrackOverlay(TrackableTypes.IntegerType),
|
||||||
|
|
||||||
ImprintedCards(TrackableTypes.CardViewCollectionType),
|
ImprintedCards(TrackableTypes.CardViewCollectionType),
|
||||||
HauntedBy(TrackableTypes.CardViewCollectionType),
|
HauntedBy(TrackableTypes.CardViewCollectionType),
|
||||||
|
|||||||
@@ -719,9 +719,11 @@ public class Graphics {
|
|||||||
batch.begin();
|
batch.begin();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void drawCardImage(FImage image, float x, float y, float w, float h, boolean drawGrayscale) {
|
public void drawCardImage(FImage image, TextureRegion damage_overlay, float x, float y, float w, float h, boolean drawGrayscale, boolean damaged) {
|
||||||
if (!drawGrayscale) {
|
if (!drawGrayscale) {
|
||||||
image.draw(this, x, y, w, h);
|
image.draw(this, x, y, w, h);
|
||||||
|
if (damage_overlay != null && damaged)
|
||||||
|
batch.draw(damage_overlay, adjustX(x), adjustY(y, h), w, h);
|
||||||
} else {
|
} else {
|
||||||
batch.end();
|
batch.end();
|
||||||
shaderGrayscale.bind();
|
shaderGrayscale.bind();
|
||||||
@@ -736,9 +738,11 @@ public class Graphics {
|
|||||||
batch.begin();
|
batch.begin();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void drawCardImage(Texture image, float x, float y, float w, float h, boolean drawGrayscale) {
|
public void drawCardImage(Texture image, TextureRegion damage_overlay, float x, float y, float w, float h, boolean drawGrayscale, boolean damaged) {
|
||||||
if (!drawGrayscale) {
|
if (!drawGrayscale) {
|
||||||
batch.draw(image, adjustX(x), adjustY(y, h), w, h);
|
batch.draw(image, adjustX(x), adjustY(y, h), w, h);
|
||||||
|
if (damage_overlay != null && damaged)
|
||||||
|
batch.draw(damage_overlay, adjustX(x), adjustY(y, h), w, h);
|
||||||
} else {
|
} else {
|
||||||
batch.end();
|
batch.end();
|
||||||
shaderGrayscale.bind();
|
shaderGrayscale.bind();
|
||||||
@@ -753,10 +757,12 @@ public class Graphics {
|
|||||||
batch.begin();
|
batch.begin();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void drawCardImage(TextureRegion image, float x, float y, float w, float h, boolean drawGrayscale) {
|
public void drawCardImage(TextureRegion image, TextureRegion damage_overlay, float x, float y, float w, float h, boolean drawGrayscale, boolean damaged) {
|
||||||
if (image != null) {
|
if (image != null) {
|
||||||
if (!drawGrayscale) {
|
if (!drawGrayscale) {
|
||||||
batch.draw(image, adjustX(x), adjustY(y, h), w, h);
|
batch.draw(image, adjustX(x), adjustY(y, h), w, h);
|
||||||
|
if (damage_overlay != null && damaged)
|
||||||
|
batch.draw(damage_overlay, adjustX(x), adjustY(y, h), w, h);
|
||||||
} else {
|
} else {
|
||||||
batch.end();
|
batch.end();
|
||||||
shaderGrayscale.bind();
|
shaderGrayscale.bind();
|
||||||
@@ -772,6 +778,25 @@ public class Graphics {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public void drawGrayTransitionImage(FImage image, float x, float y, float w, float h, boolean withDarkOverlay, float percentage) {
|
||||||
|
batch.end();
|
||||||
|
shaderGrayscale.bind();
|
||||||
|
shaderGrayscale.setUniformf("u_grayness", percentage);
|
||||||
|
batch.setShader(shaderGrayscale);
|
||||||
|
batch.begin();
|
||||||
|
//draw gray
|
||||||
|
image.draw(this, x, y, w, h);
|
||||||
|
//reset
|
||||||
|
batch.end();
|
||||||
|
batch.setShader(null);
|
||||||
|
batch.begin();
|
||||||
|
if(withDarkOverlay){
|
||||||
|
float oldalpha = alphaComposite;
|
||||||
|
setAlphaComposite(0.4f);
|
||||||
|
fillRect(Color.BLACK, x, y, w, h);
|
||||||
|
setAlphaComposite(oldalpha);
|
||||||
|
}
|
||||||
|
}
|
||||||
public void drawImage(FImage image, float x, float y, float w, float h) {
|
public void drawImage(FImage image, float x, float y, float w, float h) {
|
||||||
drawImage(image, x, y, w, h, false);
|
drawImage(image, x, y, w, h, false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ public class FSkin {
|
|||||||
private static final Map<FSkinProp, FSkinImage> images = new HashMap<>(512);
|
private static final Map<FSkinProp, FSkinImage> images = new HashMap<>(512);
|
||||||
private static final Map<Integer, TextureRegion> avatars = new HashMap<>(150);
|
private static final Map<Integer, TextureRegion> avatars = new HashMap<>(150);
|
||||||
private static final Map<Integer, TextureRegion> sleeves = new HashMap<>(64);
|
private static final Map<Integer, TextureRegion> sleeves = new HashMap<>(64);
|
||||||
|
private static final Map<Integer, TextureRegion> cracks = new HashMap<>(16);
|
||||||
private static final Map<Integer, TextureRegion> borders = new HashMap<>();
|
private static final Map<Integer, TextureRegion> borders = new HashMap<>();
|
||||||
private static final Map<Integer, TextureRegion> deckbox = new HashMap<>();
|
private static final Map<Integer, TextureRegion> deckbox = new HashMap<>();
|
||||||
|
|
||||||
@@ -39,7 +40,7 @@ public class FSkin {
|
|||||||
private static boolean loaded = false;
|
private static boolean loaded = false;
|
||||||
public static Texture hdLogo = null;
|
public static Texture hdLogo = null;
|
||||||
public static Texture overlay_alpha = null;
|
public static Texture overlay_alpha = null;
|
||||||
public static Texture scratch = null;
|
public static Texture splatter = null;
|
||||||
|
|
||||||
public static void changeSkin(final String skinName) {
|
public static void changeSkin(final String skinName) {
|
||||||
final ForgePreferences prefs = FModel.getPreferences();
|
final ForgePreferences prefs = FModel.getPreferences();
|
||||||
@@ -143,13 +144,13 @@ public class FSkin {
|
|||||||
} else {
|
} else {
|
||||||
overlay_alpha = null;
|
overlay_alpha = null;
|
||||||
}
|
}
|
||||||
final FileHandle scratch_overlay = getDefaultSkinFile("scratch.png");
|
final FileHandle splatter_overlay = getDefaultSkinFile("splatter.png");
|
||||||
if (scratch_overlay.exists()) {
|
if (splatter_overlay.exists()) {
|
||||||
Texture txScratch = new Texture(scratch_overlay, true);
|
Texture txSplatter = new Texture(splatter_overlay, true);
|
||||||
txScratch.setFilter(Texture.TextureFilter.MipMapLinearLinear, Texture.TextureFilter.Linear);
|
txSplatter.setFilter(Texture.TextureFilter.MipMapLinearLinear, Texture.TextureFilter.Linear);
|
||||||
scratch = txScratch;
|
splatter = txSplatter;
|
||||||
} else {
|
} else {
|
||||||
scratch = null;
|
splatter = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (splashScreen != null) {
|
if (splashScreen != null) {
|
||||||
@@ -236,6 +237,7 @@ public class FSkin {
|
|||||||
final FileHandle f11 = getSkinFile(ForgeConstants.SPRITE_BUTTONS_FILE);
|
final FileHandle f11 = getSkinFile(ForgeConstants.SPRITE_BUTTONS_FILE);
|
||||||
final FileHandle f12 = getSkinFile(ForgeConstants.SPRITE_START_FILE);
|
final FileHandle f12 = getSkinFile(ForgeConstants.SPRITE_START_FILE);
|
||||||
final FileHandle f13 = getDefaultSkinFile(ForgeConstants.SPRITE_DECKBOX_FILE);
|
final FileHandle f13 = getDefaultSkinFile(ForgeConstants.SPRITE_DECKBOX_FILE);
|
||||||
|
final FileHandle f17 = getDefaultSkinFile(ForgeConstants.SPRITE_CRACKS_FILE);
|
||||||
|
|
||||||
/*TODO Themeable
|
/*TODO Themeable
|
||||||
final FileHandle f14 = getDefaultSkinFile(ForgeConstants.SPRITE_SETLOGO_FILE);
|
final FileHandle f14 = getDefaultSkinFile(ForgeConstants.SPRITE_SETLOGO_FILE);
|
||||||
@@ -313,8 +315,8 @@ public class FSkin {
|
|||||||
int counter = 0;
|
int counter = 0;
|
||||||
int scount = 0;
|
int scount = 0;
|
||||||
Color pxTest;
|
Color pxTest;
|
||||||
Pixmap pxDefaultAvatars, pxPreferredAvatars, pxDefaultSleeves;
|
Pixmap pxDefaultAvatars, pxPreferredAvatars, pxDefaultSleeves, pxCracks;
|
||||||
Texture txDefaultAvatars, txPreferredAvatars, txDefaultSleeves;
|
Texture txDefaultAvatars, txPreferredAvatars, txDefaultSleeves, txCracks;
|
||||||
|
|
||||||
pxDefaultAvatars = new Pixmap(f4);
|
pxDefaultAvatars = new Pixmap(f4);
|
||||||
pxDefaultSleeves = new Pixmap(f8);
|
pxDefaultSleeves = new Pixmap(f8);
|
||||||
@@ -399,6 +401,21 @@ public class FSkin {
|
|||||||
FSkin.sleeves.put(scount++, new TextureRegion(txDefaultSleeves, i, j, 360, 500));
|
FSkin.sleeves.put(scount++, new TextureRegion(txDefaultSleeves, i, j, 360, 500));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//cracks
|
||||||
|
pxCracks = new Pixmap(f17);
|
||||||
|
txCracks = new Texture(f17, textureFilter);
|
||||||
|
int crackCount = 0;
|
||||||
|
if (textureFilter)
|
||||||
|
txCracks.setFilter(Texture.TextureFilter.MipMapLinearLinear, Texture.TextureFilter.Linear);
|
||||||
|
|
||||||
|
for (int j = 0; j < 4; j++) {
|
||||||
|
int x = j * 200;
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
int y = i * 279;
|
||||||
|
FSkin.cracks.put(crackCount++, new TextureRegion(txCracks, x, y, 200, 279));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//borders
|
//borders
|
||||||
Texture bordersBW = new Texture(f10);
|
Texture bordersBW = new Texture(f10);
|
||||||
FSkin.borders.put(0, new TextureRegion(bordersBW, 2, 2, 672, 936));
|
FSkin.borders.put(0, new TextureRegion(bordersBW, 2, 2, 672, 936));
|
||||||
@@ -417,6 +434,7 @@ public class FSkin {
|
|||||||
preferredIcons.dispose();
|
preferredIcons.dispose();
|
||||||
pxDefaultAvatars.dispose();
|
pxDefaultAvatars.dispose();
|
||||||
pxDefaultSleeves.dispose();
|
pxDefaultSleeves.dispose();
|
||||||
|
pxCracks.dispose();
|
||||||
}
|
}
|
||||||
catch (final Exception e) {
|
catch (final Exception e) {
|
||||||
System.err.println("FSkin$loadFull: Missing a sprite (default icons, "
|
System.err.println("FSkin$loadFull: Missing a sprite (default icons, "
|
||||||
@@ -513,6 +531,10 @@ public class FSkin {
|
|||||||
return sleeves;
|
return sleeves;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Map<Integer, TextureRegion> getCracks() {
|
||||||
|
return cracks;
|
||||||
|
}
|
||||||
|
|
||||||
public static Map<Integer, TextureRegion> getBorders() {
|
public static Map<Integer, TextureRegion> getBorders() {
|
||||||
return borders;
|
return borders;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -486,6 +486,7 @@ public enum FSkinImage implements FImage {
|
|||||||
MANAICONS(ForgeConstants.SPRITE_MANAICONS_FILE),
|
MANAICONS(ForgeConstants.SPRITE_MANAICONS_FILE),
|
||||||
SETLOGOS(ForgeConstants.SPRITE_SETLOGO_FILE),
|
SETLOGOS(ForgeConstants.SPRITE_SETLOGO_FILE),
|
||||||
WATERMARKS(ForgeConstants.SPRITE_WATERMARK_FILE),
|
WATERMARKS(ForgeConstants.SPRITE_WATERMARK_FILE),
|
||||||
|
CRACKS(ForgeConstants.SPRITE_CRACKS_FILE),
|
||||||
CARDBG(ForgeConstants.SPRITE_CARDBG_FILE),
|
CARDBG(ForgeConstants.SPRITE_CARDBG_FILE),
|
||||||
PLANAR_CONQUEST(ForgeConstants.SPRITE_PLANAR_CONQUEST_FILE);
|
PLANAR_CONQUEST(ForgeConstants.SPRITE_PLANAR_CONQUEST_FILE);
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
import forge.ImageKeys;
|
import forge.ImageKeys;
|
||||||
import forge.localinstance.properties.ForgeConstants;
|
import forge.localinstance.properties.ForgeConstants;
|
||||||
import forge.util.FileUtil;
|
import forge.util.*;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
@@ -57,9 +57,6 @@ import forge.localinstance.properties.ForgePreferences.FPref;
|
|||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
import forge.screens.match.MatchController;
|
import forge.screens.match.MatchController;
|
||||||
import forge.toolbox.FList;
|
import forge.toolbox.FList;
|
||||||
import forge.util.CardTranslation;
|
|
||||||
import forge.util.TextBounds;
|
|
||||||
import forge.util.Utils;
|
|
||||||
|
|
||||||
public class CardRenderer {
|
public class CardRenderer {
|
||||||
public enum CardStackPosition {
|
public enum CardStackPosition {
|
||||||
@@ -573,6 +570,7 @@ public class CardRenderer {
|
|||||||
boolean canshow = MatchController.instance.mayView(card);
|
boolean canshow = MatchController.instance.mayView(card);
|
||||||
boolean showsleeves = card.isFaceDown() && card.isInZone(EnumSet.of(ZoneType.Exile)); //fix facedown card image ie gonti lord of luxury
|
boolean showsleeves = card.isFaceDown() && card.isInZone(EnumSet.of(ZoneType.Exile)); //fix facedown card image ie gonti lord of luxury
|
||||||
Texture image = new RendererCachedCardImage(card, false).getImage( showAltState ? card.getAlternateState().getImageKey() : card.getCurrentState().getImageKey());
|
Texture image = new RendererCachedCardImage(card, false).getImage( showAltState ? card.getAlternateState().getImageKey() : card.getCurrentState().getImageKey());
|
||||||
|
TextureRegion crack_overlay = FSkin.getCracks().get(card.getCrackOverlayInt());
|
||||||
FImage sleeves = MatchController.getPlayerSleeve(card.getOwner());
|
FImage sleeves = MatchController.getPlayerSleeve(card.getOwner());
|
||||||
float radius = (h - w)/8;
|
float radius = (h - w)/8;
|
||||||
float croppedArea = isModernFrame(card) ? CROP_MULTIPLIER : 0.97f;
|
float croppedArea = isModernFrame(card) ? CROP_MULTIPLIER : 0.97f;
|
||||||
@@ -590,9 +588,9 @@ public class CardRenderer {
|
|||||||
g.setAlphaComposite(oldAlpha);
|
g.setAlphaComposite(oldAlpha);
|
||||||
} else if (showsleeves) {
|
} else if (showsleeves) {
|
||||||
if (!card.isForeTold())
|
if (!card.isForeTold())
|
||||||
g.drawCardImage(sleeves, x, y, w, h, card.wasDestroyed());
|
g.drawCardImage(sleeves, crack_overlay, x, y, w, h, card.wasDestroyed(), card.getDamage() > 0);
|
||||||
else
|
else
|
||||||
g.drawCardImage(image, x, y, w, h, card.wasDestroyed());
|
g.drawCardImage(image, crack_overlay, x, y, w, h, card.wasDestroyed(), card.getDamage() > 0);
|
||||||
} else {
|
} else {
|
||||||
if(FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_ROTATE_PLANE_OR_PHENOMENON)
|
if(FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_ROTATE_PLANE_OR_PHENOMENON)
|
||||||
&& (card.getCurrentState().isPhenomenon() || card.getCurrentState().isPlane()) && rotate){
|
&& (card.getCurrentState().isPhenomenon() || card.getCurrentState().isPlane()) && rotate){
|
||||||
@@ -610,19 +608,19 @@ public class CardRenderer {
|
|||||||
} else {
|
} else {
|
||||||
if (Forge.enableUIMask.equals("Full") && canshow) {
|
if (Forge.enableUIMask.equals("Full") && canshow) {
|
||||||
if (ImageCache.isBorderlessCardArt(image))
|
if (ImageCache.isBorderlessCardArt(image))
|
||||||
g.drawCardImage(image, x, y, w, h, card.wasDestroyed());
|
g.drawCardImage(image, crack_overlay, x, y, w, h, card.wasDestroyed(), card.getDamage() > 0);
|
||||||
else {
|
else {
|
||||||
boolean t = (card.getCurrentState().getOriginalColors() != card.getCurrentState().getColors()) || card.getCurrentState().hasChangeColors();
|
boolean t = (card.getCurrentState().getOriginalColors() != card.getCurrentState().getColors()) || card.getCurrentState().hasChangeColors();
|
||||||
g.drawBorderImage(ImageCache.getBorderImage(image.toString(), canshow), ImageCache.borderColor(image), ImageCache.getTint(card, image), x, y, w, h, t); //tint check for changed colors
|
g.drawBorderImage(ImageCache.getBorderImage(image.toString(), canshow), ImageCache.borderColor(image), ImageCache.getTint(card, image), x, y, w, h, t); //tint check for changed colors
|
||||||
g.drawCardImage(ImageCache.croppedBorderImage(image), x + radius / 2.4f-minusxy, y + radius / 2-minusxy, w * croppedArea, h * croppedArea, card.wasDestroyed());
|
g.drawCardImage(ImageCache.croppedBorderImage(image), crack_overlay, x + radius / 2.4f-minusxy, y + radius / 2-minusxy, w * croppedArea, h * croppedArea, card.wasDestroyed(), card.getDamage() > 0);
|
||||||
}
|
}
|
||||||
} else if (Forge.enableUIMask.equals("Crop") && canshow) {
|
} else if (Forge.enableUIMask.equals("Crop") && canshow) {
|
||||||
g.drawCardImage(ImageCache.croppedBorderImage(image), x, y, w, h, card.wasDestroyed());
|
g.drawCardImage(ImageCache.croppedBorderImage(image), crack_overlay, x, y, w, h, card.wasDestroyed(), card.getDamage() > 0);
|
||||||
} else {
|
} else {
|
||||||
if (canshow)
|
if (canshow)
|
||||||
g.drawCardImage(image, x, y, w, h, card.wasDestroyed());
|
g.drawCardImage(image, crack_overlay, x, y, w, h, card.wasDestroyed(), card.getDamage() > 0);
|
||||||
else // draw card back sleeves
|
else // draw card back sleeves
|
||||||
g.drawCardImage(sleeves, x, y, w, h, card.wasDestroyed());
|
g.drawCardImage(sleeves, crack_overlay, x, y, w, h, card.wasDestroyed(), card.getDamage() > 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -580,7 +580,7 @@ public class MatchScreen extends FScreen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class BGAnimation extends ForgeAnimation {
|
private class BGAnimation extends ForgeAnimation {
|
||||||
private static final float DURATION = 0.2f;
|
private static final float DURATION = 1.5f;
|
||||||
private float progress = 0;
|
private float progress = 0;
|
||||||
private boolean finished;
|
private boolean finished;
|
||||||
|
|
||||||
@@ -593,7 +593,7 @@ public class MatchScreen extends FScreen {
|
|||||||
percentage = 1;
|
percentage = 1;
|
||||||
}
|
}
|
||||||
g.setAlphaComposite(percentage);
|
g.setAlphaComposite(percentage);
|
||||||
g.drawImage(image, x, y, w, h, darkoverlay);
|
g.drawGrayTransitionImage(image, x, y, w, h, darkoverlay, 1-(percentage*1));
|
||||||
g.setAlphaComposite(oldAlpha);
|
g.setAlphaComposite(oldAlpha);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -643,7 +643,7 @@ public class MatchScreen extends FScreen {
|
|||||||
bgFullWidth = w;
|
bgFullWidth = w;
|
||||||
bgHeight = scaledbgHeight;
|
bgHeight = scaledbgHeight;
|
||||||
}
|
}
|
||||||
if (bgAnimation != null && !isGameFast) {
|
if (bgAnimation != null && !isGameFast && !MatchController.instance.getGameView().isMatchOver()) {
|
||||||
bgAnimation.drawBackground(g, FSkinTexture.valueOf(imageName), x + (w - bgFullWidth) / 2, y, bgFullWidth, bgHeight, true);
|
bgAnimation.drawBackground(g, FSkinTexture.valueOf(imageName), x + (w - bgFullWidth) / 2, y, bgFullWidth, bgHeight, true);
|
||||||
} else {
|
} else {
|
||||||
g.drawImage(FSkinTexture.valueOf(imageName), x + (w - bgFullWidth) / 2, y, bgFullWidth, bgHeight, true);
|
g.drawImage(FSkinTexture.valueOf(imageName), x + (w - bgFullWidth) / 2, y, bgFullWidth, bgHeight, true);
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class VAvatar extends FDisplayObject {
|
|||||||
private static final float DURATION = 0.6f;
|
private static final float DURATION = 0.6f;
|
||||||
private float progress = 0;
|
private float progress = 0;
|
||||||
private boolean finished;
|
private boolean finished;
|
||||||
Texture scratch = FSkin.scratch;
|
Texture splatter = FSkin.splatter;
|
||||||
|
|
||||||
private void drawAvatar(Graphics g, FImage image, float x, float y, float w, float h) {
|
private void drawAvatar(Graphics g, FImage image, float x, float y, float w, float h) {
|
||||||
float percentage = progress / DURATION;
|
float percentage = progress / DURATION;
|
||||||
@@ -55,14 +55,14 @@ public class VAvatar extends FDisplayObject {
|
|||||||
player.setAvatarWasDamaged(false);
|
player.setAvatarWasDamaged(false);
|
||||||
}
|
}
|
||||||
float mod = w/2f;
|
float mod = w/2f;
|
||||||
if (scratch == null) {
|
if (splatter == null) {
|
||||||
g.setColorRGBA(1, percentage, percentage, g.getfloatAlphaComposite());
|
g.setColorRGBA(1, percentage, percentage, g.getfloatAlphaComposite());
|
||||||
g.drawAvatarImage(image, x, y, w, h, player.getHasLost());
|
g.drawAvatarImage(image, x, y, w, h, player.getHasLost());
|
||||||
g.resetColorRGBA(g.getfloatAlphaComposite());
|
g.resetColorRGBA(g.getfloatAlphaComposite());
|
||||||
} else {
|
} else {
|
||||||
g.drawAvatarImage(image, x, y, w, h, player.getHasLost());
|
g.drawAvatarImage(image, x, y, w, h, player.getHasLost());
|
||||||
g.setAlphaComposite(1-(percentage*1));
|
g.setAlphaComposite(1-(percentage*1));
|
||||||
g.drawImage(scratch, x-mod/2, y-mod/2, w+mod, h+mod);
|
g.drawImage(splatter, x-mod/2, y-mod/2, w+mod, h+mod);
|
||||||
g.resetAlphaComposite();
|
g.resetAlphaComposite();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -371,7 +371,7 @@ public class VPlayerPanel extends FContainer {
|
|||||||
if (!Forge.altZoneTabs)
|
if (!Forge.altZoneTabs)
|
||||||
field.setFieldModifier(0);
|
field.setFieldModifier(0);
|
||||||
else
|
else
|
||||||
field.setFieldModifier(avatarWidth);
|
field.setFieldModifier(avatarWidth/16);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -546,6 +546,12 @@ public class VPlayerPanel extends FContainer {
|
|||||||
public void draw(Graphics g) {
|
public void draw(Graphics g) {
|
||||||
float x, y, w, h;
|
float x, y, w, h;
|
||||||
|
|
||||||
|
if (Forge.altZoneTabs) {
|
||||||
|
//draw extra
|
||||||
|
if (isAltZoneDisplay(this) && selectedTab == this) {
|
||||||
|
g.fillRect(DISPLAY_AREA_BACK_COLOR, 0, isFlipped() ? INFO_TAB_PADDING_Y : 0, getWidth(), getHeight() - INFO_TAB_PADDING_Y);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (selectedTab == this) {
|
if (selectedTab == this) {
|
||||||
y = 0;
|
y = 0;
|
||||||
w = getWidth();
|
w = getWidth();
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ public class FCardPanel extends FDisplayObject {
|
|||||||
private static final float DURATION = 0.6f;
|
private static final float DURATION = 0.6f;
|
||||||
private float progress = 0;
|
private float progress = 0;
|
||||||
private boolean finished;
|
private boolean finished;
|
||||||
private Texture scratch = FSkin.scratch;
|
private Texture splatter = FSkin.splatter;
|
||||||
|
|
||||||
private void drawCard(Graphics g, CardView card, float x, float y, float w, float h, float edgeOffset) {
|
private void drawCard(Graphics g, CardView card, float x, float y, float w, float h, float edgeOffset) {
|
||||||
float percentage = progress / DURATION;
|
float percentage = progress / DURATION;
|
||||||
@@ -107,9 +107,9 @@ public class FCardPanel extends FDisplayObject {
|
|||||||
g.startRotateTransform(x + edgeOffset, y + h - edgeOffset, getTappedAngle());
|
g.startRotateTransform(x + edgeOffset, y + h - edgeOffset, getTappedAngle());
|
||||||
}
|
}
|
||||||
CardRenderer.drawCardWithOverlays(g, card, x-mod/2, y-mod/2, w+mod, h+mod, getStackPosition());
|
CardRenderer.drawCardWithOverlays(g, card, x-mod/2, y-mod/2, w+mod, h+mod, getStackPosition());
|
||||||
if (scratch != null) {
|
if (splatter != null) {
|
||||||
g.setAlphaComposite(0.6f);
|
g.setAlphaComposite(0.6f);
|
||||||
g.drawCardImage(scratch, x-mod/2, y-mod/2, w+mod, h+mod, true);
|
g.drawCardImage(splatter, null,x-mod/2, y-mod/2, w+mod, h+mod, true, false);
|
||||||
g.setAlphaComposite(oldAlpha);
|
g.setAlphaComposite(oldAlpha);
|
||||||
}
|
}
|
||||||
if (tapped) {
|
if (tapped) {
|
||||||
@@ -230,7 +230,6 @@ public class FCardPanel extends FDisplayObject {
|
|||||||
if (tapped) {
|
if (tapped) {
|
||||||
g.endTransform();
|
g.endTransform();
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (tapped) {
|
if (tapped) {
|
||||||
//reset untapAnimation
|
//reset untapAnimation
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 127 KiB |
BIN
forge-gui/res/skins/default/sprite_cracks.png
Normal file
BIN
forge-gui/res/skins/default/sprite_cracks.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 489 KiB |
@@ -117,6 +117,7 @@ public final class ForgeConstants {
|
|||||||
public static final String SPRITE_START_FILE = "sprite_start.png";
|
public static final String SPRITE_START_FILE = "sprite_start.png";
|
||||||
public static final String SPRITE_MANAICONS_FILE = "sprite_manaicons.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_CRACKS_FILE = "sprite_cracks.png";
|
||||||
public static final String SPRITE_SLEEVES_FILE = "sprite_sleeves.png";
|
public static final String SPRITE_SLEEVES_FILE = "sprite_sleeves.png";
|
||||||
public static final String SPRITE_SLEEVES2_FILE = "sprite_sleeves2.png";
|
public static final String SPRITE_SLEEVES2_FILE = "sprite_sleeves2.png";
|
||||||
public static final String SPRITE_FAVICONS_FILE = "sprite_favicons.png";
|
public static final String SPRITE_FAVICONS_FILE = "sprite_favicons.png";
|
||||||
|
|||||||
Reference in New Issue
Block a user