Message appears when playershape is unlocked

Superpower-countdown now calculated with timer.frametime -> superpower-countdown is now paused when the game is paused
This commit is contained in:
=
2017-10-31 11:19:33 +01:00
parent 44d7665442
commit 9da909bda5
8 changed files with 352 additions and 193 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(15)),
R.drawable.playershapes_clock, new CollectStarTask(1)),//15
HYPNO_SPIRAL(R.string.playershape_name_hypno_spiral,
R.string.playershape_description_hypno_spiral, R.drawable.playershapes_hypno_spiral,
new CollectEnergyTask(3)),
new CollectEnergyTask(1)),//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

@ -19,8 +19,7 @@ public class PowerMushroom extends Tool {
@Override
public void onPlayerCollision(Player player, Timer timer) {
player.startSuperPower(timer.getCurrentTime(),
(long) ToolType.POWER_MUSHROOM.getCurrentUpgradeValue(ToolUpgradeType.DURATION));
player.startSuperPower((long) ToolType.POWER_MUSHROOM.getCurrentUpgradeValue(ToolUpgradeType.DURATION));
super.destroy(DestroyEffect.ENERGY_COLLECT);
}

View File

@ -0,0 +1,98 @@
package de.frajul.endlessroll.views;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import de.frajul.endlessroll.R;
import de.frajul.endlessroll.entities.Player;
import de.frajul.endlessroll.entities.shapes.PlayerShape;
import de.frajul.endlessroll.main.GameActivity;
import de.frajul.endlessroll.main.GameLog;
import de.frajul.endlessroll.main.game.Game;
import de.frajul.endlessroll.main.screens.Screen;
/**
* Created by Julian on 15.07.2016.
*/
public class TaskCompletedMessage implements View.OnClickListener, BountyMessage.ScreenSwitchCaller {
private GameActivity gameActivity;
private FrameLayout layout;
private TextView textView;
private LinearLayout messagesLayout;
private List<PlayerShape> unlockedShapes = new ArrayList<>();
public TaskCompletedMessage(GameActivity gameActivity) {
this.gameActivity = gameActivity;
Typeface typeface = gameActivity.getTypeface();
LayoutInflater inflater = LayoutInflater.from(gameActivity);
layout = (FrameLayout) inflater.inflate(R.layout.task_completed_message, null);
layout.setOnClickListener(this);
layout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
layout.setVisibility(View.GONE);
textView = (TextView) layout.findViewById(R.id.task_completed_text);
textView.setTypeface(typeface);
messagesLayout = (LinearLayout) layout.findViewById(R.id.task_completed_unlock_list);
}
public void show(List<PlayerShape> shapes) {
unlockedShapes.clear();
unlockedShapes.addAll(shapes);
showNextShape();
}
private void showNextShape() {
messagesLayout.removeAllViews();
PlayerShape shape = unlockedShapes.remove(0);
textView.setText(
shape.getUnlockTask().toString(gameActivity, gameActivity.getLevelManager()));
BountyMessage message = createBountyMessage(shape);
messagesLayout.addView(message.getLayout());
layout.setVisibility(View.VISIBLE);
}
private BountyMessage createBountyMessage(PlayerShape shape) {
return new BountyMessage(gameActivity, BountyMessage.MessageType.SHAPE_UNLOCKED, null, this,
shape.getDrawableId());
}
private void hide() {
layout.setVisibility(View.GONE);
messagesLayout.removeAllViews();
}
public FrameLayout getLayout() {
return layout;
}
@Override
public void onClick(View v) {
if (unlockedShapes.isEmpty())
hide();
else
showNextShape();
}
@Override
public void switchScreen(Screen.ScreenType screenType) {
gameActivity.flipToScreen(screenType);
hide();
}
}

View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/backgrounds_menu_levelup">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/task_completed"
android:textColor="#ffae00"
android:textSize="60sp"
android:textStyle="bold"
android:layout_marginBottom="-10dp"/>
<TextView
android:id="@+id/task_completed_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/placeholder_textview"
android:textColor="#ffe100"
android:textSize="50sp"
android:textStyle="bold"/>
<ImageView
android:layout_width="400dp"
android:layout_height="10dp"
android:id="@+id/imageView"
android:layout_gravity="center_horizontal"
android:src="@drawable/guis_splitter"
android:layout_marginTop="10dp"/>
<LinearLayout
android:id="@+id/task_completed_unlock_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
android:layout_marginTop="10dp"
android:layout_marginRight="0dp">
</LinearLayout>
</LinearLayout>
</FrameLayout>

View File

@ -12,6 +12,7 @@
<string name="game_fps_placeholder">Fps: 00</string>
<string name="game_fps_format_d">Fps: %d</string>
<string name="game_countdown_placeholder">3</string>
<string name="task_completed">Task completed</string>
<string name="levelup">Level Up</string>
<string name="message_game_over">GAME OVER</string>
<string name="message_win">YOU DID IT</string>
@ -39,6 +40,7 @@
<string name="bounty_message_resource_format_s">%s</string>
<string name="bounty_message_tool_format_s">%s unlocked!</string>
<string name="bounty_message_tool_slot">You unlocked a Toolslot</string>
<string name="bounty_message_shape_unlocked">New shape unlocked</string>
<string name="level_button_format_d">Level: %d</string>
<string name="price_button_buy">Buy</string>
<string name="price_button_upgrade">Upgrade</string>