diff --git a/IdleDemo-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoAchievementLoader.java b/IdleDemo-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoAchievementLoader.java index 5259fa9..6b3eb4e 100644 --- a/IdleDemo-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoAchievementLoader.java +++ b/IdleDemo-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoAchievementLoader.java @@ -54,7 +54,7 @@ public Map getProviderMap(Language language) { JavaFeatureForGwt.mapOf( DemoConstructionPrototypeId.COOKIE_SIMPLE_AUTO_PROVIDER, new SimpleEntry<>(1, 2) ), - DemoAchievementId.STEP_2, + JavaFeatureForGwt.listOf(DemoAchievementId.STEP_2), new ResourcePair(ResourceType.COIN, 1000L) ); OwnConstructionAchievement.Companion.quickAddOwnConstructionAchievement( diff --git a/IdleMushroom-game/core/assets/table_4.png b/IdleMushroom-game/core/assets/table_4.png new file mode 100644 index 0000000..995a454 Binary files /dev/null and b/IdleMushroom-game/core/assets/table_4.png differ diff --git a/IdleMushroom-game/core/assets/table_5.png b/IdleMushroom-game/core/assets/table_5.png new file mode 100644 index 0000000..f0e46bd Binary files /dev/null and b/IdleMushroom-game/core/assets/table_5.png differ diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoAchievementId.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoAchievementId.java deleted file mode 100644 index 7b90b06..0000000 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoAchievementId.java +++ /dev/null @@ -1,6 +0,0 @@ -package hundun.gdxgame.idledemo.logic; - -public class DemoAchievementId { - public static final String STEP_1 = "ENUM_ACHI@STEP_1"; - public static final String STEP_2 = "ENUM_ACHI@STEP_2"; -} diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/FirstRunningAchievementBoardVM.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/FirstRunningAchievementBoardVM.java deleted file mode 100644 index 08f4ce6..0000000 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/FirstRunningAchievementBoardVM.java +++ /dev/null @@ -1,72 +0,0 @@ -package hundun.gdxgame.idledemo.ui.main; - -import com.badlogic.gdx.scenes.scene2d.ui.Label; -import com.badlogic.gdx.scenes.scene2d.ui.Table; -import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; -import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; -import hundun.gdxgame.idleshare.core.framework.BaseIdleGame; -import hundun.gdxgame.idleshare.core.starter.ui.screen.play.BaseIdleScreen; -import hundun.gdxgame.idleshare.gamelib.framework.model.manager.AchievementManager.AchievementInfoPackage; - -import java.util.List; - -public class FirstRunningAchievementBoardVM, T_SAVE> extends Table { - - BaseIdleScreen parent; - - Label nameStartLabel; - Label nameValueLabel; - Label descriptionLabel; - Label countStartLabel; - Label countValueLabel; - - List texts; - - public FirstRunningAchievementBoardVM(BaseIdleScreen parent) - { - this.parent = parent; - this.texts = parent.getGame().getIdleGameplayExport().getGameDictionary() - .getAchievementTexts(parent.getGame().getIdleGameplayExport().getLanguage()); - this.setBackground(parent.getGame().getTextureManager().getDefaultBoardNinePatchDrawable()); - - - nameStartLabel = new Label("", parent.getGame().getMainSkin()); - this.add(nameStartLabel).center(); - nameValueLabel = new Label("", parent.getGame().getMainSkin()); - this.add(nameValueLabel).center().row(); - descriptionLabel = new Label("", parent.getGame().getMainSkin()); - this.add(descriptionLabel).center().row(); - countStartLabel = new Label("", parent.getGame().getMainSkin()); - this.add(countStartLabel).center().row(); - countValueLabel = new Label("", parent.getGame().getMainSkin()); - this.add(countValueLabel).center().row(); - - nameStartLabel.setText(texts.get(0)); - countStartLabel.setText(texts.get(1)); - updateData(); - } - - public void updateData() - { - AchievementInfoPackage data = parent.getGame().getIdleGameplayExport().getGameplayContext().getAchievementManager().getAchievementInfoPackage(); - if (data.getFirstRunningAchievement() != null) - { - nameValueLabel.setText(data.getFirstRunningAchievement().getName()); - descriptionLabel.setText(data.getFirstRunningAchievement().getDescription()); - } - else - { - nameValueLabel.setText(""); - descriptionLabel.setText(texts.get(5)); - } - - countValueLabel.setText(JavaFeatureForGwt.stringFormat( - "已完成:%s;未解锁:%s", - data.getCompletedSize(), - data.getLockedSize() - )); - - - } - -} diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/DemoScreenContext.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/DemoScreenContext.java deleted file mode 100644 index cccd505..0000000 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/DemoScreenContext.java +++ /dev/null @@ -1,55 +0,0 @@ -package hundun.gdxgame.idledemo.ui.screen; - -import com.badlogic.gdx.graphics.g2d.NinePatch; -import com.badlogic.gdx.scenes.scene2d.utils.NinePatchDrawable; -import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; -import hundun.gdxgame.idledemo.IdleMushroomGame; -import hundun.gdxgame.idledemo.logic.DemoScreenId; -import hundun.gdxgame.idledemo.logic.RootSaveData; -import hundun.gdxgame.idleshare.core.framework.model.manager.AbstractIdleScreenContext; -import hundun.gdxgame.idleshare.core.starter.ui.screen.play.PlayScreenLayoutConst; - -/** - * @author hundun - * Created on 2023/02/17 - */ -public class DemoScreenContext extends AbstractIdleScreenContext { - - DemoMenuScreen menuScreen; - MainPlayScreen mainPlayScreen; - WorldPlayScreen worldPlayScreen; - DemoAchievementScreen achievementScreen; - - - - public static PlayScreenLayoutConst customLayoutConst(IdleMushroomGame game) { - PlayScreenLayoutConst layoutConst = new PlayScreenLayoutConst(game.getWidth(), game.getHeight()); - NinePatch ninePatch = new NinePatch(game.getTextureManager().getDefaultBoardNinePatchTexture(), - game.getTextureManager().getDefaultBoardNinePatchEdgeSize(), - game.getTextureManager().getDefaultBoardNinePatchEdgeSize(), - game.getTextureManager().getDefaultBoardNinePatchEdgeSize(), - game.getTextureManager().getDefaultBoardNinePatchEdgeSize() - ); - layoutConst.simpleBoardBackground = new NinePatchDrawable(ninePatch); - layoutConst.simpleBoardBackgroundMiddle = new TextureRegionDrawable(game.getTextureManager().getDefaultBoardNinePatchMiddle()); - return layoutConst; - } - - public DemoScreenContext(IdleMushroomGame game) { - super(game); - } - - @Override - public void lazyInit() { - this.menuScreen = new DemoMenuScreen(game); - this.mainPlayScreen = new MainPlayScreen(game); - this.worldPlayScreen = new WorldPlayScreen(game); - this.achievementScreen = new DemoAchievementScreen(game); - - game.getScreenManager().addScreen(DemoScreenId.SCREEN_MENU, menuScreen); - game.getScreenManager().addScreen(DemoScreenId.SCREEN_MAIN, mainPlayScreen); - game.getScreenManager().addScreen(DemoScreenId.SCREEN_WORLD, worldPlayScreen); - game.getScreenManager().addScreen(DemoScreenId.SCREEN_ACHIEVEMENT, achievementScreen); - } - -} diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/IdleMushroomChildGameConfig.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/IdleMushroomChildGameConfig.java similarity index 91% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/IdleMushroomChildGameConfig.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/IdleMushroomChildGameConfig.java index ee9e681..4a57fcd 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/IdleMushroomChildGameConfig.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/IdleMushroomChildGameConfig.java @@ -1,12 +1,12 @@ -package hundun.gdxgame.idledemo; +package hundun.gdxgame.idlemushroom; import java.util.ArrayList; import java.util.Map; import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; -import hundun.gdxgame.idledemo.logic.DemoConstructionPrototypeId; -import hundun.gdxgame.idledemo.logic.DemoScreenId; -import hundun.gdxgame.idledemo.logic.ResourceType; +import hundun.gdxgame.idlemushroom.logic.DemoConstructionPrototypeId; +import hundun.gdxgame.idlemushroom.logic.DemoScreenId; +import hundun.gdxgame.idlemushroom.logic.ResourceType; import hundun.gdxgame.idleshare.gamelib.framework.data.ChildGameConfig; /** diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/IdleMushroomGame.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/IdleMushroomGame.java similarity index 96% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/IdleMushroomGame.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/IdleMushroomGame.java index 1e2e258..557ae18 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/IdleMushroomGame.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/IdleMushroomGame.java @@ -1,13 +1,13 @@ -package hundun.gdxgame.idledemo; +package hundun.gdxgame.idlemushroom; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.utils.viewport.ScreenViewport; import com.ray3k.stripe.FreeTypeSkin; import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; -import hundun.gdxgame.idledemo.logic.*; import hundun.gdxgame.gamelib.base.save.ISaveTool; -import hundun.gdxgame.idledemo.ui.screen.DemoScreenContext; +import hundun.gdxgame.idlemushroom.ui.screen.IdleMushroomScreenContext; +import hundun.gdxgame.idlemushroom.logic.*; import hundun.gdxgame.idleshare.core.framework.BaseIdleGame; import hundun.gdxgame.idleshare.core.framework.model.manager.AbstractIdleScreenContext; import hundun.gdxgame.idleshare.core.framework.model.manager.AudioPlayManager; @@ -82,7 +82,7 @@ public IdleMushroomGame(ISaveTool saveTool) { this.mainSkinFilePath = null; this.idleMushroomTextureManager = new IdleMushroomTextureManager(); this.textureManager = this.idleMushroomTextureManager; - this.screenContext = new DemoScreenContext(this); + this.screenContext = new IdleMushroomScreenContext(this); this.audioPlayManager = new AudioPlayManager(this); this.childGameConfig = new IdleMushroomChildGameConfig(); diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoAchievementLoader.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoAchievementLoader.java similarity index 55% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoAchievementLoader.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoAchievementLoader.java index 07b9675..0fe3617 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoAchievementLoader.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoAchievementLoader.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.logic; +package hundun.gdxgame.idlemushroom.logic; import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; import hundun.gdxgame.idleshare.gamelib.framework.model.achievement.AbstractAchievement; @@ -18,29 +18,27 @@ public Map getProviderMap(Language language) { Map> textMap = new HashMap<>(); switch (language) { - case CN: - textMap.put(DemoAchievementId.STEP_1, JavaFeatureForGwt.listOf( - "NO.1", - "拥有2级AUTO_PROVIDER。", - "你完成了任务NO.1。" - )); - textMap.put(DemoAchievementId.STEP_2, JavaFeatureForGwt.listOf( - "NO.2", - "拥有2级AUTO_SELLER。", - "你完成了任务NO.2。" - )); - break; default: - textMap.put(DemoAchievementId.STEP_1, JavaFeatureForGwt.listOf( + textMap.put(MushroomAchievementId.STEP_1, JavaFeatureForGwt.listOf( "NO.1", "Own lv.2 AUTO_PROVIDER.", "You completed Quest NO.1." )); - textMap.put(DemoAchievementId.STEP_2, JavaFeatureForGwt.listOf( + textMap.put(MushroomAchievementId.STEP_2, JavaFeatureForGwt.listOf( "NO.2", "Own lv.2 AUTO_SELLER.", "You completed Quest NO.2." )); + textMap.put(MushroomAchievementId.STEP_3, JavaFeatureForGwt.listOf( + "NO.3", + "Own lv.2 AUTO_SELLER.", + "You completed Quest NO.2." + )); + textMap.put(MushroomAchievementId.STEP_4, JavaFeatureForGwt.listOf( + "NO.4", + "Own lv.2 AUTO_SELLER.", + "You completed Quest NO.2." + )); break; } @@ -49,17 +47,37 @@ public Map getProviderMap(Language language) { Map map = new HashMap<>(); OwnConstructionAchievement.Companion.quickAddOwnConstructionAchievement( map, - DemoAchievementId.STEP_1, + MushroomAchievementId.STEP_1, textMap, JavaFeatureForGwt.mapOf( DemoConstructionPrototypeId.EPOCH_1_MUSHROOM_AUTO_PROVIDER, new SimpleEntry<>(1, 2) ), - DemoAchievementId.STEP_2, + JavaFeatureForGwt.listOf(MushroomAchievementId.STEP_2, MushroomAchievementId.STEP_3, MushroomAchievementId.STEP_4), + new ResourcePair(ResourceType.DNA_POINT, 1000L) + ); + OwnConstructionAchievement.Companion.quickAddOwnConstructionAchievement( + map, + MushroomAchievementId.STEP_2, + textMap, + JavaFeatureForGwt.mapOf( + DemoConstructionPrototypeId.MUSHROOM_AUTO_SELLER, new SimpleEntry<>(1, 2) + ), + null, + new ResourcePair(ResourceType.DNA_POINT, 1000L) + ); + OwnConstructionAchievement.Companion.quickAddOwnConstructionAchievement( + map, + MushroomAchievementId.STEP_3, + textMap, + JavaFeatureForGwt.mapOf( + DemoConstructionPrototypeId.MUSHROOM_AUTO_SELLER, new SimpleEntry<>(1, 2) + ), + null, new ResourcePair(ResourceType.DNA_POINT, 1000L) ); OwnConstructionAchievement.Companion.quickAddOwnConstructionAchievement( map, - DemoAchievementId.STEP_2, + MushroomAchievementId.STEP_4, textMap, JavaFeatureForGwt.mapOf( DemoConstructionPrototypeId.MUSHROOM_AUTO_SELLER, new SimpleEntry<>(1, 2) diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoBuiltinConstructionsLoader.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoBuiltinConstructionsLoader.java similarity index 94% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoBuiltinConstructionsLoader.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoBuiltinConstructionsLoader.java index 671d755..aaebd52 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoBuiltinConstructionsLoader.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoBuiltinConstructionsLoader.java @@ -1,13 +1,13 @@ -package hundun.gdxgame.idledemo.logic; +package hundun.gdxgame.idlemushroom.logic; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import hundun.gdxgame.idledemo.IdleMushroomGame; -import hundun.gdxgame.idledemo.IdleMushroomGame.RootEpochConfig; -import hundun.gdxgame.idledemo.logic.prototype.*; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.IdleMushroomGame.RootEpochConfig; +import hundun.gdxgame.idlemushroom.logic.prototype.*; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.*; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.IBuiltinConstructionsLoader; import hundun.gdxgame.idleshare.gamelib.framework.model.resource.ResourcePack; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoConstructionPrototypeId.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoConstructionPrototypeId.java similarity index 96% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoConstructionPrototypeId.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoConstructionPrototypeId.java index 1bfb763..166197f 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoConstructionPrototypeId.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoConstructionPrototypeId.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.logic; +package hundun.gdxgame.idlemushroom.logic; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoGameDictionary.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoGameDictionary.java similarity index 99% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoGameDictionary.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoGameDictionary.java index 64598fb..06e34c0 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoGameDictionary.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoGameDictionary.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.logic; +package hundun.gdxgame.idlemushroom.logic; import java.util.List; import java.util.Map; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoSaveHandler.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoSaveHandler.java similarity index 98% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoSaveHandler.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoSaveHandler.java index 99b7301..b8c5dfe 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoSaveHandler.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoSaveHandler.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.logic; +package hundun.gdxgame.idlemushroom.logic; import java.util.*; @@ -115,7 +115,7 @@ protected RootSaveData genereateStarterRootSaveData() { .ownResources(ownResources) .unlockedResourceTypes(new HashSet<>()) .achievementSaveDataMap(JavaFeatureForGwt.mapOf( - DemoAchievementId.STEP_1, + MushroomAchievementId.STEP_1, new AchievementSaveData(AchievementState.RUNNING) )) .build()) diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoScreenId.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoScreenId.java similarity index 88% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoScreenId.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoScreenId.java index 2e65186..cc36b37 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/DemoScreenId.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/DemoScreenId.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.logic; +package hundun.gdxgame.idlemushroom.logic; public class DemoScreenId { diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/IdleMushroomTextureManager.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/IdleMushroomTextureManager.java similarity index 91% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/IdleMushroomTextureManager.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/IdleMushroomTextureManager.java index f4780c4..2ac933c 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/IdleMushroomTextureManager.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/IdleMushroomTextureManager.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.logic; +package hundun.gdxgame.idlemushroom.logic; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Texture; @@ -23,7 +23,10 @@ public class IdleMushroomTextureManager extends AbstractTextureManager { @Getter Drawable tableType3Drawable; - + @Getter + Drawable questionMarkTableDrawable; + @Getter + Drawable tableType5Drawable; private Drawable quickTableNinePatchDrawable(Texture texture) { return new NinePatchDrawable(new NinePatch( texture, @@ -34,6 +37,16 @@ private Drawable quickTableNinePatchDrawable(Texture texture) { )); } + private Drawable quickTableNinePatchDrawable(Texture texture, int size) { + return new NinePatchDrawable(new NinePatch( + texture, + size, + size, + size, + size + )); + } + @Override public void lazyInitOnGameCreateStage2() { { @@ -48,6 +61,8 @@ public void lazyInitOnGameCreateStage2() { tableType1Drawable = quickTableNinePatchDrawable(new Texture(Gdx.files.internal("table.9.png"))); tableType2Drawable = quickTableNinePatchDrawable(new Texture(Gdx.files.internal("table_2.png"))); tableType3Drawable = quickTableNinePatchDrawable(new Texture(Gdx.files.internal("table_3.png"))); + questionMarkTableDrawable = quickTableNinePatchDrawable(new Texture(Gdx.files.internal("table_4.png")), 4); + tableType5Drawable = quickTableNinePatchDrawable(new Texture(Gdx.files.internal("table_5.png")), 4); defaultBoardNinePatchTexture = new Texture(Gdx.files.internal("table.9.png")); defaultBoardNinePatchDrawable = quickTableNinePatchDrawable(defaultBoardNinePatchTexture); diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/MushroomAchievementId.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/MushroomAchievementId.java new file mode 100644 index 0000000..f281483 --- /dev/null +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/MushroomAchievementId.java @@ -0,0 +1,8 @@ +package hundun.gdxgame.idlemushroom.logic; + +public class MushroomAchievementId { + public static final String STEP_1 = "ENUM_ACHI@STEP_1"; + public static final String STEP_2 = "ENUM_ACHI@STEP_2"; + public static final String STEP_3 = "ENUM_ACHI@STEP_3"; + public static final String STEP_4 = "ENUM_ACHI@STEP_4"; +} diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/ResourceType.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/ResourceType.java similarity index 90% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/ResourceType.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/ResourceType.java index 24fa60c..cf2cce9 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/ResourceType.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/ResourceType.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.logic; +package hundun.gdxgame.idlemushroom.logic; /** * @author hundun * Created on 2021/11/05 diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/RootSaveData.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/RootSaveData.java similarity index 93% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/RootSaveData.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/RootSaveData.java index 43c02c3..605434c 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/RootSaveData.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/RootSaveData.java @@ -1,10 +1,9 @@ -package hundun.gdxgame.idledemo.logic; +package hundun.gdxgame.idlemushroom.logic; import hundun.gdxgame.gamelib.starter.save.IRootSaveExtension; import hundun.gdxgame.idleshare.gamelib.framework.data.GameplaySaveData; import hundun.gdxgame.idleshare.gamelib.framework.data.SystemSettingSaveData; -import hundun.gdxgame.idleshare.gamelib.framework.util.text.Language; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/construction/BaseIdleDemoConstruction.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/construction/BaseIdleDemoConstruction.java similarity index 94% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/construction/BaseIdleDemoConstruction.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/construction/BaseIdleDemoConstruction.java index c0f04cc..85091a1 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/construction/BaseIdleDemoConstruction.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/construction/BaseIdleDemoConstruction.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.logic.construction; +package hundun.gdxgame.idlemushroom.logic.construction; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.*; import hundun.gdxgame.idleshare.gamelib.framework.model.grid.GridPosition; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/construction/DemoSimpleAutoOutputComponent.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/construction/DemoSimpleAutoOutputComponent.java similarity index 92% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/construction/DemoSimpleAutoOutputComponent.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/construction/DemoSimpleAutoOutputComponent.java index 6c2c145..a6b9608 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/construction/DemoSimpleAutoOutputComponent.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/construction/DemoSimpleAutoOutputComponent.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.logic.construction; +package hundun.gdxgame.idlemushroom.logic.construction; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.starter.BaseAutoOutputComponent; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/AutoProviderPrototype.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/AutoProviderPrototype.java similarity index 88% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/AutoProviderPrototype.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/AutoProviderPrototype.java index 035c326..7ff5a30 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/AutoProviderPrototype.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/AutoProviderPrototype.java @@ -1,13 +1,12 @@ -package hundun.gdxgame.idledemo.logic.prototype; +package hundun.gdxgame.idlemushroom.logic.prototype; import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; -import hundun.gdxgame.idledemo.IdleMushroomGame.ConstructionEpochConfig; -import hundun.gdxgame.idledemo.IdleMushroomGame.RootEpochConfig; -import hundun.gdxgame.idledemo.logic.DemoConstructionPrototypeId; -import hundun.gdxgame.idledemo.logic.DemoBuiltinConstructionsLoader; -import hundun.gdxgame.idledemo.logic.ResourceType; -import hundun.gdxgame.idledemo.logic.construction.BaseIdleDemoConstruction; -import hundun.gdxgame.idledemo.logic.construction.DemoSimpleAutoOutputComponent; +import hundun.gdxgame.idlemushroom.IdleMushroomGame.RootEpochConfig; +import hundun.gdxgame.idlemushroom.logic.DemoConstructionPrototypeId; +import hundun.gdxgame.idlemushroom.logic.DemoBuiltinConstructionsLoader; +import hundun.gdxgame.idlemushroom.logic.ResourceType; +import hundun.gdxgame.idlemushroom.logic.construction.BaseIdleDemoConstruction; +import hundun.gdxgame.idlemushroom.logic.construction.DemoSimpleAutoOutputComponent; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.AbstractConstructionPrototype; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.DescriptionPackage; @@ -15,9 +14,6 @@ import hundun.gdxgame.idleshare.gamelib.framework.model.construction.starter.BaseAutoProficiencyComponent; import hundun.gdxgame.idleshare.gamelib.framework.model.grid.GridPosition; import hundun.gdxgame.idleshare.gamelib.framework.util.text.Language; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; import java.util.HashMap; import java.util.UUID; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/AutoSellerPrototype.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/AutoSellerPrototype.java similarity index 89% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/AutoSellerPrototype.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/AutoSellerPrototype.java index 417d47c..0f92d54 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/AutoSellerPrototype.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/AutoSellerPrototype.java @@ -1,11 +1,11 @@ -package hundun.gdxgame.idledemo.logic.prototype; +package hundun.gdxgame.idlemushroom.logic.prototype; import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; -import hundun.gdxgame.idledemo.logic.DemoConstructionPrototypeId; -import hundun.gdxgame.idledemo.logic.DemoBuiltinConstructionsLoader; -import hundun.gdxgame.idledemo.logic.ResourceType; -import hundun.gdxgame.idledemo.logic.construction.BaseIdleDemoConstruction; -import hundun.gdxgame.idledemo.logic.construction.DemoSimpleAutoOutputComponent; +import hundun.gdxgame.idlemushroom.logic.DemoConstructionPrototypeId; +import hundun.gdxgame.idlemushroom.logic.DemoBuiltinConstructionsLoader; +import hundun.gdxgame.idlemushroom.logic.ResourceType; +import hundun.gdxgame.idlemushroom.logic.construction.BaseIdleDemoConstruction; +import hundun.gdxgame.idlemushroom.logic.construction.DemoSimpleAutoOutputComponent; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.AbstractConstructionPrototype; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.DescriptionPackage; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/DirtPrototype.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/DirtPrototype.java similarity index 90% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/DirtPrototype.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/DirtPrototype.java index 4a7375e..789aa3e 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/DirtPrototype.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/DirtPrototype.java @@ -1,10 +1,10 @@ -package hundun.gdxgame.idledemo.logic.prototype; +package hundun.gdxgame.idlemushroom.logic.prototype; import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; -import hundun.gdxgame.idledemo.logic.DemoConstructionPrototypeId; -import hundun.gdxgame.idledemo.logic.DemoBuiltinConstructionsLoader; -import hundun.gdxgame.idledemo.logic.ResourceType; -import hundun.gdxgame.idledemo.logic.construction.BaseIdleDemoConstruction; +import hundun.gdxgame.idlemushroom.logic.DemoConstructionPrototypeId; +import hundun.gdxgame.idlemushroom.logic.DemoBuiltinConstructionsLoader; +import hundun.gdxgame.idlemushroom.logic.ResourceType; +import hundun.gdxgame.idlemushroom.logic.construction.BaseIdleDemoConstruction; import hundun.gdxgame.idleshare.gamelib.framework.data.ChildGameConfig.ConstructionBuyCandidateConfig; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.AbstractConstructionPrototype; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; @@ -20,12 +20,14 @@ public class DirtPrototype extends AbstractConstructionPrototype { public static DescriptionPackage descriptionPackageEN = DescriptionPackage.builder() .levelDescriptionProvider(DescriptionPackageFactory.NO_LEVEL_IMP) + .transformCostDescriptionStart("buy candidate: ") .proficiencyDescriptionProvider(DescriptionPackageFactory.EN_PROFICIENCY_IMP) .build(); public static DescriptionPackage descriptionPackageCN = DescriptionPackage.builder() .levelDescriptionProvider(DescriptionPackageFactory.CN_NO_LEVEL_IMP) + .transformCostDescriptionStart("可购买:") .proficiencyDescriptionProvider(DescriptionPackageFactory.CN_PROFICIENCY_IMP) .build(); diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/EpochCounterPrototype.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/EpochCounterPrototype.java similarity index 91% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/EpochCounterPrototype.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/EpochCounterPrototype.java index d5a2904..abd1140 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/EpochCounterPrototype.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/EpochCounterPrototype.java @@ -1,10 +1,10 @@ -package hundun.gdxgame.idledemo.logic.prototype; +package hundun.gdxgame.idlemushroom.logic.prototype; import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; -import hundun.gdxgame.idledemo.logic.DemoBuiltinConstructionsLoader; -import hundun.gdxgame.idledemo.logic.DemoConstructionPrototypeId; -import hundun.gdxgame.idledemo.logic.ResourceType; -import hundun.gdxgame.idledemo.logic.construction.BaseIdleDemoConstruction; +import hundun.gdxgame.idlemushroom.logic.DemoBuiltinConstructionsLoader; +import hundun.gdxgame.idlemushroom.logic.DemoConstructionPrototypeId; +import hundun.gdxgame.idlemushroom.logic.ResourceType; +import hundun.gdxgame.idlemushroom.logic.construction.BaseIdleDemoConstruction; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.AbstractConstructionPrototype; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.DescriptionPackage; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/MainMushroomPrototype.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/MainMushroomPrototype.java similarity index 89% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/MainMushroomPrototype.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/MainMushroomPrototype.java index 657d35e..60e33cd 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/MainMushroomPrototype.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/MainMushroomPrototype.java @@ -1,10 +1,10 @@ -package hundun.gdxgame.idledemo.logic.prototype; +package hundun.gdxgame.idlemushroom.logic.prototype; import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; -import hundun.gdxgame.idledemo.logic.DemoConstructionPrototypeId; -import hundun.gdxgame.idledemo.logic.DemoBuiltinConstructionsLoader; -import hundun.gdxgame.idledemo.logic.ResourceType; -import hundun.gdxgame.idledemo.logic.construction.BaseIdleDemoConstruction; +import hundun.gdxgame.idlemushroom.logic.DemoConstructionPrototypeId; +import hundun.gdxgame.idlemushroom.logic.DemoBuiltinConstructionsLoader; +import hundun.gdxgame.idlemushroom.logic.ResourceType; +import hundun.gdxgame.idlemushroom.logic.construction.BaseIdleDemoConstruction; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.AbstractConstructionPrototype; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.DescriptionPackage; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/TreePrototype.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/TreePrototype.java similarity index 88% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/TreePrototype.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/TreePrototype.java index 19e49b1..d698c89 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/logic/prototype/TreePrototype.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/logic/prototype/TreePrototype.java @@ -1,9 +1,6 @@ -package hundun.gdxgame.idledemo.logic.prototype; +package hundun.gdxgame.idlemushroom.logic.prototype; -import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; -import hundun.gdxgame.idledemo.logic.DemoBuiltinConstructionsLoader; -import hundun.gdxgame.idledemo.logic.DemoConstructionPrototypeId; -import hundun.gdxgame.idledemo.logic.construction.BaseIdleDemoConstruction; +import hundun.gdxgame.idlemushroom.logic.construction.BaseIdleDemoConstruction; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.AbstractConstructionPrototype; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.DescriptionPackage; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/achievement/AchievementPopupBoard.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/achievement/AchievementPopupBoard.java similarity index 94% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/achievement/AchievementPopupBoard.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/achievement/AchievementPopupBoard.java index b207ed3..8f2ca61 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/achievement/AchievementPopupBoard.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/achievement/AchievementPopupBoard.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.ui.achievement; +package hundun.gdxgame.idlemushroom.ui.achievement; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.g2d.Sprite; @@ -11,8 +11,8 @@ import com.badlogic.gdx.scenes.scene2d.utils.SpriteDrawable; import com.badlogic.gdx.utils.Null; -import hundun.gdxgame.idledemo.IdleMushroomGame; -import hundun.gdxgame.idledemo.ui.shared.BaseIdleMushroomPlayScreen; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.ui.shared.BaseIdleMushroomPlayScreen; import hundun.gdxgame.idleshare.core.starter.ui.component.ResourceAmountPairNode; import hundun.gdxgame.idleshare.gamelib.framework.model.achievement.AbstractAchievement; import hundun.gdxgame.idleshare.gamelib.framework.model.resource.ResourcePair; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/achievement/AllAchievementBoardVM.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/achievement/AllAchievementBoardVM.java similarity index 62% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/achievement/AllAchievementBoardVM.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/achievement/AllAchievementBoardVM.java index 920223a..c4ac45e 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/achievement/AllAchievementBoardVM.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/achievement/AllAchievementBoardVM.java @@ -1,31 +1,31 @@ -package hundun.gdxgame.idledemo.ui.achievement; +package hundun.gdxgame.idlemushroom.ui.achievement; import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; import com.badlogic.gdx.scenes.scene2d.ui.Table; -import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; -import hundun.gdxgame.idleshare.core.framework.BaseIdleGame; -import hundun.gdxgame.idleshare.core.starter.ui.screen.play.BaseIdleScreen; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.logic.RootSaveData; +import hundun.gdxgame.idlemushroom.ui.shared.BaseIdleMushroomScreen; import java.util.ArrayList; import java.util.List; -public class AllAchievementBoardVM, T_SAVE> extends Table { +public class AllAchievementBoardVM extends Table { - BaseIdleScreen parent; + BaseIdleMushroomScreen parent; Table childTable; - protected List> nodes = new ArrayList<>(); + protected List nodes = new ArrayList<>(); - public AllAchievementBoardVM(BaseIdleScreen parent) + public AllAchievementBoardVM(BaseIdleMushroomScreen parent) { this.parent = parent; - this.setBackground(parent.getGame().getTextureManager().getDefaultBoardNinePatchDrawable()); + this.setBackground(parent.getGame().getIdleMushroomTextureManager().getTableType2Drawable()); childTable = new Table(); - childTable.setBackground(parent.getLayoutConst().simpleBoardBackgroundMiddle); + //childTable.setBackground(parent.getGame().getIdleMushroomTextureManager().getTableType2Drawable()); ScrollPane scrollPane = new ScrollPane(childTable, parent.getGame().getMainSkin()); - scrollPane.setScrollingDisabled(false, true); + scrollPane.setScrollingDisabled(true, false); scrollPane.setFadeScrollBars(false); scrollPane.setForceScroll(false, true); this.add(scrollPane) @@ -45,7 +45,7 @@ protected void initChild() { parent.getGame().getIdleGameplayExport().getGameplayContext().getAchievementManager().getModels().values() .forEach(it -> { - OneAchievementNodeVM constructionView = new OneAchievementNodeVM<>(parent, it); + OneAchievementNodeVM constructionView = new OneAchievementNodeVM(parent, it, true); nodes.add(constructionView); childTable.add(constructionView) .width(parent.getLayoutConst().ALL_ACHIEVEMENT_BOARD_NODE_WIDTH) diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/achievement/OneAchievementNodeVM.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/achievement/OneAchievementNodeVM.java similarity index 51% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/achievement/OneAchievementNodeVM.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/achievement/OneAchievementNodeVM.java index c5045a6..6d2bcd9 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/achievement/OneAchievementNodeVM.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/achievement/OneAchievementNodeVM.java @@ -1,18 +1,26 @@ -package hundun.gdxgame.idledemo.ui.achievement; +package hundun.gdxgame.idlemushroom.ui.achievement; +import com.badlogic.gdx.scenes.scene2d.Actor; +import com.badlogic.gdx.scenes.scene2d.ui.Container; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.utils.Null; import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; +import hundun.gdxgame.idlemushroom.ui.shared.BaseIdleMushroomScreen; import hundun.gdxgame.idleshare.core.framework.BaseIdleGame; import hundun.gdxgame.idleshare.core.starter.ui.screen.play.BaseIdleScreen; import hundun.gdxgame.idleshare.gamelib.framework.model.manager.AchievementManager.AchievementAndStatus; +import lombok.Getter; +import lombok.Setter; import java.util.List; -public class OneAchievementNodeVM, T_SAVE> extends Table { - - BaseIdleScreen parent; +public class OneAchievementNodeVM extends Table { + BaseIdleMushroomScreen parent; + @Setter + @Getter + @Null AchievementAndStatus achievementAndStatus; Label nameStartLabel; @@ -22,26 +30,45 @@ public class OneAchievementNodeVM, T_SAVE> e Label countValueLabel; List texts; - public OneAchievementNodeVM(BaseIdleScreen parent, AchievementAndStatus achievementAndStatus) { + Table descriptionContainer; + + public OneAchievementNodeVM(BaseIdleMushroomScreen parent, AchievementAndStatus achievementAndStatus, boolean wideMode) { this.parent = parent; this.setBackground(parent.getGame().getTextureManager().getDefaultBoardNinePatchDrawable()); this.achievementAndStatus = achievementAndStatus; this.texts = parent.getGame().getIdleGameplayExport().getGameDictionary() .getAchievementTexts(parent.getGame().getIdleGameplayExport().getLanguage()); - this.setBackground(parent.getGame().getTextureManager().getDefaultBoardNinePatchDrawable()); + this.setBackground(parent.getGame().getIdleMushroomTextureManager().getTableType3Drawable()); nameStartLabel = new Label("", parent.getGame().getMainSkin()); - this.add(nameStartLabel).center(); nameValueLabel = new Label("", parent.getGame().getMainSkin()); - this.add(nameValueLabel).center().row(); + descriptionLabel = new Label("", parent.getGame().getMainSkin()); - this.add(descriptionLabel).center().row(); + descriptionLabel.setWrap(true); + descriptionContainer = new Table(); + descriptionContainer.setBackground(parent.getGame().getIdleMushroomTextureManager().getTableType5Drawable()); + descriptionContainer.add(descriptionLabel).grow().center(); + countStartLabel = new Label("", parent.getGame().getMainSkin()); - this.add(countStartLabel).center().row(); countValueLabel = new Label("", parent.getGame().getMainSkin()); - this.add(countValueLabel).center().row(); + + + if (wideMode) { + this.add(nameStartLabel).right(); + this.add(nameValueLabel).left().row(); + this.add(descriptionContainer).colspan(2).grow().row(); + this.add(countStartLabel).right(); + this.add(countValueLabel).left().row(); + } else { + this.add(nameStartLabel).center().row(); + this.add(nameValueLabel).center().row(); + this.add(descriptionContainer).grow().row(); + this.add(countStartLabel).center().row(); + this.add(countValueLabel).center().row(); + } + nameStartLabel.setText(texts.get(0)); countStartLabel.setText(texts.get(1)); @@ -56,16 +83,18 @@ public void updateData() { { nameValueLabel.setText(achievementAndStatus.getAchievement().getName()); descriptionLabel.setText(achievementAndStatus.getAchievement().getDescription()); + countValueLabel.setText(JavaFeatureForGwt.stringFormat( + "state:%s", + achievementAndStatus.getSaveData().getState() + )); } else { nameValueLabel.setText(""); descriptionLabel.setText(texts.get(5)); + countValueLabel.setText(""); } - countValueLabel.setText(JavaFeatureForGwt.stringFormat( - "state:%s", - achievementAndStatus.getSaveData().getState() - )); + } } diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/FirstRunningAchievementBoardVM.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/FirstRunningAchievementBoardVM.java new file mode 100644 index 0000000..7120c13 --- /dev/null +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/FirstRunningAchievementBoardVM.java @@ -0,0 +1,54 @@ +package hundun.gdxgame.idlemushroom.ui.main; + +import com.badlogic.gdx.scenes.scene2d.ui.Label; +import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; +import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; +import hundun.gdxgame.idlemushroom.ui.achievement.OneAchievementNodeVM; +import hundun.gdxgame.idlemushroom.ui.shared.BaseIdleMushroomScreen; +import hundun.gdxgame.idleshare.core.framework.BaseIdleGame; +import hundun.gdxgame.idleshare.core.starter.ui.screen.play.BaseIdleScreen; +import hundun.gdxgame.idleshare.gamelib.framework.model.manager.AchievementManager.AchievementInfoPackage; +import hundun.gdxgame.idleshare.gamelib.framework.model.manager.AchievementManager.AchievementState; + +import java.util.List; + +public class FirstRunningAchievementBoardVM extends Table { + + BaseIdleMushroomScreen parent; + + + OneAchievementNodeVM node; + + Label nameStartLabel; + Label nameValueLabel; + Label descriptionLabel; + Label countStartLabel; + Label countValueLabel; + + List texts; + + public FirstRunningAchievementBoardVM(BaseIdleMushroomScreen parent) + { + this.parent = parent; + this.texts = parent.getGame().getIdleGameplayExport().getGameDictionary() + .getAchievementTexts(parent.getGame().getIdleGameplayExport().getLanguage()); + this.setBackground(parent.getGame().getTextureManager().getDefaultBoardNinePatchDrawable()); + + + this.node = new OneAchievementNodeVM(parent, null, false); + this.add(node); + updateData(); + } + + public void updateData() + { + if (node.getAchievementAndStatus() == null + || node.getAchievementAndStatus().getSaveData().getState() != AchievementState.RUNNING) { + AchievementInfoPackage data = parent.getGame().getIdleGameplayExport().getGameplayContext().getAchievementManager().getAchievementInfoPackage(); + node.setAchievementAndStatus(data.getFirstRunningAchievement()); + } + node.updateData(); + } + +} diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/GameEntityFactory.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/GameEntityFactory.java similarity index 89% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/GameEntityFactory.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/GameEntityFactory.java index 7b8ca1f..a2edee1 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/GameEntityFactory.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/GameEntityFactory.java @@ -1,8 +1,8 @@ -package hundun.gdxgame.idledemo.ui.main; +package hundun.gdxgame.idlemushroom.ui.main; -import hundun.gdxgame.idledemo.logic.DemoConstructionPrototypeId; -import hundun.gdxgame.idledemo.logic.ResourceType; -import hundun.gdxgame.idledemo.ui.screen.MainPlayScreen; +import hundun.gdxgame.idlemushroom.logic.DemoConstructionPrototypeId; +import hundun.gdxgame.idlemushroom.logic.ResourceType; +import hundun.gdxgame.idlemushroom.ui.screen.MainPlayScreen; import hundun.gdxgame.idleshare.core.framework.model.entity.BaseGameEntityFactory; import hundun.gdxgame.idleshare.core.framework.model.entity.GameEntity; import hundun.gdxgame.idleshare.core.starter.ui.screen.play.PlayScreenLayoutConst; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/MainScreenConstructionControlBoard.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/MainScreenConstructionControlBoard.java similarity index 91% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/MainScreenConstructionControlBoard.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/MainScreenConstructionControlBoard.java index 418bdf2..48cc357 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/MainScreenConstructionControlBoard.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/MainScreenConstructionControlBoard.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.ui.main; +package hundun.gdxgame.idlemushroom.ui.main; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; @@ -13,10 +13,11 @@ import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; import hundun.gdxgame.gamelib.starter.listerner.IGameAreaChangeListener; import hundun.gdxgame.gamelib.starter.listerner.ILogicFrameListener; -import hundun.gdxgame.idledemo.logic.DemoConstructionPrototypeId; -import hundun.gdxgame.idledemo.ui.screen.MainPlayScreen; -import hundun.gdxgame.idledemo.ui.shared.BaseCellDetailNodeVM; -import hundun.gdxgame.idledemo.ui.shared.ConstructionDetailPartVM; +import hundun.gdxgame.idlemushroom.logic.DemoConstructionPrototypeId; +import hundun.gdxgame.idlemushroom.ui.screen.IdleMushroomScreenContext.IdleMushroomPlayScreenLayoutConst; +import hundun.gdxgame.idlemushroom.ui.screen.MainPlayScreen; +import hundun.gdxgame.idlemushroom.ui.shared.BaseCellDetailNodeVM; +import hundun.gdxgame.idlemushroom.ui.shared.ConstructionDetailPartVM; import hundun.gdxgame.idleshare.core.starter.ui.component.board.construction.impl.StarterConstructionControlNode.StarterSecondaryInfoBoardCallerClickListener; import hundun.gdxgame.idleshare.core.starter.ui.screen.play.PlayScreenLayoutConst; import hundun.gdxgame.idleshare.gamelib.framework.callback.IConstructionCollectionListener; @@ -49,7 +50,7 @@ public MainScreenConstructionControlBoard(MainPlayScreen parent, ISecondaryInfoB this.setBackground(parent.getLayoutConst().simpleBoardBackground); - this.pad(30); + this.pad(20); if (parent.getGame().debugMode) { this.debugCell(); @@ -120,7 +121,7 @@ public EpochPart( MainPlayScreen parent, ISecondaryInfoBoardCallback callback) { super(); - final PlayScreenLayoutConst playScreenLayoutConst = parent.getLayoutConst(); + final IdleMushroomPlayScreenLayoutConst playScreenLayoutConst = parent.getIdleMushroomPlayScreenLayoutConst(); this.parent = parent; int CHILD_WIDTH = playScreenLayoutConst.EPOCH_PART_CHILD_WIDTH; @@ -148,20 +149,22 @@ public void changed(ChangeEvent event, Actor actor) { workingLevelLabel.setAlignment(Align.center); Container questionMarkArea = new Container<>(new Image(parent.getGame().getIdleMushroomTextureManager().getQuestionMarkTexture())); - questionMarkArea.setBackground(parent.getGame().getIdleMushroomTextureManager().getDefaultBoardNinePatchDrawable()); + questionMarkArea.setBackground(parent.getGame().getIdleMushroomTextureManager().getQuestionMarkTableDrawable()); questionMarkArea.setTouchable(Touchable.enabled); questionMarkArea.addListener(new StarterSecondaryInfoBoardCallerClickListener(() -> model, parent)); // ------ this ------ leftPart.add(constructionNameLabel).size(CHILD_WIDTH, NAME_CHILD_HEIGHT); - leftPart.add(questionMarkArea).size(parent.getLayoutConst().questionMarkAreaSize, parent.getLayoutConst().questionMarkAreaSize).row(); + leftPart.add(questionMarkArea) + .size(parent.getIdleMushroomPlayScreenLayoutConst().questionMarkAreaSize, parent.getIdleMushroomPlayScreenLayoutConst().questionMarkAreaSize) + .row(); leftPart.add(upgradeButton).size(CHILD_WIDTH, CHILD_HEIGHT).colspan(2).row(); leftPart.add(workingLevelLabel).size(CHILD_WIDTH, CHILD_HEIGHT).colspan(2).row(); this.add(leftPart).padRight(20); this.add(epochDetailPart); - this.setBackground(DrawableFactory.createBorderBoard(30, 10, 0.8f, 1)); + this.setBackground(parent.getGame().getIdleMushroomTextureManager().getTableType3Drawable()); } private void update() { @@ -234,7 +237,7 @@ public SellerPart( MainPlayScreen parent, ISecondaryInfoBoardCallback callback) { super(); - final PlayScreenLayoutConst playScreenLayoutConst = parent.getLayoutConst(); + final IdleMushroomPlayScreenLayoutConst playScreenLayoutConst = parent.getIdleMushroomPlayScreenLayoutConst(); this.parent = parent; int CHILD_WIDTH = playScreenLayoutConst.SELLER_PART_CHILD_WIDTH; @@ -285,18 +288,20 @@ public void clicked(InputEvent event, float x, float y) { detailGroup = new Table(); Container questionMarkArea = new Container<>(new Image(parent.getGame().getIdleMushroomTextureManager().getQuestionMarkTexture())); - questionMarkArea.setBackground(parent.getGame().getIdleMushroomTextureManager().getDefaultBoardNinePatchDrawable()); + questionMarkArea.setBackground(parent.getGame().getIdleMushroomTextureManager().getQuestionMarkTableDrawable()); questionMarkArea.setTouchable(Touchable.enabled); questionMarkArea.addListener(new StarterSecondaryInfoBoardCallerClickListener(() -> model, parent)); // ------ this ------ leftPart.add(constructionNameLabel).size(CHILD_WIDTH, NAME_CHILD_HEIGHT); - leftPart.add(questionMarkArea).size(parent.getLayoutConst().questionMarkAreaSize, parent.getLayoutConst().questionMarkAreaSize).row(); + leftPart.add(questionMarkArea) + .size(parent.getIdleMushroomPlayScreenLayoutConst().questionMarkAreaSize, parent.getIdleMushroomPlayScreenLayoutConst().questionMarkAreaSize) + .row(); leftPart.add(upgradeButton).size(CHILD_WIDTH, CHILD_HEIGHT).colspan(2).row(); leftPart.add(workingLevelLabel).size(CHILD_WIDTH, CHILD_HEIGHT).colspan(2).row(); leftPart.add(changeWorkingLevelGroup).size(CHILD_WIDTH, CHILD_HEIGHT).colspan(2).row(); - this.add(leftPart).padRight(20);; + this.add(leftPart).padRight(20); this.add(detailGroup); this.setBackground(parent.getGame().getIdleMushroomTextureManager().getTableType3Drawable()); @@ -326,10 +331,8 @@ private void update() { // ------ update text ------ constructionNameLabel.setText(JavaFeatureForGwt.stringFormat( - "%s (%s, %s)", - model.getName(), - model.getSaveData().getPosition().getX(), - model.getSaveData().getPosition().getY() + "%s", + model.getName() )); upgradeButton.setText(model.getDescriptionPackage().getUpgradeButtonText()); workingLevelLabel.setText(model.getLevelComponent().getWorkingLevelDescription() + "; max: " + model.getLevelComponent().maxLevel); diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/MainScreenPopupInfoBoard.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/MainScreenPopupInfoBoard.java similarity index 84% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/MainScreenPopupInfoBoard.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/MainScreenPopupInfoBoard.java index 9c22753..98af498 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/MainScreenPopupInfoBoard.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/MainScreenPopupInfoBoard.java @@ -1,11 +1,10 @@ -package hundun.gdxgame.idledemo.ui.main; +package hundun.gdxgame.idlemushroom.ui.main; import com.badlogic.gdx.scenes.scene2d.Touchable; import com.badlogic.gdx.scenes.scene2d.ui.Table; -import hundun.gdxgame.idledemo.logic.DemoConstructionPrototypeId; -import hundun.gdxgame.idledemo.ui.screen.MainPlayScreen; -import hundun.gdxgame.idledemo.ui.shared.ConstructionDetailPartVM; -import hundun.gdxgame.idledemo.ui.shared.ConstructionWikiVM; +import hundun.gdxgame.idlemushroom.logic.DemoConstructionPrototypeId; +import hundun.gdxgame.idlemushroom.ui.screen.MainPlayScreen; +import hundun.gdxgame.idlemushroom.ui.shared.ConstructionWikiVM; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; public class MainScreenPopupInfoBoard extends Table { diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/OneEpochInfoAreaVM.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/OneEpochInfoAreaVM.java similarity index 84% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/OneEpochInfoAreaVM.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/OneEpochInfoAreaVM.java index 17f9179..c302bf8 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/OneEpochInfoAreaVM.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/OneEpochInfoAreaVM.java @@ -1,11 +1,12 @@ -package hundun.gdxgame.idledemo.ui.main; +package hundun.gdxgame.idlemushroom.ui.main; import com.badlogic.gdx.scenes.scene2d.ui.*; import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Null; import hundun.gdxgame.corelib.base.util.DrawableFactory; -import hundun.gdxgame.idledemo.IdleMushroomGame.RootEpochConfig; -import hundun.gdxgame.idledemo.ui.screen.MainPlayScreen; +import hundun.gdxgame.idlemushroom.IdleMushroomGame.RootEpochConfig; +import hundun.gdxgame.idlemushroom.ui.screen.IdleMushroomScreenContext.IdleMushroomPlayScreenLayoutConst; +import hundun.gdxgame.idlemushroom.ui.screen.MainPlayScreen; import hundun.gdxgame.idleshare.core.starter.ui.screen.play.PlayScreenLayoutConst; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; @@ -24,10 +25,10 @@ public OneEpochInfoAreaVM( MainPlayScreen parent ) { super(); - final PlayScreenLayoutConst playScreenLayoutConst = parent.getLayoutConst(); + final IdleMushroomPlayScreenLayoutConst playScreenLayoutConst = parent.getIdleMushroomPlayScreenLayoutConst(); this.parent = parent; - int CHILD_WIDTH = playScreenLayoutConst.SELLER_PART_CHILD_WIDTH; + int CHILD_WIDTH = playScreenLayoutConst.EpochInfoArea_CHILD_WIDTH; int CHILD_HEIGHT = playScreenLayoutConst.CONSTRUCION_CHILD_BUTTON_HEIGHT; int NAME_CHILD_HEIGHT = playScreenLayoutConst.CONSTRUCION_CHILD_NAME_HEIGHT; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/TwoEpochInfoAreaVM.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/TwoEpochInfoAreaVM.java similarity index 87% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/TwoEpochInfoAreaVM.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/TwoEpochInfoAreaVM.java index 868ec16..21c8d1d 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/main/TwoEpochInfoAreaVM.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/main/TwoEpochInfoAreaVM.java @@ -1,13 +1,11 @@ -package hundun.gdxgame.idledemo.ui.main; +package hundun.gdxgame.idlemushroom.ui.main; -import com.badlogic.gdx.scenes.scene2d.Actor; -import com.badlogic.gdx.scenes.scene2d.ui.Container; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup; -import hundun.gdxgame.idledemo.IdleMushroomGame; -import hundun.gdxgame.idledemo.IdleMushroomGame.RootEpochConfig; -import hundun.gdxgame.idledemo.ui.screen.MainPlayScreen; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.IdleMushroomGame.RootEpochConfig; +import hundun.gdxgame.idlemushroom.ui.screen.MainPlayScreen; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; public class TwoEpochInfoAreaVM extends Table { diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/DemoAchievementScreen.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/DemoAchievementScreen.java similarity index 62% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/DemoAchievementScreen.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/DemoAchievementScreen.java index c1479ff..b9df02b 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/DemoAchievementScreen.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/DemoAchievementScreen.java @@ -1,25 +1,24 @@ -package hundun.gdxgame.idledemo.ui.screen; +package hundun.gdxgame.idlemushroom.ui.screen; import com.badlogic.gdx.InputProcessor; -import hundun.gdxgame.idledemo.IdleMushroomGame; -import hundun.gdxgame.idledemo.logic.DemoScreenId; -import hundun.gdxgame.idledemo.logic.ResourceType; -import hundun.gdxgame.idledemo.logic.RootSaveData; -import hundun.gdxgame.idledemo.ui.achievement.AllAchievementBoardVM; -import hundun.gdxgame.idledemo.ui.shared.BaseIdleMushroomScreen; -import hundun.gdxgame.idleshare.core.starter.ui.screen.play.BaseIdleScreen; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.logic.DemoScreenId; +import hundun.gdxgame.idlemushroom.logic.ResourceType; +import hundun.gdxgame.idlemushroom.ui.achievement.AllAchievementBoardVM; +import hundun.gdxgame.idlemushroom.ui.screen.IdleMushroomScreenContext.IdleMushroomPlayScreenLayoutConst; +import hundun.gdxgame.idlemushroom.ui.shared.BaseIdleMushroomScreen; import hundun.gdxgame.idleshare.gamelib.framework.callback.IAchievementStateChangeListener; import hundun.gdxgame.idleshare.gamelib.framework.model.achievement.AbstractAchievement; import hundun.gdxgame.idleshare.gamelib.framework.model.manager.AchievementManager.AchievementState; public class DemoAchievementScreen extends BaseIdleMushroomScreen implements IAchievementStateChangeListener { - AllAchievementBoardVM allAchievementBoardVM; + AllAchievementBoardVM allAchievementBoardVM; public DemoAchievementScreen(IdleMushroomGame game) { - super(game, DemoScreenId.SCREEN_ACHIEVEMENT, DemoScreenContext.customLayoutConst(game)); + super(game, DemoScreenId.SCREEN_ACHIEVEMENT, IdleMushroomPlayScreenLayoutConst.customLayoutConst(game)); } @Override @@ -36,7 +35,7 @@ protected InputProcessor provideDefaultInputProcessor() { protected void lazyInitUiRootContext() { super.lazyInitUiRootContext(); - allAchievementBoardVM = new AllAchievementBoardVM<>(this); + allAchievementBoardVM = new AllAchievementBoardVM(this); middleGroup.add(allAchievementBoardVM).expand().row(); diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/DemoMenuScreen.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/DemoMenuScreen.java similarity index 89% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/DemoMenuScreen.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/DemoMenuScreen.java index ef8e6a1..4bf376c 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/DemoMenuScreen.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/DemoMenuScreen.java @@ -1,11 +1,11 @@ -package hundun.gdxgame.idledemo.ui.screen; +package hundun.gdxgame.idlemushroom.ui.screen; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.InputListener; -import hundun.gdxgame.idledemo.IdleMushroomGame; -import hundun.gdxgame.idledemo.logic.DemoScreenId; -import hundun.gdxgame.idledemo.logic.RootSaveData; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.logic.DemoScreenId; +import hundun.gdxgame.idlemushroom.logic.RootSaveData; import hundun.gdxgame.idleshare.core.starter.ui.screen.menu.BaseIdleMenuScreen; /** diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/IdleMushroomScreenContext.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/IdleMushroomScreenContext.java new file mode 100644 index 0000000..c5d633d --- /dev/null +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/IdleMushroomScreenContext.java @@ -0,0 +1,67 @@ +package hundun.gdxgame.idlemushroom.ui.screen; + +import com.badlogic.gdx.graphics.g2d.NinePatch; +import com.badlogic.gdx.scenes.scene2d.utils.NinePatchDrawable; +import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.logic.DemoScreenId; +import hundun.gdxgame.idlemushroom.logic.RootSaveData; +import hundun.gdxgame.idleshare.core.framework.model.manager.AbstractIdleScreenContext; +import hundun.gdxgame.idleshare.core.starter.ui.screen.play.PlayScreenLayoutConst; + +/** + * @author hundun + * Created on 2023/02/17 + */ +public class IdleMushroomScreenContext extends AbstractIdleScreenContext { + + DemoMenuScreen menuScreen; + MainPlayScreen mainPlayScreen; + WorldPlayScreen worldPlayScreen; + DemoAchievementScreen achievementScreen; + + + + public static class IdleMushroomPlayScreenLayoutConst extends PlayScreenLayoutConst { + + public float questionMarkAreaSize = 32; + public int EPOCH_PART_CHILD_WIDTH = 100; + public int SELLER_PART_CHILD_WIDTH = 100; + public int EpochInfoArea_CHILD_WIDTH = 200; + + public IdleMushroomPlayScreenLayoutConst(int gameLogicWidth, int gameLogicHeight) { + super(gameLogicWidth, gameLogicHeight); + } + + public static IdleMushroomPlayScreenLayoutConst customLayoutConst(IdleMushroomGame game) { + IdleMushroomPlayScreenLayoutConst layoutConst = new IdleMushroomPlayScreenLayoutConst(game.getWidth(), game.getHeight()); + NinePatch ninePatch = new NinePatch(game.getTextureManager().getDefaultBoardNinePatchTexture(), + game.getTextureManager().getDefaultBoardNinePatchEdgeSize(), + game.getTextureManager().getDefaultBoardNinePatchEdgeSize(), + game.getTextureManager().getDefaultBoardNinePatchEdgeSize(), + game.getTextureManager().getDefaultBoardNinePatchEdgeSize() + ); + layoutConst.simpleBoardBackground = new NinePatchDrawable(ninePatch); + layoutConst.simpleBoardBackgroundMiddle = new TextureRegionDrawable(game.getTextureManager().getDefaultBoardNinePatchMiddle()); + return layoutConst; + } + } + + public IdleMushroomScreenContext(IdleMushroomGame game) { + super(game); + } + + @Override + public void lazyInit() { + this.menuScreen = new DemoMenuScreen(game); + this.mainPlayScreen = new MainPlayScreen(game); + this.worldPlayScreen = new WorldPlayScreen(game); + this.achievementScreen = new DemoAchievementScreen(game); + + game.getScreenManager().addScreen(DemoScreenId.SCREEN_MENU, menuScreen); + game.getScreenManager().addScreen(DemoScreenId.SCREEN_MAIN, mainPlayScreen); + game.getScreenManager().addScreen(DemoScreenId.SCREEN_WORLD, worldPlayScreen); + game.getScreenManager().addScreen(DemoScreenId.SCREEN_ACHIEVEMENT, achievementScreen); + } + +} diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/MainPlayScreen.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/MainPlayScreen.java similarity index 86% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/MainPlayScreen.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/MainPlayScreen.java index 4e7f05e..f5a3556 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/MainPlayScreen.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/MainPlayScreen.java @@ -1,17 +1,17 @@ -package hundun.gdxgame.idledemo.ui.screen; +package hundun.gdxgame.idlemushroom.ui.screen; import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.graphics.g2d.SpriteBatch; -import hundun.gdxgame.idledemo.IdleMushroomGame; -import hundun.gdxgame.idledemo.logic.DemoScreenId; -import hundun.gdxgame.idledemo.logic.ResourceType; -import hundun.gdxgame.idledemo.logic.RootSaveData; -import hundun.gdxgame.idledemo.ui.main.MainScreenConstructionControlBoard; -import hundun.gdxgame.idledemo.ui.main.MainScreenPopupInfoBoard; -import hundun.gdxgame.idledemo.ui.shared.BaseIdleMushroomPlayScreen; -import hundun.gdxgame.idledemo.ui.world.HexCellVM; -import hundun.gdxgame.idledemo.ui.main.GameEntityFactory; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.logic.DemoScreenId; +import hundun.gdxgame.idlemushroom.logic.ResourceType; +import hundun.gdxgame.idlemushroom.logic.RootSaveData; +import hundun.gdxgame.idlemushroom.ui.main.MainScreenConstructionControlBoard; +import hundun.gdxgame.idlemushroom.ui.main.MainScreenPopupInfoBoard; +import hundun.gdxgame.idlemushroom.ui.shared.BaseIdleMushroomPlayScreen; +import hundun.gdxgame.idlemushroom.ui.world.HexCellVM; +import hundun.gdxgame.idlemushroom.ui.main.GameEntityFactory; import hundun.gdxgame.idleshare.core.framework.model.manager.GameEntityManager; import hundun.gdxgame.idleshare.core.starter.ui.component.GameImageDrawer; import hundun.gdxgame.idleshare.core.starter.ui.component.animation.MainClickerAnimationVM; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/WorldPlayScreen.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/WorldPlayScreen.java similarity index 91% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/WorldPlayScreen.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/WorldPlayScreen.java index bfc6bb8..a0c4e6b 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/screen/WorldPlayScreen.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/screen/WorldPlayScreen.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.ui.screen; +package hundun.gdxgame.idlemushroom.ui.screen; import com.badlogic.gdx.InputMultiplexer; import com.badlogic.gdx.InputProcessor; @@ -8,14 +8,14 @@ import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.viewport.ScreenViewport; -import hundun.gdxgame.idledemo.IdleMushroomGame; -import hundun.gdxgame.idledemo.logic.DemoScreenId; -import hundun.gdxgame.idledemo.logic.ResourceType; -import hundun.gdxgame.idledemo.ui.shared.BaseIdleMushroomPlayScreen; -import hundun.gdxgame.idledemo.ui.world.HexCellVM; -import hundun.gdxgame.idledemo.ui.world.HexAreaVM; -import hundun.gdxgame.idledemo.ui.world.WorldDetailBoardVM; -import hundun.gdxgame.idledemo.ui.world.WorldScreenPopupInfoBoard; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.logic.DemoScreenId; +import hundun.gdxgame.idlemushroom.logic.ResourceType; +import hundun.gdxgame.idlemushroom.ui.shared.BaseIdleMushroomPlayScreen; +import hundun.gdxgame.idlemushroom.ui.world.HexCellVM; +import hundun.gdxgame.idlemushroom.ui.world.HexAreaVM; +import hundun.gdxgame.idlemushroom.ui.world.WorldDetailBoardVM; +import hundun.gdxgame.idlemushroom.ui.world.WorldScreenPopupInfoBoard; import hundun.gdxgame.idleshare.core.framework.model.CameraDataPackage; import hundun.gdxgame.idleshare.gamelib.framework.callback.IConstructionCollectionListener; import hundun.gdxgame.idleshare.gamelib.framework.callback.ISecondaryInfoBoardCallback; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/BaseCellDetailNodeVM.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/BaseCellDetailNodeVM.java similarity index 90% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/BaseCellDetailNodeVM.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/BaseCellDetailNodeVM.java index a5fc8a3..926a8ca 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/BaseCellDetailNodeVM.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/BaseCellDetailNodeVM.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.ui.shared; +package hundun.gdxgame.idlemushroom.ui.shared; import com.badlogic.gdx.scenes.scene2d.ui.Table; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/BaseIdleMushroomPlayScreen.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/BaseIdleMushroomPlayScreen.java similarity index 81% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/BaseIdleMushroomPlayScreen.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/BaseIdleMushroomPlayScreen.java index d84f25a..086ae43 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/BaseIdleMushroomPlayScreen.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/BaseIdleMushroomPlayScreen.java @@ -1,18 +1,18 @@ -package hundun.gdxgame.idledemo.ui.shared; +package hundun.gdxgame.idlemushroom.ui.shared; import com.badlogic.gdx.Gdx; import hundun.gdxgame.gamelib.starter.listerner.IGameAreaChangeListener; -import hundun.gdxgame.idledemo.IdleMushroomGame; -import hundun.gdxgame.idledemo.logic.RootSaveData; -import hundun.gdxgame.idledemo.ui.main.FirstRunningAchievementBoardVM; -import hundun.gdxgame.idledemo.ui.screen.DemoScreenContext; -import hundun.gdxgame.idledemo.ui.world.HexCellVM; -import hundun.gdxgame.idledemo.ui.achievement.AchievementPopupBoard; -import hundun.gdxgame.idleshare.core.starter.ui.screen.play.BaseIdleScreen; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.logic.RootSaveData; +import hundun.gdxgame.idlemushroom.ui.main.FirstRunningAchievementBoardVM; +import hundun.gdxgame.idlemushroom.ui.screen.IdleMushroomScreenContext.IdleMushroomPlayScreenLayoutConst; +import hundun.gdxgame.idlemushroom.ui.world.HexCellVM; +import hundun.gdxgame.idlemushroom.ui.achievement.AchievementPopupBoard; import hundun.gdxgame.idleshare.gamelib.framework.callback.IAchievementBoardCallback; import hundun.gdxgame.idleshare.gamelib.framework.callback.IAchievementStateChangeListener; import hundun.gdxgame.idleshare.gamelib.framework.model.achievement.AbstractAchievement; import hundun.gdxgame.idleshare.gamelib.framework.model.manager.AchievementManager.AchievementState; +import lombok.Getter; import java.util.ArrayList; import java.util.List; @@ -21,13 +21,15 @@ public abstract class BaseIdleMushroomPlayScreen extends BaseIdleMushroomScreen implements IGameAreaChangeListener, IAchievementBoardCallback, IAchievementStateChangeListener { - protected FirstRunningAchievementBoardVM firstRunningAchievementBoardVM; + protected FirstRunningAchievementBoardVM firstRunningAchievementBoardVM; protected AchievementPopupBoard achievementPopupBoard; IdleMushroomGame idleMushroomGame; protected List showAchievementMaskBoardQueue = new ArrayList<>(); - + @Getter + protected IdleMushroomPlayScreenLayoutConst idleMushroomPlayScreenLayoutConst; public BaseIdleMushroomPlayScreen(IdleMushroomGame game, String screenId) { - super(game, screenId, DemoScreenContext.customLayoutConst(game)); + super(game, screenId, IdleMushroomPlayScreenLayoutConst.customLayoutConst(game)); + this.idleMushroomPlayScreenLayoutConst = IdleMushroomPlayScreenLayoutConst.customLayoutConst(game); this.idleMushroomGame = game; } @@ -47,7 +49,7 @@ protected void lazyInitUiRootContext() { super.lazyInitUiRootContext(); - firstRunningAchievementBoardVM = new FirstRunningAchievementBoardVM<>(this); + firstRunningAchievementBoardVM = new FirstRunningAchievementBoardVM(this); leftSideGroup.add(firstRunningAchievementBoardVM) .width(getLayoutConst().FIRST_LOCKED_ACHIEVEMENT_BOARD_WIDTH) .growY() diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/BaseIdleMushroomScreen.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/BaseIdleMushroomScreen.java similarity index 80% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/BaseIdleMushroomScreen.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/BaseIdleMushroomScreen.java index b36aec8..9e4f00d 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/BaseIdleMushroomScreen.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/BaseIdleMushroomScreen.java @@ -1,20 +1,19 @@ -package hundun.gdxgame.idledemo.ui.shared; +package hundun.gdxgame.idlemushroom.ui.shared; import com.badlogic.gdx.scenes.scene2d.ui.Table; -import hundun.gdxgame.idledemo.IdleMushroomGame; -import hundun.gdxgame.idledemo.logic.RootSaveData; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.logic.RootSaveData; import hundun.gdxgame.idleshare.core.starter.ui.component.BackgroundImageBox; import hundun.gdxgame.idleshare.core.starter.ui.component.GameAreaControlBoard; -import hundun.gdxgame.idleshare.core.starter.ui.component.StarterStorageInfoBoard; import hundun.gdxgame.idleshare.core.starter.ui.screen.play.BaseIdleScreen; import hundun.gdxgame.idleshare.core.starter.ui.screen.play.PlayScreenLayoutConst; public abstract class BaseIdleMushroomScreen extends BaseIdleScreen { - protected StarterStorageInfoBoard storageInfoTable; + protected StorageInfoBoard storageInfoTable; protected BackgroundImageBox backgroundImageBox; - protected GameAreaControlBoard gameAreaControlBoard; + protected IdleMushroomGameAreaControlBoard gameAreaControlBoard; protected Table leftSideGroup; protected Table middleGroup; @@ -41,7 +40,7 @@ protected void lazyInitLogicContext() { @Override protected void lazyInitUiRootContext() { - storageInfoTable = new StarterStorageInfoBoard<>(this); + storageInfoTable = new StorageInfoBoard(this); uiRootTable.add(storageInfoTable) .height(layoutConst.STORAGE_BOARD_BORDER_HEIGHT) .fill() @@ -55,12 +54,11 @@ protected void lazyInitUiRootContext() { middleGroup = new Table(); uiRootTable.add(middleGroup).grow(); - gameAreaControlBoard = new GameAreaControlBoard<>(this); + gameAreaControlBoard = new IdleMushroomGameAreaControlBoard(this); gameAreaControlBoard.top(); uiRootTable.add(gameAreaControlBoard) .growY() .row(); - } @Override diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/ConstructionDetailPartVM.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/ConstructionDetailPartVM.java similarity index 95% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/ConstructionDetailPartVM.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/ConstructionDetailPartVM.java index 3256c04..08c031c 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/ConstructionDetailPartVM.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/ConstructionDetailPartVM.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.ui.shared; +package hundun.gdxgame.idlemushroom.ui.shared; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Touchable; @@ -6,7 +6,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.utils.Null; -import hundun.gdxgame.idledemo.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; import hundun.gdxgame.idleshare.core.starter.ui.component.ResourceAmountPairNode; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.UpgradeComponent.UpgradeState; @@ -26,7 +26,7 @@ public ConstructionDetailPartVM(BaseIdleMushroomPlayScreen parent) { this.parent = parent; //this.setBounds(5, GameAreaControlBoard.Y, GameAreaControlBoard.X - 10, 120); this.setTouchable(Touchable.disabled); - this.setBackground(parent.getLayoutConst().simpleBoardBackground); + //this.setBackground(parent.getLayoutConst().simpleBoardBackground); } diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/ConstructionWikiVM.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/ConstructionWikiVM.java similarity index 95% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/ConstructionWikiVM.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/ConstructionWikiVM.java index de5a70d..80f5d98 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/shared/ConstructionWikiVM.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/ConstructionWikiVM.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.ui.shared; +package hundun.gdxgame.idlemushroom.ui.shared; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Table; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/IdleMushroomGameAreaControlBoard.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/IdleMushroomGameAreaControlBoard.java new file mode 100644 index 0000000..4e7c457 --- /dev/null +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/IdleMushroomGameAreaControlBoard.java @@ -0,0 +1,111 @@ +package hundun.gdxgame.idlemushroom.ui.shared; + +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.Touchable; +import com.badlogic.gdx.scenes.scene2d.ui.Image; +import com.badlogic.gdx.scenes.scene2d.ui.Label; +import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; +import com.badlogic.gdx.scenes.scene2d.utils.Drawable; +import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; +import hundun.gdxgame.gamelib.starter.listerner.IGameAreaChangeListener; +import hundun.gdxgame.idleshare.core.starter.ui.screen.play.BaseIdleScreen; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * @author hundun + * Created on 2021/11/20 + */ +public class IdleMushroomGameAreaControlBoard extends Table implements IGameAreaChangeListener { + + BaseIdleMushroomScreen parent; + Map nodes = new LinkedHashMap<>(); + + + public IdleMushroomGameAreaControlBoard(BaseIdleMushroomScreen parent) { + super(); + this.parent = parent; + this.setBackground(parent.getGame().getTextureManager().getDefaultBoardNinePatchDrawable()); + this.padRight(0); + + } + + + + @Override + public void onGameAreaChange(String last, String current) { + rebuildChild(current); + } + + private void rebuildChild(String current) { + + nodes.entrySet().forEach(entry -> { + if (Objects.equals(entry.getKey(), current)) { + entry.getValue().changeVersion(true); + } else { + entry.getValue().changeVersion(false); + } + + }); + + } + + public void lazyInit(List controlBoardScreenIds) { + + nodes.clear(); + this.clear(); + + for (String controlBoardScreenId : controlBoardScreenIds) { + + Node node = new Node(parent, controlBoardScreenId, false); + nodes.put(controlBoardScreenId, node); + this.add(node) + .width(parent.getLayoutConst().AREA_BOARD_BORDER_WIDTH) + .height(parent.getLayoutConst().AREA_BOARD_CELL_HEIGHT) + .row(); + } + + rebuildChild(null); + + } + + public static class Node extends Table { + + BaseIdleMushroomScreen parent; + //Image image; + //Label label; + + String gotoScreenId; + + public Node(BaseIdleMushroomScreen parent, String gotoScreenId, boolean longVersion) { + this.parent = parent; + this.gotoScreenId = gotoScreenId; + this.setTouchable(Touchable.enabled); + this.addListener(new ClickListener() { + @Override + public void clicked(InputEvent event, float x, float y) { + super.clicked(event, x, y); + + parent.getGame().setLastScreenId(parent.getScreenId()); + parent.getGame().getScreenManager().pushScreen(gotoScreenId, null); + parent.getGame().getAudioPlayManager().intoScreen(gotoScreenId); + } + }); +/* this.label = new Label(gotoScreenId, parent.getGame().getMainSkin()); + this.add(label).right();*/ + } + + + public void changeVersion(boolean longVersion) { + this.setBackground(new TextureRegionDrawable( + parent.getGame().getTextureManager().getGameAreaTexture(gotoScreenId, longVersion) + )); +/* label.setVisible(longVersion);*/ + } + + } +} diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/StorageInfoBoard.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/StorageInfoBoard.java new file mode 100644 index 0000000..ade1aa6 --- /dev/null +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/shared/StorageInfoBoard.java @@ -0,0 +1,106 @@ +package hundun.gdxgame.idlemushroom.ui.shared; + +import com.badlogic.gdx.scenes.scene2d.ui.Cell; +import com.badlogic.gdx.scenes.scene2d.ui.Table; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idleshare.core.starter.ui.component.StorageResourceAmountPairNode; +import hundun.gdxgame.idleshare.core.starter.ui.screen.play.BaseIdleScreen; +import hundun.gdxgame.idleshare.gamelib.framework.listener.IOneFrameResourceChangeListener; +import hundun.gdxgame.idleshare.gamelib.framework.util.Utils; + +import java.util.*; + +/** + * @author hundun + * Created on 2021/11/05 + */ +public class StorageInfoBoard extends Table implements IOneFrameResourceChangeListener { + + private static int NODE_HEIGHT = 25; + private static int NODE_WIDTH = 120; + + public static int NUM_NODE_PER_ROW = 5; + + List shownOrders; + Set shownTypes = new HashSet<>(); + BaseIdleMushroomScreen parent; + + List> nodes = new ArrayList<>(); + + public void lazyInit(List shownOrders) { + this.shownOrders = shownOrders; + rebuildCells(); + } + + //Label mainLabel; + + + public StorageInfoBoard(BaseIdleMushroomScreen parent) { + this.parent = parent; + this.setBackground(parent.getGame().getIdleMushroomTextureManager().getDefaultBoardNinePatchDrawable()); + + + if (parent.getGame().debugMode) { + this.debugAll(); + } + } + + + + private void rebuildCells() { + this.clearChildren(); + nodes.clear(); + + for (int i = 0; i < shownOrders.size(); i++) { + String resourceType = shownOrders.get(i); + if (shownTypes.contains(resourceType)) { + StorageResourceAmountPairNode node = new StorageResourceAmountPairNode<>(parent.getGame(), resourceType); + nodes.add(node); + shownTypes.add(resourceType); + Cell> cell = this.add(node).width(NODE_WIDTH).height(NODE_HEIGHT); + if ((i + 1) % NUM_NODE_PER_ROW == 0) { + cell.row(); + } + } + } + + } + + + + public void updateViewData(Map changeMap, Map> deltaHistoryMap) { + Set unlockedResourceTypes = parent.getGame().getIdleGameplayExport().getGameplayContext().getStorageManager().getUnlockedResourceTypes(); + boolean needRebuildCells = !shownTypes.equals(unlockedResourceTypes); + if (needRebuildCells) { + shownTypes.clear(); + shownTypes.addAll(unlockedResourceTypes); + rebuildCells(); + } + + nodes.stream().forEach(node -> { + long historySum; + if (deltaHistoryMap.containsKey(node.getResourceType())) + { + historySum = deltaHistoryMap.get(node.getResourceType()).stream() + .collect(Utils.lastN(BaseIdleScreen.LOGIC_FRAME_PER_SECOND)) + .stream() + .mapToLong(it -> it) + .sum() + ; + } + else + { + historySum = 0; + } + + long amount = parent.getGame().getIdleGameplayExport().getGameplayContext().getStorageManager().getResourceNumOrZero(node.getResourceType()); + node.update(historySum, amount); + }); + } + + + @Override + public void onResourceChange(Map changeMap, Map> deltaHistoryMap) { + updateViewData(changeMap, deltaHistoryMap); + } +} diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/HexAreaVM.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/HexAreaVM.java similarity index 91% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/HexAreaVM.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/HexAreaVM.java index 1a3a077..5c74ae4 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/HexAreaVM.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/HexAreaVM.java @@ -1,17 +1,13 @@ -package hundun.gdxgame.idledemo.ui.world; +package hundun.gdxgame.idlemushroom.ui.world; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.Actor; -import com.badlogic.gdx.scenes.scene2d.InputEvent; -import com.badlogic.gdx.scenes.scene2d.InputEvent.Type; -import com.badlogic.gdx.scenes.scene2d.Touchable; import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.Table; -import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.Null; import hundun.gdxgame.corelib.base.util.DrawableFactory; -import hundun.gdxgame.idledemo.ui.screen.WorldPlayScreen; -import hundun.gdxgame.idledemo.ui.world.HexCellVM.MaskMode; +import hundun.gdxgame.idlemushroom.ui.screen.WorldPlayScreen; +import hundun.gdxgame.idlemushroom.ui.world.HexCellVM.MaskMode; import hundun.gdxgame.idleshare.core.framework.model.CameraDataPackage; import hundun.gdxgame.idleshare.core.framework.model.CameraGestureListener; @@ -19,7 +15,6 @@ import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; import lombok.Getter; -import java.util.Comparator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/HexCellClickListener.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/HexCellClickListener.java similarity index 84% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/HexCellClickListener.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/HexCellClickListener.java index 7b8cd73..9ed6f04 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/HexCellClickListener.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/HexCellClickListener.java @@ -1,9 +1,9 @@ -package hundun.gdxgame.idledemo.ui.world; +package hundun.gdxgame.idlemushroom.ui.world; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; -import hundun.gdxgame.idledemo.IdleMushroomGame; -import hundun.gdxgame.idledemo.ui.screen.WorldPlayScreen; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.ui.screen.WorldPlayScreen; public class HexCellClickListener extends ClickListener { diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/HexCellVM.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/HexCellVM.java similarity index 96% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/HexCellVM.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/HexCellVM.java index 91bc4ba..e14cbf2 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/HexCellVM.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/HexCellVM.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.ui.world; +package hundun.gdxgame.idlemushroom.ui.world; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.ui.Image; @@ -6,8 +6,8 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; import com.badlogic.gdx.utils.Null; -import hundun.gdxgame.idledemo.IdleMushroomGame; -import hundun.gdxgame.idledemo.ui.screen.WorldPlayScreen; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.ui.screen.WorldPlayScreen; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; import hundun.gdxgame.idleshare.gamelib.framework.model.grid.TileNodeUtils.HexMode; import lombok.Getter; diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldDetailBoardVM.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldDetailBoardVM.java similarity index 88% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldDetailBoardVM.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldDetailBoardVM.java index a3c3918..68a6fed 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldDetailBoardVM.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldDetailBoardVM.java @@ -1,14 +1,11 @@ -package hundun.gdxgame.idledemo.ui.world; +package hundun.gdxgame.idlemushroom.ui.world; -import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Touchable; import com.badlogic.gdx.scenes.scene2d.ui.Table; -import com.badlogic.gdx.scenes.scene2d.ui.TextButton; -import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import hundun.gdxgame.gamelib.starter.listerner.ILogicFrameListener; -import hundun.gdxgame.idledemo.logic.DemoConstructionPrototypeId; -import hundun.gdxgame.idledemo.ui.screen.WorldPlayScreen; -import hundun.gdxgame.idledemo.ui.shared.BaseCellDetailNodeVM; +import hundun.gdxgame.idlemushroom.logic.DemoConstructionPrototypeId; +import hundun.gdxgame.idlemushroom.ui.screen.WorldPlayScreen; +import hundun.gdxgame.idlemushroom.ui.shared.BaseCellDetailNodeVM; import hundun.gdxgame.idleshare.gamelib.framework.callback.IConstructionCollectionListener; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; import lombok.Getter; @@ -76,8 +73,8 @@ public void selectCell(BaseConstruction construction) content.updateForNewConstruction(construction, construction.getSaveData().getPosition()); this.add(content) -/* .width(screen.getLayoutConst().WorldConstructionCellDetailNodeWidth) - .height(screen.getLayoutConst().WorldConstructionCellDetailNodeHeight)*/ + //.width(screen.getLayoutConst().WorldConstructionCellDetailNodeWidth) + .height(screen.getLayoutConst().WorldConstructionCellDetailNodeHeight) ; /* TextButton textButton = new TextButton("clear", screen.getGame().getMainSkin()); diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldEmptyDetailNode.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldEmptyDetailNode.java similarity index 74% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldEmptyDetailNode.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldEmptyDetailNode.java index a130521..a2a9b36 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldEmptyDetailNode.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldEmptyDetailNode.java @@ -1,15 +1,16 @@ -package hundun.gdxgame.idledemo.ui.world; +package hundun.gdxgame.idlemushroom.ui.world; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.scenes.scene2d.Actor; -import com.badlogic.gdx.scenes.scene2d.ui.Label; -import com.badlogic.gdx.scenes.scene2d.ui.Table; -import com.badlogic.gdx.scenes.scene2d.ui.TextButton; +import com.badlogic.gdx.scenes.scene2d.Touchable; +import com.badlogic.gdx.scenes.scene2d.ui.*; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import hundun.gdxgame.corelib.base.util.DrawableFactory; import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; -import hundun.gdxgame.idledemo.ui.shared.BaseIdleMushroomPlayScreen; -import hundun.gdxgame.idledemo.ui.shared.BaseCellDetailNodeVM; +import hundun.gdxgame.idlemushroom.ui.screen.WorldPlayScreen; +import hundun.gdxgame.idlemushroom.ui.shared.BaseIdleMushroomPlayScreen; +import hundun.gdxgame.idlemushroom.ui.shared.BaseCellDetailNodeVM; +import hundun.gdxgame.idleshare.core.starter.ui.component.board.construction.impl.StarterConstructionControlNode.StarterSecondaryInfoBoardCallerClickListener; import hundun.gdxgame.idleshare.core.starter.ui.screen.play.PlayScreenLayoutConst; import hundun.gdxgame.idleshare.gamelib.framework.data.ChildGameConfig.ConstructionBuyCandidateConfig; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; @@ -24,17 +25,17 @@ * Created on 2021/11/05 */ public class WorldEmptyDetailNode extends BaseCellDetailNodeVM { - BaseIdleMushroomPlayScreen screen; + WorldPlayScreen screen; BaseConstruction construction; GridPosition position; Label constructionNameLabel; - + Label buyCandidateKeyLabel; List children = new ArrayList<>(); public WorldEmptyDetailNode( - BaseIdleMushroomPlayScreen parent + WorldPlayScreen parent ) { super(); this.screen = parent; @@ -43,8 +44,9 @@ public WorldEmptyDetailNode( this.constructionNameLabel = new Label("", parent.getGame().getMainSkin()); constructionNameLabel.setWrap(true); + this.buyCandidateKeyLabel = new Label("", parent.getGame().getMainSkin()); // ------ this ------ - this.setBackground(DrawableFactory.createBorderBoard(30, 10, 0.8f, 1)); + this.setBackground(parent.getGame().getIdleMushroomTextureManager().getTableType3Drawable()); this.pad(screen.getLayoutConst().WorldConstructionCellTablePad); } @@ -82,7 +84,7 @@ private void update() { position.getX(), position.getY() )); - + buyCandidateKeyLabel.setText(construction.getDescriptionPackage().getTransformCostDescriptionStart()); } @@ -105,17 +107,33 @@ public void updateForNewConstruction( int CHILD_WIDTH = playScreenLayoutConst.CONSTRUCION_CHILD_WIDTH; int CHILD_HEIGHT = playScreenLayoutConst.CONSTRUCION_CHILD_BUTTON_HEIGHT; int NAME_CHILD_HEIGHT = playScreenLayoutConst.CONSTRUCION_CHILD_NAME_HEIGHT; - this.add(constructionNameLabel).size(CHILD_WIDTH, NAME_CHILD_HEIGHT).row(); - construction.getExistenceComponent().getBuyCandidateConfigs().forEach(constructionBuyCandidateConfig -> { - WorldBuyConstructionInfoNodeVM vm = new WorldBuyConstructionInfoNodeVM( - screen, - construction, - constructionBuyCandidateConfig - ); - vm.update(); - this.add(vm); - children.add(vm); - }); + this.add(constructionNameLabel) + .size(CHILD_WIDTH, NAME_CHILD_HEIGHT) + .right(); + + Container questionMarkArea = new Container<>(new Image(screen.getGame().getIdleMushroomTextureManager().getQuestionMarkTexture())); + questionMarkArea.setBackground(screen.getGame().getIdleMushroomTextureManager().getQuestionMarkTableDrawable()); + questionMarkArea.setTouchable(Touchable.enabled); + questionMarkArea.addListener(new StarterSecondaryInfoBoardCallerClickListener(() -> construction, screen)); + this.add(questionMarkArea) + .width(screen.getIdleMushroomPlayScreenLayoutConst().questionMarkAreaSize) + .height(screen.getIdleMushroomPlayScreenLayoutConst().questionMarkAreaSize) + .left(); + + this.row(); + this.add(buyCandidateKeyLabel); + construction.getExistenceComponent().getBuyCandidateConfigs().stream() + .limit(1) + .forEach(constructionBuyCandidateConfig -> { + WorldBuyConstructionInfoNodeVM vm = new WorldBuyConstructionInfoNodeVM( + screen, + construction, + constructionBuyCandidateConfig + ); + vm.update(); + this.add(vm); + children.add(vm); + }); update(); } @@ -159,7 +177,7 @@ public void changed(ChangeEvent event, Actor actor) { // ------ this ------ this.add(constructionNameLabel).size(CHILD_WIDTH, NAME_CHILD_HEIGHT).row(); this.add(buyButton).size(CHILD_WIDTH, CHILD_HEIGHT).row(); - this.setBackground(parent.getGame().getTextureManager().getDefaultBoardNinePatchDrawable()); + this.setBackground(parent.getGame().getIdleMushroomTextureManager().getTableType5Drawable()); } public void update() { diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldMushroomDetailNode.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldMushroomDetailNode.java similarity index 87% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldMushroomDetailNode.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldMushroomDetailNode.java index 45bebc2..437d506 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldMushroomDetailNode.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldMushroomDetailNode.java @@ -1,4 +1,4 @@ -package hundun.gdxgame.idledemo.ui.world; +package hundun.gdxgame.idlemushroom.ui.world; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; @@ -9,10 +9,10 @@ import com.badlogic.gdx.utils.Align; import hundun.gdxgame.corelib.base.util.DrawableFactory; import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; -import hundun.gdxgame.idledemo.ui.shared.BaseIdleMushroomPlayScreen; -import hundun.gdxgame.idledemo.ui.screen.WorldPlayScreen; -import hundun.gdxgame.idledemo.ui.shared.BaseCellDetailNodeVM; -import hundun.gdxgame.idledemo.ui.shared.ConstructionDetailPartVM; +import hundun.gdxgame.idlemushroom.ui.shared.BaseIdleMushroomPlayScreen; +import hundun.gdxgame.idlemushroom.ui.screen.WorldPlayScreen; +import hundun.gdxgame.idlemushroom.ui.shared.BaseCellDetailNodeVM; +import hundun.gdxgame.idlemushroom.ui.shared.ConstructionDetailPartVM; import hundun.gdxgame.idleshare.core.starter.ui.component.board.construction.impl.StarterConstructionControlNode.StarterSecondaryInfoBoardCallerClickListener; import hundun.gdxgame.idleshare.core.starter.ui.screen.play.PlayScreenLayoutConst; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; @@ -75,13 +75,13 @@ public void changed(ChangeEvent event, Actor actor) { this.positionLabel = new Label("", parent.getGame().getMainSkin()); Container questionMarkArea = new Container<>(new Image(parent.getGame().getIdleMushroomTextureManager().getQuestionMarkTexture())); - questionMarkArea.setBackground(parent.getGame().getIdleMushroomTextureManager().getDefaultBoardNinePatchDrawable()); + questionMarkArea.setBackground(parent.getGame().getIdleMushroomTextureManager().getQuestionMarkTableDrawable()); questionMarkArea.setTouchable(Touchable.enabled); questionMarkArea.addListener(new StarterSecondaryInfoBoardCallerClickListener(() -> model, parent)); // ------ leftPart ------ leftPart.add(constructionNameLabel).size(CHILD_WIDTH, NAME_CHILD_HEIGHT); - leftPart.add(questionMarkArea).size(parent.getLayoutConst().questionMarkAreaSize, parent.getLayoutConst().questionMarkAreaSize); + leftPart.add(questionMarkArea).size(parent.getIdleMushroomPlayScreenLayoutConst().questionMarkAreaSize, parent.getIdleMushroomPlayScreenLayoutConst().questionMarkAreaSize); leftPart.row(); leftPart.add(workingLevelLabel).colspan(2).size(CHILD_WIDTH, CHILD_HEIGHT); leftPart.row(); @@ -90,7 +90,7 @@ public void changed(ChangeEvent event, Actor actor) { leftPart.add(proficiencyLabel).colspan(2).size(CHILD_WIDTH, CHILD_HEIGHT); leftPart.row(); - this.setBackground(DrawableFactory.createBorderBoard(30, 10, 0.8f, 1)); + this.setBackground(parent.getGame().getIdleMushroomTextureManager().getTableType3Drawable()); this.add(leftPart).padRight(20); this.add(rightPart); } @@ -115,10 +115,8 @@ private void update() { } // ------ update text ------ constructionNameLabel.setText(JavaFeatureForGwt.stringFormat( - "%s (%s, %s)", - model.getName(), - model.getSaveData().getPosition().getX(), - model.getSaveData().getPosition().getY() + "%s", + model.getName() )); upgradeButton.setText(model.getDescriptionPackage().getUpgradeButtonText()); workingLevelLabel.setText(model.getLevelComponent().getWorkingLevelDescription()); diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldScreenPopupInfoBoard.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldScreenPopupInfoBoard.java similarity index 83% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldScreenPopupInfoBoard.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldScreenPopupInfoBoard.java index f23dcdf..2da00aa 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldScreenPopupInfoBoard.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldScreenPopupInfoBoard.java @@ -1,10 +1,9 @@ -package hundun.gdxgame.idledemo.ui.world; +package hundun.gdxgame.idlemushroom.ui.world; import com.badlogic.gdx.scenes.scene2d.Touchable; -import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Table; -import hundun.gdxgame.idledemo.ui.screen.WorldPlayScreen; -import hundun.gdxgame.idledemo.ui.shared.ConstructionWikiVM; +import hundun.gdxgame.idlemushroom.ui.screen.WorldPlayScreen; +import hundun.gdxgame.idlemushroom.ui.shared.ConstructionWikiVM; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; public class WorldScreenPopupInfoBoard extends Table { diff --git a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldTreeDetailNode.java b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldTreeDetailNode.java similarity index 81% rename from IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldTreeDetailNode.java rename to IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldTreeDetailNode.java index 9fff7c7..28a2c03 100644 --- a/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idledemo/ui/world/WorldTreeDetailNode.java +++ b/IdleMushroom-game/core/src/main/java/hundun/gdxgame/idlemushroom/ui/world/WorldTreeDetailNode.java @@ -1,12 +1,12 @@ -package hundun.gdxgame.idledemo.ui.world; +package hundun.gdxgame.idlemushroom.ui.world; import com.badlogic.gdx.scenes.scene2d.Touchable; import com.badlogic.gdx.scenes.scene2d.ui.*; import hundun.gdxgame.corelib.base.util.DrawableFactory; import hundun.gdxgame.gamelib.base.util.JavaFeatureForGwt; -import hundun.gdxgame.idledemo.ui.shared.BaseIdleMushroomPlayScreen; -import hundun.gdxgame.idledemo.ui.screen.WorldPlayScreen; -import hundun.gdxgame.idledemo.ui.shared.BaseCellDetailNodeVM; +import hundun.gdxgame.idlemushroom.ui.shared.BaseIdleMushroomPlayScreen; +import hundun.gdxgame.idlemushroom.ui.screen.WorldPlayScreen; +import hundun.gdxgame.idlemushroom.ui.shared.BaseCellDetailNodeVM; import hundun.gdxgame.idleshare.core.starter.ui.component.board.construction.impl.StarterConstructionControlNode.StarterSecondaryInfoBoardCallerClickListener; import hundun.gdxgame.idleshare.core.starter.ui.screen.play.PlayScreenLayoutConst; import hundun.gdxgame.idleshare.gamelib.framework.model.construction.base.BaseConstruction; @@ -46,15 +46,15 @@ public WorldTreeDetailNode( Container questionMarkArea = new Container<>(new Image(parent.getGame().getIdleMushroomTextureManager().getQuestionMarkTexture())); - questionMarkArea.setBackground(parent.getGame().getIdleMushroomTextureManager().getDefaultBoardNinePatchDrawable()); + questionMarkArea.setBackground(parent.getGame().getIdleMushroomTextureManager().getQuestionMarkTableDrawable()); questionMarkArea.setTouchable(Touchable.enabled); questionMarkArea.addListener(new StarterSecondaryInfoBoardCallerClickListener(() -> model, parent)); // ------ leftPart ------ this.add(constructionNameLabel).size(CHILD_WIDTH, NAME_CHILD_HEIGHT); - this.add(questionMarkArea).size(parent.getLayoutConst().questionMarkAreaSize, parent.getLayoutConst().questionMarkAreaSize); + this.add(questionMarkArea).size(parent.getIdleMushroomPlayScreenLayoutConst().questionMarkAreaSize, parent.getIdleMushroomPlayScreenLayoutConst().questionMarkAreaSize); this.row(); - this.setBackground(DrawableFactory.createBorderBoard(30, 10, 0.8f, 1)); + this.setBackground(parent.getGame().getIdleMushroomTextureManager().getTableType3Drawable()); } @@ -78,10 +78,8 @@ private void update() { } // ------ update text ------ constructionNameLabel.setText(JavaFeatureForGwt.stringFormat( - "%s (%s, %s)", - model.getName(), - model.getSaveData().getPosition().getX(), - model.getSaveData().getPosition().getY() + "%s", + model.getName() )); positionLabel.setText(model.getSaveData().getPosition().toShowText()); diff --git a/IdleMushroom-game/desktop/src/hundun/gdxgame/idledemo/desktop/DesktopLauncher.java b/IdleMushroom-game/desktop/src/hundun/gdxgame/idledemo/desktop/DesktopLauncher.java index 252f2f0..ae1fd23 100644 --- a/IdleMushroom-game/desktop/src/hundun/gdxgame/idledemo/desktop/DesktopLauncher.java +++ b/IdleMushroom-game/desktop/src/hundun/gdxgame/idledemo/desktop/DesktopLauncher.java @@ -3,7 +3,7 @@ import com.badlogic.gdx.backends.lwjgl.LwjglApplication; import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; -import hundun.gdxgame.idledemo.IdleMushroomGame; +import hundun.gdxgame.idlemushroom.IdleMushroomGame; diff --git a/IdleMushroom-game/desktop/src/hundun/gdxgame/idledemo/desktop/PreferencesSaveTool.java b/IdleMushroom-game/desktop/src/hundun/gdxgame/idledemo/desktop/PreferencesSaveTool.java index a962bc1..5692451 100644 --- a/IdleMushroom-game/desktop/src/hundun/gdxgame/idledemo/desktop/PreferencesSaveTool.java +++ b/IdleMushroom-game/desktop/src/hundun/gdxgame/idledemo/desktop/PreferencesSaveTool.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.SerializationFeature; import hundun.gdxgame.corelib.base.save.AbstractSaveDataSaveTool; -import hundun.gdxgame.idledemo.logic.RootSaveData; +import hundun.gdxgame.idlemushroom.logic.RootSaveData; diff --git a/idleshare/core/src/hundun/gdxgame/idleshare/core/starter/ui/component/GameAreaControlBoard.java b/idleshare/core/src/hundun/gdxgame/idleshare/core/starter/ui/component/GameAreaControlBoard.java index 039b73b..31bea86 100644 --- a/idleshare/core/src/hundun/gdxgame/idleshare/core/starter/ui/component/GameAreaControlBoard.java +++ b/idleshare/core/src/hundun/gdxgame/idleshare/core/starter/ui/component/GameAreaControlBoard.java @@ -66,9 +66,6 @@ public void lazyInit(List controlBoardScreenIds) { } rebuildChild(null); - if (parent.getGame().debugMode) { - this.debugAll(); - } } diff --git a/idleshare/core/src/hundun/gdxgame/idleshare/core/starter/ui/screen/play/BaseIdleScreen.java b/idleshare/core/src/hundun/gdxgame/idleshare/core/starter/ui/screen/play/BaseIdleScreen.java index 03cb512..34a6859 100644 --- a/idleshare/core/src/hundun/gdxgame/idleshare/core/starter/ui/screen/play/BaseIdleScreen.java +++ b/idleshare/core/src/hundun/gdxgame/idleshare/core/starter/ui/screen/play/BaseIdleScreen.java @@ -63,8 +63,7 @@ protected void create() { lazyInitLogicContext(); if (game.debugMode) { - uiRootTable.debugCell(); - popupRootTable.debugCell(); + uiRootTable.debugAll(); popupRootTable.debugCell(); } } diff --git a/idleshare/core/src/hundun/gdxgame/idleshare/core/starter/ui/screen/play/PlayScreenLayoutConst.java b/idleshare/core/src/hundun/gdxgame/idleshare/core/starter/ui/screen/play/PlayScreenLayoutConst.java index 7e15468..a502c5d 100644 --- a/idleshare/core/src/hundun/gdxgame/idleshare/core/starter/ui/screen/play/PlayScreenLayoutConst.java +++ b/idleshare/core/src/hundun/gdxgame/idleshare/core/starter/ui/screen/play/PlayScreenLayoutConst.java @@ -10,8 +10,6 @@ * Created on 2022/01/22 */ public class PlayScreenLayoutConst { - public static final int EPOCH_PART_CHILD_WIDTH = 200; - public static final int SELLER_PART_CHILD_WIDTH = 200; public final float DESK_WIDTH = 100; public final float DESK_HEIGHT = 100; public int CONSTRUCION_BOARD_ROOT_BOX_HEIGHT = 200; @@ -45,7 +43,6 @@ public class PlayScreenLayoutConst { public float popupInfoBoardWidth = 400; public float popupInfoBoardHeight = 200; public float WorldConstructionCellTablePad = 20; - public float questionMarkAreaSize = 50; public PlayScreenLayoutConst(int gameLogicWidth, int gameLogicHeight) { this.EXPECTED_DRAW_MIN_X = 0; diff --git a/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/achievement/AbstractAchievement.java b/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/achievement/AbstractAchievement.java index 0219031..f6da804 100644 --- a/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/achievement/AbstractAchievement.java +++ b/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/achievement/AbstractAchievement.java @@ -2,7 +2,6 @@ import hundun.gdxgame.idleshare.gamelib.framework.IdleGameplayContext; import hundun.gdxgame.idleshare.gamelib.framework.model.resource.ResourcePair; -import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -21,7 +20,7 @@ public abstract class AbstractAchievement { protected String description; protected String congratulationText; protected List awardResourceMap; - protected String nextAchievementId; + protected List nextAchievementIds; public abstract boolean checkComplete(); @@ -31,14 +30,14 @@ public AbstractAchievement( String description, String congratulationText, List awardResourceMap, - String nextAchievementId + List nextAchievementIds ) { this.id = id; this.name = name; this.description = description; this.congratulationText = congratulationText; this.awardResourceMap = awardResourceMap; - this.nextAchievementId = nextAchievementId; + this.nextAchievementIds = nextAchievementIds; } public void lazyInitDescription(IdleGameplayContext gameplayContext) diff --git a/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/achievement/OwnConstructionAchievement.java b/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/achievement/OwnConstructionAchievement.java index c0aeb84..99e7ac3 100644 --- a/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/achievement/OwnConstructionAchievement.java +++ b/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/achievement/OwnConstructionAchievement.java @@ -9,19 +9,19 @@ import java.util.Map.Entry; public class OwnConstructionAchievement extends AbstractAchievement { - public Map> requireds; + public Map> requirementMap; public OwnConstructionAchievement( String id, String name, String description, String congratulationText, - Map> requireds, + Map> requirementMap, List awardResourceMap, - String nextAchievementId + List nextAchievementId ) { super(id, name, description, congratulationText, awardResourceMap, nextAchievementId); - this.requireds = requireds; + this.requirementMap = requirementMap; } @Override @@ -29,7 +29,7 @@ public boolean checkComplete() { List allConstructions = gameplayContext.getConstructionManager().getAllConstructionInstances(); - for (Entry> requiredEntry : requireds.entrySet()) + for (Entry> requiredEntry : requirementMap.entrySet()) { int requiredAmount = requiredEntry.getValue().getKey(); int requiredLevel = requiredEntry.getValue().getValue(); @@ -56,7 +56,7 @@ public static void quickAddOwnConstructionAchievement( String id, Map> textMap, Map> requireds, - String nextAchievementId, + List nextAchievementId, ResourcePair... awardResourceMap ) { diff --git a/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/manager/AchievementManager.java b/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/manager/AchievementManager.java index 1443dc8..602c988 100644 --- a/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/manager/AchievementManager.java +++ b/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/manager/AchievementManager.java @@ -28,7 +28,7 @@ public class AchievementManager implements IBuffChangeListener, IOneFrameResourc @Getter public static class AchievementInfoPackage { - AbstractAchievement firstRunningAchievement; + AchievementAndStatus firstRunningAchievement; int total; int completedSize; int lockedSize; @@ -70,9 +70,8 @@ public AchievementInfoPackage getAchievementInfoPackage() .map(it -> it.getAchievement()) .collect(Collectors.toList()); ; - AbstractAchievement firstRunningAchievement = models.values().stream() + AchievementAndStatus firstRunningAchievement = models.values().stream() .filter(it -> it.getSaveData().getState() == AchievementState.RUNNING) - .map(it -> it.getAchievement()) .findFirst() .orElse(null); @@ -130,15 +129,17 @@ private void checkAllAchievementStateChange() { boolean completed = achievementAndStatus.getAchievement().checkComplete(); if (completed) { achievementAndStatus.getSaveData().setState(AchievementState.COMPLETED); - if (achievementAndStatus.getAchievement().getNextAchievementId() != null) { - AchievementAndStatus nextAchievementAndStatus = models.get(achievementAndStatus.getAchievement().getNextAchievementId()); - if (nextAchievementAndStatus.getSaveData().getState() == AchievementState.LOCKED) { - nextAchievementAndStatus.getSaveData().setState(AchievementState.RUNNING); - gameContext.getEventManager().notifyAchievementComplete( - nextAchievementAndStatus.getAchievement(), - nextAchievementAndStatus.getSaveData().getState() - ); - } + if (achievementAndStatus.getAchievement().getNextAchievementIds() != null) { + achievementAndStatus.getAchievement().getNextAchievementIds().forEach(nextAchievementId -> { + AchievementAndStatus nextAchievementAndStatus = models.get(nextAchievementId); + if (nextAchievementAndStatus.getSaveData().getState() == AchievementState.LOCKED) { + nextAchievementAndStatus.getSaveData().setState(AchievementState.RUNNING); + gameContext.getEventManager().notifyAchievementComplete( + nextAchievementAndStatus.getAchievement(), + nextAchievementAndStatus.getSaveData().getState() + ); + } + }); } gameContext.getEventManager().notifyAchievementComplete( achievementAndStatus.getAchievement(),