Implemented "Finish 1. world" -> Level is adjusted, Toolshop-tutorial is deactivated

Added resetConfirmDialog
Fixed minor bugs
This commit is contained in:
=
2018-01-12 17:50:43 +01:00
parent 60bc673ffc
commit 3ca689dd60
18 changed files with 374 additions and 219 deletions

View File

@ -15,10 +15,10 @@ public enum PlayerShape {
BALL(R.string.playershape_name_ball, R.string.playershape_description_ball,
R.drawable.playershapes_ball, new EmptyTask()),
CLOCK(R.string.playershape_name_clock, R.string.playershape_description_clock,
R.drawable.playershapes_clock, new CollectStarTask(1)),//15
R.drawable.playershapes_clock, new CollectStarTask(15)),
HYPNO_SPIRAL(R.string.playershape_name_hypno_spiral,
R.string.playershape_description_hypno_spiral, R.drawable.playershapes_hypno_spiral,
new CollectEnergyTask(1)),//3
new CollectEnergyTask(3)),
PACMAN(R.string.playershape_name_pacman, R.string.playershape_description_pacman,
R.drawable.playershapes_pacman, new CompleteWorldTask(1)),
SMILEY(R.string.playershape_name_smiley, R.string.playershape_description_smiley,

View File

@ -56,16 +56,16 @@ public class LevelManager extends ArrayList<LevelPack> {
}
}
public int getTotalCollectedStarCount(){
public int getTotalCollectedStarCount() {
int count = 0;
for(LevelPack levelPack : this)
for (LevelPack levelPack : this)
count += levelPack.getCollectedStarCount();
return count;
}
public int getTotalCollectedEnergyCount(){
public int getTotalCollectedEnergyCount() {
int count = 0;
for(LevelPack levelPack : this)
for (LevelPack levelPack : this)
count += levelPack.getCollectedEnergyCount();
return count;
}
@ -94,6 +94,20 @@ public class LevelManager extends ArrayList<LevelPack> {
}
}
public void finishFirstPack() {
LevelPack pack1 = getPackWithId(1);
if (pack1 != null) {
for (Level level : pack1.getLevels()) {
level.setFinished(true);
level.setLocked(false);
}
}
LevelPack pack2 = getPackWithId(2);
if (pack2 != null) {
pack2.setLocked(false);
}
}
private Comparator<LevelPack> packComparator = new Comparator<LevelPack>() {
@Override
public int compare(LevelPack lhs, LevelPack rhs) {

View File

@ -12,9 +12,11 @@ import android.view.Window;
import android.view.WindowManager;
import android.widget.RelativeLayout;
import java.util.ArrayList;
import java.util.List;
import de.frajul.endlessroll.entities.shapes.PlayerShape;
import de.frajul.endlessroll.entities.shapes.Task;
import de.frajul.endlessroll.entities.tools.ToolType;
import de.frajul.endlessroll.levels.Level;
import de.frajul.endlessroll.levels.LevelManager;
@ -52,6 +54,8 @@ public class GameActivity extends Activity implements ExceptionHandler, User.LvU
private Typeface typeface;
private TutorialManager tutorialManager;
private List<PlayerShape> alreadyUnlockedPlayerShapes = new ArrayList<>();
private MyGlSurfaceView glSurfaceView;
private ScreenFlipper flipper;
private PreStartScreen preStartScreen;
@ -93,7 +97,10 @@ public class GameActivity extends Activity implements ExceptionHandler, User.LvU
levelManager = new LevelManager(this, dataStorageHandler);
tutorialManager = new TutorialManager(this);
tutorialManager.getToolShopTutorial().setFinished(dataStorageHandler.readToolShopTutorialFinished());
tutorialManager.getToolShopTutorial()
.setFinished(dataStorageHandler.readToolShopTutorialFinished());
checkForAlreadyUnlockedPlayerShapes();
this.glSurfaceView = new MyGlSurfaceView(this, new GameRenderer(this));
typeface = Typeface.createFromAsset(getAssets(), "fontBaron.ttf");
@ -148,6 +155,30 @@ public class GameActivity extends Activity implements ExceptionHandler, User.LvU
flipToScreen(Screen.ScreenType.START);
}
public void checkForAlreadyUnlockedPlayerShapes() {
alreadyUnlockedPlayerShapes.clear();
for (PlayerShape shape : PlayerShape.values()) {
Task task = shape.getUnlockTask();
task.update(levelManager);
if (task.isConditionFulfilled())
alreadyUnlockedPlayerShapes.add(shape);
}
}
public void showNewFinishedPlayerShapeTasks() {
List<PlayerShape> newUnlockedShapes = new ArrayList<>();
for (PlayerShape shape : PlayerShape.values()) {
Task task = shape.getUnlockTask();
task.update(levelManager);
if (task.isConditionFulfilled() && !alreadyUnlockedPlayerShapes.contains(shape)) {
alreadyUnlockedPlayerShapes.add(shape);
newUnlockedShapes.add(shape);
}
}
if (!newUnlockedShapes.isEmpty())
onTasksCompleted(newUnlockedShapes);
}
public void onWorldSelected(LevelPack levelPack) {
levelsScreen.onLevelPackSelected(levelPack);
}
@ -158,14 +189,17 @@ public class GameActivity extends Activity implements ExceptionHandler, User.LvU
}
@Override
public void onLvUp(final int level) {
runOnUiThread(new Runnable() {
@Override
public void run() {
levelupMessage.show(level);
}
});
tutorialManager.onLvUp(user);
public void onLvUp(final int level, boolean showLvUpMessage) {
dataStorageHandler.writeUserData(user);
if (showLvUpMessage) {
runOnUiThread(new Runnable() {
@Override
public void run() {
levelupMessage.show(level);
}
});
tutorialManager.onLvUp(user);
}
}
public void onTasksCompleted(final List<PlayerShape> shapes) {
@ -178,7 +212,7 @@ public class GameActivity extends Activity implements ExceptionHandler, User.LvU
}
public void showTutorial(final List<BreakPoint> breakPoints) {
if(!gameScreen.isLevelFinished()){
if (!gameScreen.isLevelFinished()) {
gameScreen.setGamePausedWithoutMenu();
}
runOnUiThread(new Runnable() {

View File

@ -14,8 +14,6 @@ import de.frajul.endlessroll.entities.collectables.Star;
import de.frajul.endlessroll.entities.collision.CollisionManager;
import de.frajul.endlessroll.entities.particles.Firework;
import de.frajul.endlessroll.entities.particles.ParticleSystem;
import de.frajul.endlessroll.entities.shapes.PlayerShape;
import de.frajul.endlessroll.entities.shapes.Task;
import de.frajul.endlessroll.entities.textures.TexturePack;
import de.frajul.endlessroll.entities.tools.ToolType;
import de.frajul.endlessroll.levels.Level;
@ -198,7 +196,7 @@ public class Game extends Rendering<GameScene> {
currentTool = toolType;
}
public void pauseWithoutMenu(){
public void pauseWithoutMenu() {
gameState = GameState.PAUSED;
}
@ -211,7 +209,7 @@ public class Game extends Rendering<GameScene> {
gameState = GameState.PAUSED;
}
public void onGoalMessageKeyBack(){
public void onGoalMessageKeyBack() {
viewManager.onGoalMessageKeyBack();
}
@ -239,15 +237,6 @@ public class Game extends Rendering<GameScene> {
}
private void onGoalReached() {
List<PlayerShape> alreadyUnlockedShapes = new ArrayList<>();
for (PlayerShape shape : PlayerShape.values()) {
Task task = shape.getUnlockTask();
task.update(gameActivity.getLevelManager());
if (task.isConditionFulfilled())
alreadyUnlockedShapes.add(shape);
}
gameState = GameState.LEVEL_FINISHED;
if (!level.isFinished())
gameActivity.getUser().gainLvFinishedEp();
@ -275,15 +264,7 @@ public class Game extends Rendering<GameScene> {
database.open();
database.writeLevelProgress(level);
List<PlayerShape> newUnlockedShapes = new ArrayList<>();
for (PlayerShape shape : PlayerShape.values()) {
Task task = shape.getUnlockTask();
task.update(gameActivity.getLevelManager());
if (task.isConditionFulfilled() && !alreadyUnlockedShapes.contains(shape))
newUnlockedShapes.add(shape);
}
if (!newUnlockedShapes.isEmpty())
gameActivity.onTasksCompleted(newUnlockedShapes);
gameActivity.showNewFinishedPlayerShapeTasks();
Level nextLevel = levelPack.getNextLevel(level);
if (nextLevel != null) {

View File

@ -7,6 +7,7 @@ import android.widget.ToggleButton;
import de.frajul.endlessroll.R;
import de.frajul.endlessroll.main.GameActivity;
import de.frajul.endlessroll.views.ResetConfirmDialog;
import de.frajul.endlessroll.views.TopBar;
/**
@ -19,6 +20,8 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
private ToggleButton soundToggle;
private Button resetButton;
private ResetConfirmDialog resetConfirmDialog;
public SettingsScreen(GameActivity gameActivity) {
super(ScreenType.SETTINGS, gameActivity, R.layout.settings);
topBar = super.createTopBar(R.id.settings_topbar);
@ -26,6 +29,8 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
soundToggle.setOnClickListener(this);
resetButton = (Button) layout.findViewById(R.id.settings_reset);
resetButton.setOnClickListener(this);
resetConfirmDialog = new ResetConfirmDialog(gameActivity, this);
}
@Override
@ -37,6 +42,10 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
@Override
public void onBackKeyDown() {
//ResetButton is disabled if caller is GAME, because shortMenu or GoalMessage would still be visible on next level start
if (super.caller == ScreenType.LEVELS || super.caller == ScreenType.GAME) {
super.caller = ScreenType.WORLDS;
}
flipToCaller();
}
@ -45,7 +54,7 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
if (v.equals(soundToggle)) {
gameActivity.getSoundManager().setSoundOn(soundToggle.isChecked());
} else if (v.equals(resetButton)) {
gameActivity.resetData();
resetConfirmDialog.show();
}
}
}

View File

@ -1,19 +1,17 @@
package de.frajul.endlessroll.main.screens;
import android.app.AlertDialog;
import android.app.Dialog;
import android.graphics.Typeface;
import android.support.annotation.IdRes;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.ToggleButton;
import de.frajul.endlessroll.R;
import de.frajul.endlessroll.main.GameActivity;
import de.frajul.endlessroll.main.MyGlSurfaceView;
import de.frajul.endlessroll.rendering.Rendering;
import de.frajul.endlessroll.sqlDatabase.MyDatabase;
import de.frajul.endlessroll.views.ExitConfirmDialog;
/**
@ -26,6 +24,7 @@ public class StartScreen extends GLScreen<RelativeLayout> implements View.OnClic
private Button play;
private Button unlockLevels;
private Button gain90EP;
private Button finishFirstWorld;
private Button toGlTestScreen;
private Button settings;
@ -39,6 +38,7 @@ public class StartScreen extends GLScreen<RelativeLayout> implements View.OnClic
play.startAnimation(AnimationUtils.loadAnimation(gameActivity, R.anim.rotate));
unlockLevels = createButton(R.id.startscreen_unlock_levels, typeface);
gain90EP = createButton(R.id.startscreen_gain_90_ep, typeface);
finishFirstWorld = createButton(R.id.startscreen_finish_world_1, typeface);
toGlTestScreen = createButton(R.id.startscreen_to_gl_test_screen, typeface);
settings = (Button) layout.findViewById(R.id.startscreen_settings);
settings.setOnClickListener(this);
@ -75,10 +75,27 @@ public class StartScreen extends GLScreen<RelativeLayout> implements View.OnClic
gameActivity.flipToScreen(ScreenType.SETTINGS);
glView.setCurrentRendering(null);
} else if (v.equals(gain90EP)) {
gameActivity.getUser().gainEp(90);
gameActivity.getUser().gainEp(90, true);
} else if (v.equals(unlockLevels)) {
gameActivity.getLevelManager().unlockAllLevels();
gameActivity.getLevelManager().unlockAllPacks();
MyDatabase database = gameActivity.getDataStorageHandler().getDatabase();
database.open();
database.writeAllLevelAndPackStatus(gameActivity.getLevelManager());
database.close();
} else if (v.equals(finishFirstWorld)) {
gameActivity.resetData();
gameActivity.getUser().gainEp(320, false);
gameActivity.getLevelManager().finishFirstPack();
gameActivity.showNewFinishedPlayerShapeTasks();
gameActivity.getTutorialManager().getToolShopTutorial().setFinished(true);
gameActivity.getDataStorageHandler().writeUserData(gameActivity.getUser());
gameActivity.getDataStorageHandler().writeToolShopTutorialFinished(true);
MyDatabase database = gameActivity.getDataStorageHandler().getDatabase();
database.open();
database.writeAllLevelAndPackStatus(gameActivity.getLevelManager());
database.close();
} else if (v.equals(toGlTestScreen))
gameActivity.flipToScreen(ScreenType.GL_TEST);
}

View File

@ -18,7 +18,6 @@ import de.frajul.endlessroll.entities.tools.ToolType;
import de.frajul.endlessroll.main.DataStorageHandler;
import de.frajul.endlessroll.main.GameActivity;
import de.frajul.endlessroll.main.tutorial.ToolShopTutorial;
import de.frajul.endlessroll.user.LevelUpBounties;
import de.frajul.endlessroll.user.ToolSlotSettings;
import de.frajul.endlessroll.views.ToolInspector;
import de.frajul.endlessroll.views.ToolOfferSlot;
@ -98,7 +97,8 @@ public class ToolShopScreen extends Screen<RelativeLayout> implements View.OnCli
toolSlotView.setImageResource(toolSlot.getDrawable());
}
for (ToolOfferSlot toolOfferSlot : toolOfferSlots) {
boolean locked = gameActivity.getUser().getLevelUpBounties().isToolLocked(toolOfferSlot.getToolType());
boolean locked = gameActivity.getUser().getLevelUpBounties()
.isToolLocked(toolOfferSlot.getToolType());
toolOfferSlot.setLocked(locked);
toolOfferSlot.updateBackgroundColor();
}
@ -110,6 +110,7 @@ public class ToolShopScreen extends Screen<RelativeLayout> implements View.OnCli
gameActivity.getUser().increaseStarCount(-price, false);
topBar.update();
DataStorageHandler dataStorageHandler = gameActivity.getDataStorageHandler();
dataStorageHandler.writeUserData(gameActivity.getUser());
dataStorageHandler.getDatabase().open();
dataStorageHandler.getDatabase().writeToolData();
dataStorageHandler.getDatabase().close();
@ -124,6 +125,7 @@ public class ToolShopScreen extends Screen<RelativeLayout> implements View.OnCli
gameActivity.getUser().increaseEnergyCount(-price, false);
topBar.update();
DataStorageHandler dataStorageHandler = gameActivity.getDataStorageHandler();
dataStorageHandler.writeUserData(gameActivity.getUser());
dataStorageHandler.getDatabase().open();
dataStorageHandler.getDatabase().writeToolData();
dataStorageHandler.getDatabase().close();
@ -139,6 +141,8 @@ public class ToolShopScreen extends Screen<RelativeLayout> implements View.OnCli
private void onToolEquipped(int index) {
slotSettings.changeToolSlotType(index, selectedToolOfferSlot.getToolType());
DataStorageHandler dataStorageHandler = gameActivity.getDataStorageHandler();
dataStorageHandler.writeUserData(gameActivity.getUser());
for (int i = 0; i < toolSlotViews.size(); i++) {
ToolSlot toolSlot = slotSettings.get(i);
ImageView view = toolSlotViews.get(i);
@ -147,9 +151,9 @@ public class ToolShopScreen extends Screen<RelativeLayout> implements View.OnCli
tutorial.onToolEquipped();
}
public void stopTutorialAnimations(){
public void stopTutorialAnimations() {
for (ToolOfferSlot toolOfferSlot : toolOfferSlots)
if(toolOfferSlot.getToolType() == ToolType.SPRING)
if (toolOfferSlot.getToolType() == ToolType.SPRING)
toolOfferSlot.getLayout().clearAnimation();
toolInspector.clearPriceButtonAnimation();
@ -157,21 +161,21 @@ public class ToolShopScreen extends Screen<RelativeLayout> implements View.OnCli
toolSlotViews.get(0).clearAnimation();
}
public void tutorialStartSpringOfferSlotPulse(){
public void tutorialStartSpringOfferSlotPulse() {
for (ToolOfferSlot toolOfferSlot : toolOfferSlots)
if(toolOfferSlot.getToolType() == ToolType.SPRING)
if (toolOfferSlot.getToolType() == ToolType.SPRING)
toolOfferSlot.getLayout().startAnimation(pulse);
}
public void tutorialStartSpringBuyButtonPulse(){
public void tutorialStartSpringBuyButtonPulse() {
toolInspector.startPriceButtonAnimation(pulse);
}
public void tutorialStartSpringToolSlotPulse(){
toolSlotViews.get(0).startAnimation(pulse);
public void tutorialStartSpringToolSlotPulse() {
toolSlotViews.get(0).startAnimation(pulse);
}
public void writeToolShopTutorialIsFinished(){
public void writeToolShopTutorialIsFinished() {
gameActivity.getDataStorageHandler().writeToolShopTutorialFinished(true);
}
@ -179,7 +183,6 @@ public class ToolShopScreen extends Screen<RelativeLayout> implements View.OnCli
@Override
public void onBackKeyDown() {
stopTutorialAnimations();
gameActivity.getDataStorageHandler().writeUserData(gameActivity.getUser());
flipToCaller();
}

View File

@ -1,5 +1,7 @@
package de.frajul.endlessroll.main.tutorial;
import java.util.Arrays;
import de.frajul.endlessroll.entities.tools.ToolType;
import de.frajul.endlessroll.main.GameActivity;
import de.frajul.endlessroll.main.screens.Screen;
@ -16,12 +18,14 @@ public class ToolShopTutorial {
private GameActivity gameActivity;
private LevelUpBounties levelUpBounties;
private BreakPoint springEquipped;
private ToolShopScreen toolShopScreen;
private boolean finished = false;
public ToolShopTutorial(GameActivity gameActivity) {
public ToolShopTutorial(GameActivity gameActivity, BreakPoint springEquipped) {
this.gameActivity = gameActivity;
levelUpBounties = new LevelUpBounties(0);
this.springEquipped = springEquipped;
}
public void setToolShopScreen(ToolShopScreen toolShopScreen) {
@ -49,10 +53,11 @@ public class ToolShopTutorial {
}
public void onToolEquipped() {
if (toolShopScreen.getSelectedToolType() == ToolType.SPRING) {
if (!finished && toolShopScreen.getSelectedToolType() == ToolType.SPRING) {
toolShopScreen.stopTutorialAnimations();
finished = true;
toolShopScreen.writeToolShopTutorialIsFinished();
gameActivity.showTutorial(Arrays.asList(springEquipped));
}
}

View File

@ -21,6 +21,12 @@ public class Tutorial {
this.breakPoints = Arrays.asList(breakPoints);
}
public void setFinished() {
for (BreakPoint breakPoint : breakPoints)
breakPoint.setAlreadyShown(true);
currentBreakPoints.clear();
}
public void reset() {
for (BreakPoint breakPoint : breakPoints)
breakPoint.setAlreadyShown(false);

View File

@ -39,10 +39,12 @@ public class TutorialManager {
toToolShopTutorial = new Tutorial(gameActivity,
new BreakPoint(BreakPoint.NONE_X, R.string.tutorial_leveled_up_to_toolshop,
R.drawable.tutorial_to_toolshop));
toolShopTutorial = new ToolShopTutorial(gameActivity);
toolShopTutorial = new ToolShopTutorial(gameActivity,
new BreakPoint(BreakPoint.NONE_X, R.string.tutorial_spring_equipped, -1));
switchToolsTutorial = new Tutorial(gameActivity,
new BreakPoint(0, R.string.tutorial_switch_tools_two_neccessary, -1),
new BreakPoint(0, R.string.tutorial_switch_tools_switch, R.drawable.tutorial_switch_tools));
new BreakPoint(0, R.string.tutorial_switch_tools_switch,
R.drawable.tutorial_switch_tools));
}
public void update(Level level, float playerProgress) {

View File

@ -6,6 +6,7 @@ import android.database.Cursor;
import de.frajul.endlessroll.entities.tools.ToolType;
import de.frajul.endlessroll.levels.Level;
import de.frajul.endlessroll.levels.LevelManager;
import de.frajul.endlessroll.levels.LevelPack;
/**
@ -55,6 +56,15 @@ public class MyDatabase extends DatabaseAdapter {
super.update(levelPackTable, values, levelPackIdColumn, levelPack.getId());
}
public void writeAllLevelAndPackStatus(LevelManager levelManager){
for(LevelPack levelPack : levelManager){
writeLevelPackLocked(levelPack);
for(Level level: levelPack.getLevels()){
writeLevelProgress(level);
}
}
}
public void readLevelPackLocked(LevelPack levelPack) {
Cursor cursor = super.getCursor(levelPackTable, levelPackIdColumn, levelPack.getId());
if (cursor.moveToFirst()) {

View File

@ -8,7 +8,7 @@ import de.frajul.endlessroll.entities.shapes.PlayerShape;
public class User {
public interface LvUpListener {
public void onLvUp(int level);
public void onLvUp(int level, boolean showLvUpMessage);
}
private final int LV_DONE_EP = 20;
@ -53,8 +53,8 @@ public class User {
public void increaseStarCount(int starCount, boolean gainEp) {
this.starCount += starCount;
if(gainEp)
gainEp(STAR_EP * starCount);
if (gainEp)
gainEp(STAR_EP * starCount, true);
}
public void onEnergyCollected() {
@ -63,23 +63,23 @@ public class User {
public void increaseEnergyCount(int energyCount, boolean gainEp) {
this.energyCount += energyCount;
if(gainEp)
gainEp(ENERGY_EP * energyCount);
if (gainEp)
gainEp(ENERGY_EP * energyCount, true);
}
public void gainLvFinishedEp() {
gainEp(LV_DONE_EP);
gainEp(LV_DONE_EP, true);
}
public void gainEp(int amount) {
public void gainEp(int amount, boolean showLvUpMessage) {
ep += amount;
if (ep >= 100) {
while (ep >= 100) {
ep -= 100;
levelUp();
levelUp(showLvUpMessage);
}
}
private void levelUp() {
private void levelUp(boolean showLvUpMessage) {
level++;
levelUpBounties.loadAllForLevel(level);
@ -89,7 +89,7 @@ public class User {
increaseStarCount(bounty.getStarCount(), false);
increaseEnergyCount(bounty.getEnergyCount(), false);
}
lvUpListener.onLvUp(level);
lvUpListener.onLvUp(level, showLvUpMessage);
}
public int getEp() {

View File

@ -0,0 +1,55 @@
package de.frajul.endlessroll.views;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import de.frajul.endlessroll.R;
import de.frajul.endlessroll.main.GameActivity;
import de.frajul.endlessroll.main.screens.SettingsScreen;
/**
* Created by Julian on 31.10.2017.
*/
public class ResetConfirmDialog extends Dialog implements View.OnClickListener {
private GameActivity gameActivity;
private SettingsScreen settingsScreen;
private Button yesButton;
private Button noButton;
public ResetConfirmDialog(GameActivity gameActivity, SettingsScreen settingsScreen) {
super(gameActivity);
this.gameActivity = gameActivity;
this.settingsScreen = settingsScreen;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.exit_confirm_dialog);
TextView textView = (TextView) findViewById(R.id.exit_confirm_dialog_textview);
textView.setTypeface(gameActivity.getTypeface());
textView.setText(R.string.reset_dialog_question);
noButton = (Button) findViewById(R.id.exit_confirm_dialog_no_button);
noButton.setTypeface(gameActivity.getTypeface());
noButton.setOnClickListener(this);
yesButton = (Button) findViewById(R.id.exit_confirm_dialog_yes_button);
yesButton.setTypeface(gameActivity.getTypeface());
yesButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
dismiss();
if (v.equals(yesButton)) {
gameActivity.resetData();
settingsScreen.prepareToBeShown();
}
}
}

View File

@ -47,6 +47,18 @@
android:text="@string/start_screen_gain_90_ep"
android:visibility="visible"/>
<Button
android:id="@+id/startscreen_finish_world_1"
style="@style/GameButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_margin="10dp"
android:text="@string/start_screen_finish_world_1"
android:visibility="visible"/>
<Button
android:id="@+id/startscreen_to_gl_test_screen"
style="@style/GameButton"

View File

@ -30,6 +30,7 @@
<string name="start_screen_play">Play</string>
<string name="start_screen_unlock_all_levels">Unlock all levels (Yes! It\'s magic!)</string>
<string name="start_screen_gain_90_ep">Gain 90 ep (Nope! No magic at all!)</string>
<string name="start_screen_finish_world_1">Finish the first world!</string>
<string name="start_screen_to_gl_test_screen">Test GL Stuff!!!</string>
<string name="tool_upgrade_title_placeholder">Time (Lv12)</string>
<string name="topbar_level_placeholder">Level: 24</string>
@ -97,6 +98,7 @@
<string name="exit_confirm_dialog_yes">Yes</string>
<string name="exit_confirm_dialog_no">No</string>
<string name="exit_confirm_dialog_question">Do you really want to exit the game?</string>
<string name="reset_dialog_question">Do you really want to reset ALL your progress?</string>
<string name="tutorial_placeholder">This is a multiline placeholder\nfor all the tutorials I made!!!\nAwesome! - Isn\'t it?</string>
<string name="tutorial_welcome">Welcome to Endless Roll!\nHave fun!</string>
@ -106,6 +108,7 @@
<string name="tutorial_place_ramp_air">You can even set a Tool in mid-air.\nTime carefully!</string>
<string name="tutorial_place_ramp_air_2">Now try again!</string>
<string name="tutorial_leveled_up_to_toolshop">Congratulations! You have leveled up!\nNow go to the toolshop</string>
<string name="tutorial_spring_equipped">Well done! Now you can start the next level</string>
<string name="tutorial_switch_tools_two_neccessary">For this level you will need two tools equipped</string>
<string name="tutorial_switch_tools_switch">To select a tool just click on it</string>
<string name="tutorial_toolshop_welcome">Welcome to the toolshop!\nHere you can buy and upgrade all tools and you can customize your toolbar.</string>