mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
Add ReplacementEffectView, StaticAbility View for Netplay Dialog
This commit is contained in:
@@ -60,6 +60,7 @@ public abstract class ReplacementEffect extends TriggerReplacementBase {
|
||||
private boolean hasRun = false;
|
||||
|
||||
private List<ReplacementEffect> otherChoices = null;
|
||||
private ReplacementEffectView view = null;
|
||||
|
||||
/**
|
||||
* Gets the id.
|
||||
@@ -109,6 +110,15 @@ public abstract class ReplacementEffect extends TriggerReplacementBase {
|
||||
}
|
||||
}
|
||||
|
||||
public ReplacementEffectView getView() {
|
||||
if (view == null)
|
||||
view = new ReplacementEffectView(this);
|
||||
else {
|
||||
view.updateHostCard(this);
|
||||
view.updateDescription(this);
|
||||
}
|
||||
return view;
|
||||
}
|
||||
/**
|
||||
* Sets the checks for run.
|
||||
*
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package forge.game.replacement;
|
||||
|
||||
import forge.game.card.CardView;
|
||||
import forge.game.card.IHasCardView;
|
||||
import forge.trackable.TrackableObject;
|
||||
import forge.trackable.TrackableProperty;
|
||||
import forge.trackable.Tracker;
|
||||
|
||||
public class ReplacementEffectView extends TrackableObject implements IHasCardView {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
ReplacementEffectView(ReplacementEffect re) {
|
||||
this(re, re.getHostCard() == null || re.getHostCard().getGame() == null ? null : re.getHostCard().getGame().getTracker());
|
||||
}
|
||||
|
||||
ReplacementEffectView(ReplacementEffect re, Tracker tracker) {
|
||||
super(re.getId(), tracker);
|
||||
updateHostCard(re);
|
||||
updateDescription(re);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CardView getCardView() {
|
||||
return this.getHostCard();
|
||||
}
|
||||
|
||||
public CardView getHostCard() {
|
||||
return get(TrackableProperty.RE_HostCard);
|
||||
}
|
||||
|
||||
void updateHostCard(ReplacementEffect re) {
|
||||
set(TrackableProperty.RE_HostCard, CardView.get(re.getHostCard()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return this.getDescription();
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return get(TrackableProperty.RE_Description);
|
||||
}
|
||||
|
||||
void updateDescription(ReplacementEffect re) {
|
||||
set(TrackableProperty.RE_Description, re.getDescription());
|
||||
}
|
||||
}
|
||||
@@ -62,6 +62,7 @@ public class StaticAbility extends CardTraitBase implements IIdentifiable, Clone
|
||||
private int mayPlayTurn = 0;
|
||||
|
||||
private SpellAbility payingTrigSA;
|
||||
private StaticAbilityView view = null;
|
||||
|
||||
@Override
|
||||
public final int getId() {
|
||||
@@ -231,6 +232,16 @@ public class StaticAbility extends CardTraitBase implements IIdentifiable, Clone
|
||||
this.setCardState(state);
|
||||
}
|
||||
|
||||
public StaticAbilityView getView() {
|
||||
if (view == null)
|
||||
view = new StaticAbilityView(this);
|
||||
else {
|
||||
view.updateHostCard(this);
|
||||
view.updateDescription(this);
|
||||
}
|
||||
return view;
|
||||
}
|
||||
|
||||
public final CardCollectionView applyContinuousAbilityBefore(final StaticAbilityLayer layer, final CardCollectionView preList) {
|
||||
if (!shouldApplyContinuousAbility(layer, false)) {
|
||||
return null;
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package forge.game.staticability;
|
||||
|
||||
import forge.game.card.CardView;
|
||||
import forge.game.card.IHasCardView;
|
||||
import forge.trackable.TrackableObject;
|
||||
import forge.trackable.TrackableProperty;
|
||||
import forge.trackable.Tracker;
|
||||
|
||||
public class StaticAbilityView extends TrackableObject implements IHasCardView {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
StaticAbilityView(StaticAbility st) {
|
||||
this(st, st.getHostCard() == null || st.getHostCard().getGame() == null ? null : st.getHostCard().getGame().getTracker());
|
||||
}
|
||||
|
||||
StaticAbilityView(StaticAbility st, Tracker tracker) {
|
||||
super(st.getId(), tracker);
|
||||
updateHostCard(st);
|
||||
updateDescription(st);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CardView getCardView() {
|
||||
return this.getHostCard();
|
||||
}
|
||||
|
||||
public CardView getHostCard() {
|
||||
return get(TrackableProperty.ST_HostCard);
|
||||
}
|
||||
|
||||
void updateHostCard(StaticAbility st) {
|
||||
set(TrackableProperty.ST_HostCard, CardView.get(st.getHostCard()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return this.getDescription();
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return get(TrackableProperty.ST_Description);
|
||||
}
|
||||
|
||||
void updateDescription(StaticAbility st) {
|
||||
set(TrackableProperty.ST_Description, st.toString());
|
||||
}
|
||||
}
|
||||
@@ -241,6 +241,14 @@ public enum TrackableProperty {
|
||||
CanPlay(TrackableTypes.BooleanType),
|
||||
PromptIfOnlyPossibleAbility(TrackableTypes.BooleanType),
|
||||
|
||||
//ReplacementEffectView
|
||||
RE_HostCard(TrackableTypes.CardViewType),
|
||||
RE_Description(TrackableTypes.StringType),
|
||||
|
||||
//StaticAbilityView
|
||||
ST_HostCard(TrackableTypes.CardViewType),
|
||||
ST_Description(TrackableTypes.StringType),
|
||||
|
||||
//HasBackSide
|
||||
BackSideName(TrackableTypes.StringType),
|
||||
HasBackSide(TrackableTypes.BooleanType),
|
||||
|
||||
Reference in New Issue
Block a user