Added all drawables for IcyMountains

Added snow particle system
World on StartScene is randomly chosen
Last-level onGoalScreen shows "toNextWorld"
This commit is contained in:
=
2018-01-13 17:50:27 +01:00
parent 1ca222187e
commit fb3290a3b2
37 changed files with 642 additions and 250 deletions

View File

@ -57,11 +57,15 @@ public class GoalMessage implements GoalMessageLevelButtonOnClickListener, View.
topBar.update();
restart.init(R.string.goal_message_restart_format_d, level);
boolean nextLevelVisible = !levelPack.isLastLevel(level);
nextLevel.setVisible(nextLevelVisible);
if (nextLevelVisible)
boolean isLastLevel = levelPack.isLastLevel(level);
boolean hasNextWorld = gameActivity.getLevelManager().getNextLevelPack(levelPack) != null;
nextLevel.setVisible(!isLastLevel || hasNextWorld);
if (!isLastLevel)
nextLevel
.init(R.string.goal_message_next_level_format_d, levelPack.getNextLevel(level));
else if (hasNextWorld) {
nextLevel.initShowToNextWorld(true, levelPack);
}
layout.postDelayed(new Runnable() {
@Override
@ -96,7 +100,10 @@ public class GoalMessage implements GoalMessageLevelButtonOnClickListener, View.
@Override
public void onClick(GoalMessageLevelButton goalMessageLevelButton) {
hide();
gameActivity.startGame(levelPack, goalMessageLevelButton.getLevel());
if (goalMessageLevelButton.isShowingToNextWorld()) {
gameActivity.flipToScreen(Screen.ScreenType.WORLDS);
} else
gameActivity.startGame(levelPack, goalMessageLevelButton.getLevel());
}
public void onKeyBack() {

View File

@ -1,14 +1,13 @@
package de.frajul.endlessroll.views;
import android.support.annotation.LayoutRes;
import android.support.annotation.StringRes;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import de.frajul.endlessroll.R;
import de.frajul.endlessroll.levels.Level;
import de.frajul.endlessroll.levels.LevelPack;
import de.frajul.endlessroll.main.GameActivity;
/**
@ -19,6 +18,7 @@ public class GoalMessageLevelButton implements View.OnClickListener {
private GameActivity gameActivity;
private GoalMessageLevelButtonOnClickListener clickListener;
private Level level;
private boolean showingToNextWorld = false;
private View layout;
private TextView text;
@ -26,6 +26,7 @@ public class GoalMessageLevelButton implements View.OnClickListener {
private ImageView star2;
private ImageView star3;
private ImageView energy;
private View bottomLayout;
public GoalMessageLevelButton(GameActivity gameActivity, GoalMessageLevelButtonOnClickListener clickListener, View layout) {
this.gameActivity = gameActivity;
@ -42,18 +43,31 @@ public class GoalMessageLevelButton implements View.OnClickListener {
star2 = (ImageView) layout.findViewById(R.id.goal_message_levelbutton_star2);
star3 = (ImageView) layout.findViewById(R.id.goal_message_levelbutton_star3);
energy = (ImageView) layout.findViewById(R.id.goal_message_levelbutton_energy);
bottomLayout = layout.findViewById(R.id.goal_message_bottom_layout);
}
public void setVisible(boolean visible){
public void setVisible(boolean visible) {
layout.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
}
public void init(@StringRes int textId, Level level) {
this.level = level;
initShowToNextWorld(false, null);
text.setText(gameActivity.getString(textId, level.getId()));
showCollectedCurrency(level.getCollectedStars(), level.isEnergyCollected());
}
public void initShowToNextWorld(boolean show, LevelPack currentLevelPack) {
showingToNextWorld = show;
bottomLayout.setVisibility(show ? View.GONE : View.VISIBLE);
if (show) {
String nextWorld = gameActivity.getLevelManager().getNextLevelPack(currentLevelPack)
.getName();
text.setText(
gameActivity.getString(R.string.goal_message_next_world_format_s, nextWorld));
}
}
private void showCollectedCurrency(boolean[] stars, boolean energy) {
if (stars[0])
this.star1.setImageResource(R.drawable.currency_star);
@ -69,10 +83,14 @@ public class GoalMessageLevelButton implements View.OnClickListener {
return level;
}
public View getView(){
public View getView() {
return layout;
}
public boolean isShowingToNextWorld() {
return showingToNextWorld;
}
@Override
public void onClick(View v) {
clickListener.onClick(this);