mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Merge branch 'newBranch' into 'master'
Update border color tint Closes #1608 See merge request core-developers/forge!3268
This commit is contained in:
@@ -1082,6 +1082,7 @@ public class CardView extends GameEntityView {
|
||||
public String getProtectionKey() { return get(TrackableProperty.ProtectionKey); }
|
||||
public String getHexproofKey() { return get(TrackableProperty.HexproofKey); }
|
||||
public boolean hasDeathtouch() { return get(TrackableProperty.HasDeathtouch); }
|
||||
public boolean hasDevoid() { return get(TrackableProperty.HasDevoid); }
|
||||
public boolean hasDefender() { return get(TrackableProperty.HasDefender); }
|
||||
public boolean hasDoubleStrike() { return get(TrackableProperty.HasDoubleStrike); }
|
||||
public boolean hasFirstStrike() { return get(TrackableProperty.HasFirstStrike); }
|
||||
@@ -1118,6 +1119,7 @@ public class CardView extends GameEntityView {
|
||||
void updateKeywords(Card c, CardState state) {
|
||||
c.updateKeywordsCache(state);
|
||||
set(TrackableProperty.HasDeathtouch, c.hasKeyword(Keyword.DEATHTOUCH, state));
|
||||
set(TrackableProperty.HasDevoid, c.hasKeyword(Keyword.DEVOID, state));
|
||||
set(TrackableProperty.HasDefender, c.hasKeyword(Keyword.DEFENDER, state));
|
||||
set(TrackableProperty.HasDoubleStrike, c.hasKeyword(Keyword.DOUBLE_STRIKE, state));
|
||||
set(TrackableProperty.HasFirstStrike, c.hasKeyword(Keyword.FIRST_STRIKE, state));
|
||||
|
||||
@@ -92,6 +92,7 @@ public enum TrackableProperty {
|
||||
|
||||
KeywordKey(TrackableTypes.StringType),
|
||||
HasDeathtouch(TrackableTypes.BooleanType),
|
||||
HasDevoid(TrackableTypes.BooleanType),
|
||||
HasDefender(TrackableTypes.BooleanType),
|
||||
HasDoubleStrike(TrackableTypes.BooleanType),
|
||||
HasFirstStrike(TrackableTypes.BooleanType),
|
||||
|
||||
@@ -637,7 +637,7 @@ public class Graphics {
|
||||
|
||||
public void drawBorderImage(FImage image, Color borderColor, Color tintColor, float x, float y, float w, float h, boolean tint) {
|
||||
float oldalpha = alphaComposite;
|
||||
if(tint){
|
||||
if(tint && !tintColor.equals(borderColor)){
|
||||
drawRoundRect(2f, borderLining(borderColor.toString()), x, y, w, h, (h-w)/12);
|
||||
fillRoundRect(tintColor, x, y, w, h, (h-w)/12);
|
||||
} else {
|
||||
|
||||
@@ -288,15 +288,20 @@ public class ImageCache {
|
||||
public static FImage getBorderImage(String textureString) {
|
||||
return getBorder(textureString);
|
||||
}
|
||||
public static Color getTint(CardView c) {
|
||||
public static Color getTint(CardView c, Texture t) {
|
||||
if (c == null)
|
||||
return Color.CLEAR;
|
||||
return borderColor(t);
|
||||
if (c.isFaceDown())
|
||||
return Color.CLEAR;
|
||||
return Color.valueOf("#171717");
|
||||
|
||||
//todo: determine correct splitcards colors
|
||||
|
||||
CardView.CardStateView state = c.getCurrentState();
|
||||
if (state.getColors().isColorless()) //Moonlace -> target spell or permanent becomes colorless.
|
||||
if (state.getColors().isColorless()) { //Moonlace -> target spell or permanent becomes colorless.
|
||||
if (state.hasDevoid()) //devoid is colorless at all zones so return its corresponding border color...
|
||||
return borderColor(t);
|
||||
return Color.valueOf("#A0A6A4");
|
||||
}
|
||||
else if (state.getColors().isMonoColor()) {
|
||||
if (state.getColors().hasBlack())
|
||||
return Color.valueOf("#48494a");
|
||||
@@ -311,6 +316,7 @@ public class ImageCache {
|
||||
}
|
||||
else if (state.getColors().isMulticolor())
|
||||
return Color.valueOf("#F9E084");
|
||||
return Color.CLEAR;
|
||||
|
||||
return borderColor(t);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -522,7 +522,7 @@ public class CardRenderer {
|
||||
g.drawImage(image, x, y, w, h);
|
||||
else {
|
||||
boolean t = (card.getCurrentState().getOriginalColors() != card.getCurrentState().getColors()) || card.getCurrentState().hasChangeColors();
|
||||
g.drawBorderImage(ImageCache.getBorderImage(image.toString(), canshow), ImageCache.borderColor(image), ImageCache.getTint(card), 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.drawImage(ImageCache.croppedBorderImage(image), x + radius / 2.4f-minusxy, y + radius / 2-minusxy, w * croppedArea, h * croppedArea);
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user