mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38: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;
|
||||
|
||||
public enum Type {
|
||||
Shop,
|
||||
Loot,
|
||||
@@ -87,6 +88,7 @@ public class RewardScene extends UIScene {
|
||||
super.disconnected(controller);
|
||||
updateDetailButton();
|
||||
}
|
||||
|
||||
private void updateDetailButton() {
|
||||
detailButton.setVisible(Controllers.getCurrent() != null);
|
||||
detailButton.layout();
|
||||
@@ -98,24 +100,16 @@ public class RewardScene extends UIScene {
|
||||
if (selectable == null)
|
||||
return;
|
||||
RewardActor actor;
|
||||
if(selectable.actor instanceof BuyButton)
|
||||
{
|
||||
actor= ((BuyButton) selectable.actor).reward;
|
||||
}
|
||||
else if (selectable.actor instanceof RewardActor)
|
||||
{
|
||||
if (selectable.actor instanceof BuyButton) {
|
||||
actor = ((BuyButton) selectable.actor).rewardActor;
|
||||
} else if (selectable.actor instanceof RewardActor) {
|
||||
actor = (RewardActor) selectable.actor;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
if(actor.toolTipIsVisible())
|
||||
{
|
||||
if (actor.toolTipIsVisible()) {
|
||||
actor.hideTooltip();
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
if (!actor.isFlipped())
|
||||
actor.showTooltip();
|
||||
}
|
||||
@@ -144,13 +138,16 @@ public class RewardScene extends UIScene {
|
||||
}
|
||||
Forge.switchToLast();
|
||||
}
|
||||
|
||||
public void reactivateInputs() {
|
||||
Gdx.input.setInputProcessor(stage);
|
||||
doneButton.toFront();
|
||||
}
|
||||
|
||||
public boolean done() {
|
||||
return done(false);
|
||||
}
|
||||
|
||||
boolean done(boolean skipShowLoot) {
|
||||
GameHUD.getInstance().getTouchpad().setVisible(false);
|
||||
if (!skipShowLoot) {
|
||||
@@ -174,6 +171,7 @@ public class RewardScene extends UIScene {
|
||||
quitScene();
|
||||
return true;
|
||||
}
|
||||
|
||||
void clearGenerated() {
|
||||
for (Actor actor : new Array.ArrayIterator<>(generated)) {
|
||||
if (!(actor instanceof RewardActor)) {
|
||||
@@ -187,7 +185,8 @@ public class RewardScene extends UIScene {
|
||||
reward.clearHoldToolTip();
|
||||
try {
|
||||
stage.getActors().removeValue(reward, true);
|
||||
} catch (Exception e) {}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -298,17 +297,25 @@ public class RewardScene extends UIScene {
|
||||
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) {
|
||||
clearSelectable();
|
||||
this.type = type;
|
||||
doneClicked = false;
|
||||
updateCollectionPool();
|
||||
if (type == Type.Shop) {
|
||||
this.shopActor = shopActor;
|
||||
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)) {
|
||||
actor.remove();
|
||||
@@ -325,9 +332,7 @@ public class RewardScene extends UIScene {
|
||||
shopNameLabel.setVisible(true);
|
||||
shopNameLabel.setText("[%?SHINY]{GRADIENT}" + shopName + "{ENDGRADIENT}");
|
||||
shopNameLabel.skipToTheEnd();
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
shopNameLabel.setVisible(false);
|
||||
}
|
||||
Actor background = ui.findActor("market_background");
|
||||
@@ -367,8 +372,7 @@ public class RewardScene extends UIScene {
|
||||
|
||||
if (shopActor.canRestock()) {
|
||||
restockButton.setVisible(true);
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
restockButton.setVisible(false);
|
||||
restockButton.setDisabled(true);
|
||||
}
|
||||
@@ -464,21 +468,12 @@ public class RewardScene extends UIScene {
|
||||
if (currentRow != ((i + 1) / numberOfColumns))
|
||||
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);
|
||||
if (!skipCard) {
|
||||
stage.addActor(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 {
|
||||
addToSelectable(actor);
|
||||
}
|
||||
@@ -502,21 +497,37 @@ public class RewardScene extends UIScene {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class BuyButton extends TextraButton {
|
||||
private final int objectID;
|
||||
private final int index;
|
||||
public RewardActor reward;
|
||||
public RewardActor rewardActor;
|
||||
private Reward reward;
|
||||
int price;
|
||||
|
||||
void update() {
|
||||
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());
|
||||
this.objectID = id;
|
||||
this.index = i;
|
||||
reward = actor;
|
||||
rewardActor = actor;
|
||||
this.reward = reward;
|
||||
setHeight(style.getHeight());
|
||||
setWidth(actor.getWidth());
|
||||
setX(actor.getX());
|
||||
@@ -525,6 +536,7 @@ public class RewardScene extends UIScene {
|
||||
price *= Current.player().goldModifier();
|
||||
price *= shopModifier;
|
||||
setText(price + " [+Gold]");
|
||||
updateOwned();
|
||||
addListener(new ClickListener() {
|
||||
@Override
|
||||
public void clicked(InputEvent event, float x, float y) {
|
||||
@@ -533,17 +545,18 @@ public class RewardScene extends UIScene {
|
||||
changes.buyCard(objectID, index);
|
||||
|
||||
Current.player().takeGold(price);
|
||||
Current.player().addReward(reward.getReward());
|
||||
Current.player().addReward(rewardActor.getReward());
|
||||
|
||||
Gdx.input.vibrate(5);
|
||||
SoundSystem.instance.play(SoundEffectType.FlipCoin, false);
|
||||
|
||||
updateBuyButtons();
|
||||
if (changes == null)
|
||||
return;
|
||||
setDisabled(true);
|
||||
reward.sold();
|
||||
rewardActor.sold();
|
||||
getColor().a = 0.5f;
|
||||
updateCollectionPool();
|
||||
updateBuyButtons();
|
||||
setText("SOLD");
|
||||
removeListener(this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user