diff --git a/app/src/main/java/com/helldivers/app/ActivityGame.java b/app/src/main/java/com/helldivers/app/ActivityGame.java index 4b7c1ac..e3ab84f 100644 --- a/app/src/main/java/com/helldivers/app/ActivityGame.java +++ b/app/src/main/java/com/helldivers/app/ActivityGame.java @@ -10,6 +10,7 @@ import android.widget.FrameLayout; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.ProgressBar; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; @@ -194,6 +195,8 @@ private static final String[] NAMES = { private LinearLayout sequenceContainer; private ImageButton btnUp, btnDown, btnLeft, btnRight; private android.widget.Button btnVolver; + private ProgressBar progressBar; + private ImageView ivFailure; private int[] sequence; private int playerIndex = 0; @@ -201,6 +204,7 @@ private static final String[] NAMES = { private boolean esperando = false; private boolean juegoActivo = true; private int currentStratagemIndex = 0; + private boolean bloqueado = false; @Override protected void onCreate(Bundle savedInstanceState) { @@ -218,6 +222,8 @@ private static final String[] NAMES = { btnLeft = findViewById(R.id.btn_left); btnRight = findViewById(R.id.btn_right); btnVolver = findViewById(R.id.btn_volver); + progressBar = findViewById(R.id.progress_bar); + ivFailure = findViewById(R.id.iv_failure); btnVolver.setOnClickListener(v -> finish()); @@ -245,6 +251,10 @@ private static final String[] NAMES = { currentStratagemIndex = idx; playerIndex = 0; juegoActivo = true; + bloqueado = false; + + if (progressBar != null) progressBar.setVisibility(View.GONE); + if (ivFailure != null) ivFailure.setVisibility(View.GONE); if (ivStratagemIcon != null) { try { @@ -258,7 +268,7 @@ private static final String[] NAMES = { secuenciaMostrar(); handler.removeCallbacksAndMessages(null); - handler.postDelayed(() -> { esperando = true; }, 1200); + esperando = true; } private static final String ARROW_CHARS = "\u2191\u2193\u2190\u2192"; @@ -293,7 +303,8 @@ private static final String[] NAMES = { } private void onInput(int dir) { - if (!juegoActivo || !esperando) return; + if (!juegoActivo || !esperando || bloqueado) return; + bloqueado = true; if (dir == sequence[playerIndex]) { playerIndex++; @@ -313,13 +324,22 @@ private static final String[] NAMES = { completadas++; if (tvCounter != null) tvCounter.setText(String.valueOf(completadas)); esperando = false; - handler.postDelayed(this::nuevaRonda, 1200); + if (progressBar != null) { + progressBar.setVisibility(View.VISIBLE); + handler.postDelayed(() -> { + if (progressBar != null) progressBar.setVisibility(View.GONE); + }, 300); + } + handler.postDelayed(this::nuevaRonda, 300); + } else { + bloqueado = false; } } else { if (soundManager != null) { try { soundManager.playFailure(); } catch (Exception e) {} } juegoActivo = false; + if (ivFailure != null) ivFailure.setVisibility(View.VISIBLE); handler.postDelayed(this::nuevaRonda, 1500); } } diff --git a/app/src/main/res/drawable/ic_failure.xml b/app/src/main/res/drawable/ic_failure.xml new file mode 100644 index 0000000..fae86a7 --- /dev/null +++ b/app/src/main/res/drawable/ic_failure.xml @@ -0,0 +1,20 @@ + + + + + + + + diff --git a/app/src/main/res/layout/activity_game.xml b/app/src/main/res/layout/activity_game.xml index 00fd361..6663b46 100644 --- a/app/src/main/res/layout/activity_game.xml +++ b/app/src/main/res/layout/activity_game.xml @@ -205,4 +205,22 @@ android:scaleType="fitCenter" android:src="@drawable/stratagemas_icon" /> + + + + + + \ No newline at end of file