mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
update BuyButton for RewardScene
This commit is contained in:
@@ -47,6 +47,7 @@ public class RewardScene extends UIScene {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean showTooltips = false;
|
private boolean showTooltips = false;
|
||||||
|
|
||||||
public enum Type {
|
public enum Type {
|
||||||
Shop,
|
Shop,
|
||||||
Loot,
|
Loot,
|
||||||
@@ -87,6 +88,7 @@ public class RewardScene extends UIScene {
|
|||||||
super.disconnected(controller);
|
super.disconnected(controller);
|
||||||
updateDetailButton();
|
updateDetailButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateDetailButton() {
|
private void updateDetailButton() {
|
||||||
detailButton.setVisible(Controllers.getCurrent() != null);
|
detailButton.setVisible(Controllers.getCurrent() != null);
|
||||||
detailButton.layout();
|
detailButton.layout();
|
||||||
@@ -98,24 +100,16 @@ public class RewardScene extends UIScene {
|
|||||||
if (selectable == null)
|
if (selectable == null)
|
||||||
return;
|
return;
|
||||||
RewardActor actor;
|
RewardActor actor;
|
||||||
if(selectable.actor instanceof BuyButton)
|
if (selectable.actor instanceof BuyButton) {
|
||||||
{
|
actor = ((BuyButton) selectable.actor).rewardActor;
|
||||||
actor= ((BuyButton) selectable.actor).reward;
|
} else if (selectable.actor instanceof RewardActor) {
|
||||||
}
|
|
||||||
else if (selectable.actor instanceof RewardActor)
|
|
||||||
{
|
|
||||||
actor = (RewardActor) selectable.actor;
|
actor = (RewardActor) selectable.actor;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(actor.toolTipIsVisible())
|
if (actor.toolTipIsVisible()) {
|
||||||
{
|
|
||||||
actor.hideTooltip();
|
actor.hideTooltip();
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!actor.isFlipped())
|
if (!actor.isFlipped())
|
||||||
actor.showTooltip();
|
actor.showTooltip();
|
||||||
}
|
}
|
||||||
@@ -144,13 +138,16 @@ public class RewardScene extends UIScene {
|
|||||||
}
|
}
|
||||||
Forge.switchToLast();
|
Forge.switchToLast();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reactivateInputs() {
|
public void reactivateInputs() {
|
||||||
Gdx.input.setInputProcessor(stage);
|
Gdx.input.setInputProcessor(stage);
|
||||||
doneButton.toFront();
|
doneButton.toFront();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean done() {
|
public boolean done() {
|
||||||
return done(false);
|
return done(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean done(boolean skipShowLoot) {
|
boolean done(boolean skipShowLoot) {
|
||||||
GameHUD.getInstance().getTouchpad().setVisible(false);
|
GameHUD.getInstance().getTouchpad().setVisible(false);
|
||||||
if (!skipShowLoot) {
|
if (!skipShowLoot) {
|
||||||
@@ -174,6 +171,7 @@ public class RewardScene extends UIScene {
|
|||||||
quitScene();
|
quitScene();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void clearGenerated() {
|
void clearGenerated() {
|
||||||
for (Actor actor : new Array.ArrayIterator<>(generated)) {
|
for (Actor actor : new Array.ArrayIterator<>(generated)) {
|
||||||
if (!(actor instanceof RewardActor)) {
|
if (!(actor instanceof RewardActor)) {
|
||||||
@@ -187,7 +185,8 @@ public class RewardScene extends UIScene {
|
|||||||
reward.clearHoldToolTip();
|
reward.clearHoldToolTip();
|
||||||
try {
|
try {
|
||||||
stage.getActors().removeValue(reward, true);
|
stage.getActors().removeValue(reward, true);
|
||||||
} catch (Exception e) {}
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -298,17 +297,25 @@ public class RewardScene extends UIScene {
|
|||||||
loadRewards(rewards, type, shopActor);
|
loadRewards(rewards, type, shopActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void updateCollectionPool() {
|
||||||
|
if (Type.Shop != this.type)
|
||||||
|
return;
|
||||||
|
if (this.collectionPool == null)
|
||||||
|
this.collectionPool = new ItemPool<>(PaperCard.class);
|
||||||
|
else
|
||||||
|
this.collectionPool.clear();
|
||||||
|
|
||||||
|
this.collectionPool.addAllFlat(AdventurePlayer.current().getCollectionCards(true).toFlatList());
|
||||||
|
}
|
||||||
|
|
||||||
public void loadRewards(Array<Reward> newRewards, Type type, ShopActor shopActor) {
|
public void loadRewards(Array<Reward> newRewards, Type type, ShopActor shopActor) {
|
||||||
clearSelectable();
|
clearSelectable();
|
||||||
this.type = type;
|
this.type = type;
|
||||||
doneClicked = false;
|
doneClicked = false;
|
||||||
|
updateCollectionPool();
|
||||||
if (type == Type.Shop) {
|
if (type == Type.Shop) {
|
||||||
this.shopActor = shopActor;
|
this.shopActor = shopActor;
|
||||||
this.changes = shopActor.getMapStage().getChanges();
|
this.changes = shopActor.getMapStage().getChanges();
|
||||||
if (this.collectionPool == null) {
|
|
||||||
this.collectionPool = new ItemPool<>(PaperCard.class);
|
|
||||||
this.collectionPool.addAllFlat(AdventurePlayer.current().getCollectionCards(true).toFlatList());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (Actor actor : new Array.ArrayIterator<>(generated)) {
|
for (Actor actor : new Array.ArrayIterator<>(generated)) {
|
||||||
actor.remove();
|
actor.remove();
|
||||||
@@ -325,9 +332,7 @@ public class RewardScene extends UIScene {
|
|||||||
shopNameLabel.setVisible(true);
|
shopNameLabel.setVisible(true);
|
||||||
shopNameLabel.setText("[%?SHINY]{GRADIENT}" + shopName + "{ENDGRADIENT}");
|
shopNameLabel.setText("[%?SHINY]{GRADIENT}" + shopName + "{ENDGRADIENT}");
|
||||||
shopNameLabel.skipToTheEnd();
|
shopNameLabel.skipToTheEnd();
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
shopNameLabel.setVisible(false);
|
shopNameLabel.setVisible(false);
|
||||||
}
|
}
|
||||||
Actor background = ui.findActor("market_background");
|
Actor background = ui.findActor("market_background");
|
||||||
@@ -367,8 +372,7 @@ public class RewardScene extends UIScene {
|
|||||||
|
|
||||||
if (shopActor.canRestock()) {
|
if (shopActor.canRestock()) {
|
||||||
restockButton.setVisible(true);
|
restockButton.setVisible(true);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
restockButton.setVisible(false);
|
restockButton.setVisible(false);
|
||||||
restockButton.setDisabled(true);
|
restockButton.setDisabled(true);
|
||||||
}
|
}
|
||||||
@@ -464,21 +468,12 @@ public class RewardScene extends UIScene {
|
|||||||
if (currentRow != ((i + 1) / numberOfColumns))
|
if (currentRow != ((i + 1) / numberOfColumns))
|
||||||
yOff += doneButton.getHeight();
|
yOff += doneButton.getHeight();
|
||||||
|
|
||||||
BuyButton buyCardButton = new BuyButton(shopActor.getObjectId(), i, actor, doneButton, shopActor.getPriceModifier());
|
BuyButton buyCardButton = new BuyButton(shopActor.getObjectId(), i, actor, reward, doneButton, shopActor.getPriceModifier());
|
||||||
generated.add(buyCardButton);
|
generated.add(buyCardButton);
|
||||||
if (!skipCard) {
|
if (!skipCard) {
|
||||||
stage.addActor(buyCardButton);
|
stage.addActor(buyCardButton);
|
||||||
addToSelectable(buyCardButton);
|
addToSelectable(buyCardButton);
|
||||||
}
|
}
|
||||||
if (this.collectionPool != null && Reward.Type.Card.equals(reward.getType())) {
|
|
||||||
int count = collectionPool.count(reward.getCard());
|
|
||||||
String text = buyCardButton.getTextraLabel().storedText;
|
|
||||||
buyCardButton.setText("[%75]" + text + "\n" + Forge.getLocalizer().getMessage("lblOwned") + ": " + count);
|
|
||||||
} else if (Reward.Type.Item.equals(reward.getType())) {
|
|
||||||
int count = AdventurePlayer.current().countItem(reward.getItem().name);
|
|
||||||
String text = buyCardButton.getTextraLabel().storedText;
|
|
||||||
buyCardButton.setText("[%75]" + text + "\n" + Forge.getLocalizer().getMessage("lblOwned") + ": " + count);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
addToSelectable(actor);
|
addToSelectable(actor);
|
||||||
}
|
}
|
||||||
@@ -502,21 +497,37 @@ public class RewardScene extends UIScene {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class BuyButton extends TextraButton {
|
private class BuyButton extends TextraButton {
|
||||||
private final int objectID;
|
private final int objectID;
|
||||||
private final int index;
|
private final int index;
|
||||||
public RewardActor reward;
|
public RewardActor rewardActor;
|
||||||
|
private Reward reward;
|
||||||
int price;
|
int price;
|
||||||
|
|
||||||
void update() {
|
void update() {
|
||||||
setDisabled(WorldSave.getCurrentSave().getPlayer().getGold() < price);
|
setDisabled(WorldSave.getCurrentSave().getPlayer().getGold() < price);
|
||||||
|
updateOwned();
|
||||||
}
|
}
|
||||||
|
|
||||||
public BuyButton(int id, int i, RewardActor actor, TextraButton style, float shopModifier) {
|
void updateOwned() {
|
||||||
|
if (Type.Shop != type)
|
||||||
|
return;
|
||||||
|
if (collectionPool != null && Reward.Type.Card.equals(reward.getType())) {
|
||||||
|
int count = collectionPool.count(reward.getCard());
|
||||||
|
setText("[%75]" + price + " [+Gold]\n" + Forge.getLocalizer().getMessage("lblOwned") + ": " + count);
|
||||||
|
} else if (Reward.Type.Item.equals(reward.getType())) {
|
||||||
|
int count = AdventurePlayer.current().countItem(reward.getItem().name);
|
||||||
|
setText("[%75]" + price + " [+Gold]\n" + Forge.getLocalizer().getMessage("lblOwned") + ": " + count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public BuyButton(int id, int i, RewardActor actor, Reward reward, TextraButton style, float shopModifier) {
|
||||||
super("", style.getStyle(), Controls.getTextraFont());
|
super("", style.getStyle(), Controls.getTextraFont());
|
||||||
this.objectID = id;
|
this.objectID = id;
|
||||||
this.index = i;
|
this.index = i;
|
||||||
reward = actor;
|
rewardActor = actor;
|
||||||
|
this.reward = reward;
|
||||||
setHeight(style.getHeight());
|
setHeight(style.getHeight());
|
||||||
setWidth(actor.getWidth());
|
setWidth(actor.getWidth());
|
||||||
setX(actor.getX());
|
setX(actor.getX());
|
||||||
@@ -525,6 +536,7 @@ public class RewardScene extends UIScene {
|
|||||||
price *= Current.player().goldModifier();
|
price *= Current.player().goldModifier();
|
||||||
price *= shopModifier;
|
price *= shopModifier;
|
||||||
setText(price + " [+Gold]");
|
setText(price + " [+Gold]");
|
||||||
|
updateOwned();
|
||||||
addListener(new ClickListener() {
|
addListener(new ClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void clicked(InputEvent event, float x, float y) {
|
public void clicked(InputEvent event, float x, float y) {
|
||||||
@@ -533,17 +545,18 @@ public class RewardScene extends UIScene {
|
|||||||
changes.buyCard(objectID, index);
|
changes.buyCard(objectID, index);
|
||||||
|
|
||||||
Current.player().takeGold(price);
|
Current.player().takeGold(price);
|
||||||
Current.player().addReward(reward.getReward());
|
Current.player().addReward(rewardActor.getReward());
|
||||||
|
|
||||||
Gdx.input.vibrate(5);
|
Gdx.input.vibrate(5);
|
||||||
SoundSystem.instance.play(SoundEffectType.FlipCoin, false);
|
SoundSystem.instance.play(SoundEffectType.FlipCoin, false);
|
||||||
|
|
||||||
updateBuyButtons();
|
|
||||||
if (changes == null)
|
if (changes == null)
|
||||||
return;
|
return;
|
||||||
setDisabled(true);
|
setDisabled(true);
|
||||||
reward.sold();
|
rewardActor.sold();
|
||||||
getColor().a = 0.5f;
|
getColor().a = 0.5f;
|
||||||
|
updateCollectionPool();
|
||||||
|
updateBuyButtons();
|
||||||
setText("SOLD");
|
setText("SOLD");
|
||||||
removeListener(this);
|
removeListener(this);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user