diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index b268ef36cd2de3a14ddddf25aa9f5d4e95731e18..81cb8030fc7732f4b0a19700c0ff410f4d5fb5c6 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -4,6 +4,14 @@ <selectionStates> <SelectionState runConfigName="app"> <option name="selectionMode" value="DROPDOWN" /> + <DropdownSelection timestamp="2024-11-24T14:04:03.259758866Z"> + <Target type="DEFAULT_BOOT"> + <handle> + <DeviceId pluginId="PhysicalDevice" identifier="serial=RF8N1192C6J" /> + </handle> + </Target> + </DropdownSelection> + <DialogSelection /> </SelectionState> </selectionStates> </component> diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt index 15133f0ca667070f6596523f540f502ee844c555..672d853c1d29d9d0186ce5e4a0fc72ddbe1b9116 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt @@ -1,13 +1,22 @@ package com.example.ellegadodepintia.exploradoresDePintia +import android.annotation.SuppressLint import android.app.Activity import android.content.Context import android.content.Intent import android.graphics.Color import android.graphics.drawable.AnimationDrawable import android.os.Bundle +import android.os.Handler +import android.os.Looper +import android.view.MotionEvent +import android.view.View +import android.widget.GridLayout import android.widget.ImageButton import android.widget.ImageView +import android.widget.LinearLayout +import android.widget.ProgressBar +import android.widget.TextView import android.widget.Toast import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts @@ -76,6 +85,8 @@ class ExploradoresDePintia : AppCompatActivity() { LayoutUtils.actualizarMonedas() GeneradorDeEventos.generarEvento(dificultad) GestorDeEventos.gestionar() + ListenerBarras() + } @Deprecated("Deprecated in Java") @@ -118,5 +129,23 @@ class ExploradoresDePintia : AppCompatActivity() { soundManager.stopSound() } - + @SuppressLint("ClickableViewAccessibility") + private fun ListenerBarras() { + val barras: LinearLayout = findViewById(R.id.barras) + val estadisticas: GridLayout = findViewById(R.id.estadisticas) + barras.setOnTouchListener { v, event -> + when (event.action) { + MotionEvent.ACTION_DOWN -> { + Handler(Looper.getMainLooper()).postDelayed({ + estadisticas.visibility = View.VISIBLE + }, 500) // 500 ms para que se registre como toque largo + } + MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> { + // Ocultar el GridLayout si se termina el toque + estadisticas.visibility = View.GONE + } + } + true + } + } } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/LayoutUtils.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/LayoutUtils.kt index 4e40ca1b07b7024192735fbc08c866a8464b99f2..ffdab63b56b4d1f918514b7aaa26bca6d0370b7e 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/LayoutUtils.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/LayoutUtils.kt @@ -20,22 +20,24 @@ object LayoutUtils { fun actualizarEstadisticasMain() { if (context is Activity) { val barraVida = context!!.findViewById<ProgressBar>(R.id.barraVida) + val barraEnergia = context!!.findViewById<ProgressBar>(R.id.barraEnergia) val ataqueText = context!!.findViewById<TextView>(R.id.ataqueText) val investigacionText = context!!.findViewById<TextView>(R.id.investigacionText) val vidaText = context!!.findViewById<TextView>(R.id.vidaText) val energiaText = context!!.findViewById<TextView>(R.id.EnergiaText) - actualizarJugador(barraVida, ataqueText, investigacionText, vidaText, energiaText) + actualizarJugador(barraVida, ataqueText, investigacionText, vidaText, energiaText, barraEnergia) } } fun actualizarEstadisticasInventario(view: View) { val barraVida = view.findViewById<ProgressBar>(R.id.barraVida) + val barraEnergia = context!!.findViewById<ProgressBar>(R.id.barraEnergia) val ataqueText = view.findViewById<TextView>(R.id.ataqueText) val investigacionText = view.findViewById<TextView>(R.id.investigacionText) val vidaText = view.findViewById<TextView>(R.id.vidaText) val energiaText = view.findViewById<TextView>(R.id.EnergiaText) - actualizarJugador(barraVida, ataqueText, investigacionText, vidaText, energiaText) + actualizarJugador(barraVida, ataqueText, investigacionText, vidaText, energiaText, barraEnergia) } private fun actualizarJugador( @@ -43,11 +45,13 @@ object LayoutUtils { ataqueText: TextView, investigacionText: TextView, vidaText: TextView, - energiaText: TextView + energiaText: TextView, + barraEnergia: ProgressBar ) { barraVida.max = GameState.jugador.vidaMax barraVida.progress = GameState.jugador.atributos[Atributo.Vida]!! - + barraEnergia.max = GameState.jugador.energiaMax + barraEnergia.progress = GameState.jugador.atributos[Atributo.Energia]!! ataqueText.text = "${GameState.jugador.atributos[Atributo.Ataque]}" investigacionText.text = "${GameState.jugador.atributos[Atributo.Investigacion]}" diff --git a/app/src/main/res/drawable/asi_minijuego_4_bola1.png b/app/src/main/res/drawable/asi_minijuego_4_bola1.png new file mode 100644 index 0000000000000000000000000000000000000000..c2eff807f6f10a92cfb5bf62ea7a893af5096dee Binary files /dev/null and b/app/src/main/res/drawable/asi_minijuego_4_bola1.png differ diff --git a/app/src/main/res/drawable/asi_minijuego_4_bola2.png b/app/src/main/res/drawable/asi_minijuego_4_bola2.png new file mode 100644 index 0000000000000000000000000000000000000000..0c3108dfb51a8ab8fa7fe54030210db4a2748fa3 Binary files /dev/null and b/app/src/main/res/drawable/asi_minijuego_4_bola2.png differ diff --git a/app/src/main/res/drawable/asi_minijuego_4_tablero.png b/app/src/main/res/drawable/asi_minijuego_4_tablero.png index 1a19c934d77c3c7c2e49aba4a6f3200293afc020..79ca676eab6ed6fd5bbd818a2c9e3513d7ad19bc 100644 Binary files a/app/src/main/res/drawable/asi_minijuego_4_tablero.png and b/app/src/main/res/drawable/asi_minijuego_4_tablero.png differ diff --git a/app/src/main/res/drawable/style_barra_energia.xml b/app/src/main/res/drawable/style_barra_energia.xml new file mode 100644 index 0000000000000000000000000000000000000000..6dc367b29ee00fb6d3572070901db41a495bf151 --- /dev/null +++ b/app/src/main/res/drawable/style_barra_energia.xml @@ -0,0 +1,30 @@ +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + + <item android:id="@android:id/background"> + <shape> + <gradient + android:startColor="#000001" + android:centerColor="#0b131e" + android:centerY="0.75" + android:endColor="#0d1522" + android:angle="270" + /> + <corners android:radius="15dp"/> + </shape> + </item> + + <item android:id="@android:id/progress"> + <clip> + <shape> + <gradient + android:startColor="#0000FF" + android:centerColor="@android:color/holo_blue_dark" + android:centerY="0.75" + android:endColor="@android:color/holo_blue_dark" + android:angle="270"/> + <corners android:radius="15dp"/> + </shape> + </clip> + </item> + +</layer-list> \ No newline at end of file diff --git a/app/src/main/res/drawable/style_texto2_border.xml b/app/src/main/res/drawable/style_texto2_border.xml new file mode 100644 index 0000000000000000000000000000000000000000..becb3b38c12ef37f128307abad036acceb972fb6 --- /dev/null +++ b/app/src/main/res/drawable/style_texto2_border.xml @@ -0,0 +1,4 @@ +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <solid android:color="#E1C47f"/> + <corners android:radius="30dp"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_exploradores_de_pintia.xml b/app/src/main/res/layout/activity_exploradores_de_pintia.xml index c5b7fb2787649283b97e88db5be0f52c2ffeb6b6..3e0c1997b217d4f4d2197fda5af1c940fc197d2b 100644 --- a/app/src/main/res/layout/activity_exploradores_de_pintia.xml +++ b/app/src/main/res/layout/activity_exploradores_de_pintia.xml @@ -23,112 +23,209 @@ android:gravity="center" android:orientation="vertical"> - <LinearLayout - android:id="@+id/moneyLayout" - android:layout_width="160dp" - android:layout_height="30dp" - android:background="@drawable/style_texto_border" - android:gravity="center" - android:orientation="horizontal"> - - <ImageView - android:id="@+id/moneyImage" - android:layout_width="30dp" - android:layout_height="match_parent" - android:layout_marginStart="10dp" - android:contentDescription="Logo del juego" - android:src="@drawable/logo_pintia" - tools:ignore="HardcodedText" /> - - <TextView - android:id="@+id/moneyText" - android:layout_width="wrap_content" + <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:padding="10dp" + android:columnCount="1" + android:rowCount="2"> + + <!-- Primer elemento (fila 1) --> + <LinearLayout + android:id="@+id/primero" + android:background="@drawable/style_texto_border" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginStart="30dp" - android:text="1200" - android:textColor="@color/pintiaTitleText" - android:textSize="20sp" - android:fontFamily="@font/pixeled" - tools:ignore="HardcodedText" /> + android:orientation="horizontal" + android:gravity="center"> - </LinearLayout> - <LinearLayout - android:id="@+id/mainArea" - android:layout_width="match_parent" - android:layout_height="180dp" - android:layout_marginTop="8dp" - android:background="@drawable/style_texto_border" - android:gravity="center" - android:orientation="horizontal" - android:paddingTop="16dp" - android:paddingBottom="16dp" - app:layout_constraintTop_toBottomOf="@id/tituloJuego"> - <LinearLayout - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:gravity="center" - android:orientation="vertical"> + <!-- Ataque Layout --> + <LinearLayout + android:id="@+id/ataqueArea" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center" + android:orientation="horizontal" + android:layout_margin="8dp"> + + <ImageView + android:id="@+id/ataqueImage" + android:layout_width="30dp" + android:layout_height="30dp" + android:contentDescription="Imagen de ataque" + android:src="@drawable/icon_espada" /> + + <TextView + android:id="@+id/ataqueText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="5dp" + android:text="1" + android:textColor="#000000" + android:textSize="18sp" + android:fontFamily="@font/pixeled" /> + </LinearLayout> + + <!-- Investigación Layout --> + <LinearLayout + android:id="@+id/InvestigacionArea" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center" + android:orientation="horizontal" + android:layout_margin="8dp"> + + <ImageView + android:id="@+id/investigacionImagen" + android:layout_width="30dp" + android:layout_height="30dp" + android:contentDescription="Imagen de investigación" + android:src="@drawable/icon_vasija" /> + + <TextView + android:id="@+id/investigacionText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="5dp" + android:text="1" + android:textColor="#000000" + android:textSize="18sp" + android:fontFamily="@font/pixeled" /> + </LinearLayout> + <!-- Money Layout --> + <LinearLayout + android:id="@+id/moneyLayout" + android:layout_width="160dp" + android:layout_height="30dp" + android:background="@drawable/style_texto_border" + android:gravity="center" + android:orientation="horizontal"> + + <ImageView + android:id="@+id/moneyImage" + android:layout_width="30dp" + android:layout_height="match_parent" + android:layout_marginStart="10dp" + android:contentDescription="Logo del juego" + android:src="@drawable/logo_pintia" + tools:ignore="HardcodedText" /> + + <TextView + android:id="@+id/moneyText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="30dp" + android:text="1200" + android:textColor="@color/pintiaTitleText" + android:textSize="20sp" + android:fontFamily="@font/pixeled" + tools:ignore="HardcodedText" /> + + </LinearLayout> + </LinearLayout> - <ImageView - android:id="@+id/imagenProtagonista" - android:layout_width="169dp" - android:layout_height="127dp" - android:layout_marginBottom="8dp" - android:contentDescription="Imagen del yacimiento arqueológico" - android:src="@drawable/protagonista_idle_animation" /> - - <ProgressBar - android:id="@+id/barraVida" - style="@android:style/Widget.ProgressBar.Horizontal" - android:layout_width="120dp" - android:layout_height="10dp" - android:max="100" - android:progress="100" - android:progressDrawable="@drawable/style_barra_evento" /> - </LinearLayout> - <LinearLayout - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="10dp" - android:gravity="center" - android:orientation="vertical"> + <!-- Segundo elemento (fila 2) --> + <LinearLayout + android:id="@+id/mainArea" + android:layout_width="match_parent" + android:layout_height="200dp" + android:layout_marginTop="8dp" + android:background="@drawable/style_texto_border" + android:gravity="center" + android:orientation="horizontal" + android:paddingTop="16dp" + android:paddingBottom="16dp" + app:layout_constraintTop_toBottomOf="@id/tituloJuego"> - <FrameLayout - android:layout_width="169dp" - android:layout_height="127dp" - android:layout_marginBottom="8dp"> + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center" + android:orientation="vertical"> + + <ImageView + android:id="@+id/imagenProtagonista" + android:layout_width="169dp" + android:layout_height="127dp" + android:layout_marginBottom="8dp" + android:contentDescription="Imagen del yacimiento arqueológico" + android:src="@drawable/protagonista_idle_animation" /> + + <LinearLayout + android:id="@+id/barras" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical"> + <ProgressBar + android:id="@+id/barraVida" + style="@android:style/Widget.ProgressBar.Horizontal" + android:layout_width="120dp" + android:layout_height="10dp" + android:layout_marginBottom="2dp" + android:max="100" + android:progress="100" + android:progressDrawable="@drawable/style_barra_evento" /> + + <ProgressBar + android:id="@+id/barraEnergia" + style="@android:style/Widget.ProgressBar.Horizontal" + android:layout_width="120dp" + android:layout_height="10dp" + android:max="100" + android:progress="100" + android:layout_marginBottom="10dp" + android:progressDrawable="@drawable/style_barra_energia" /> + </LinearLayout> + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="10dp" + android:gravity="center" + android:orientation="vertical"> + + <FrameLayout + android:layout_width="169dp" + android:layout_height="127dp" + android:layout_marginBottom="8dp"> + + <ImageView + android:id="@+id/imagenEvento" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:contentDescription="Imagen del yacimiento arqueológico" + android:scaleX="-1" + android:src="@drawable/monster_metal_idle_00" /> + + <ImageView + android:id="@+id/imagenEfectoEvento" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:contentDescription="Imagen del efecto de evento" + android:scaleX="-1"/> + </FrameLayout> + + <ProgressBar + android:id="@+id/barraEvento" + style="@android:style/Widget.ProgressBar.Horizontal" + android:layout_width="120dp" + android:layout_height="10dp" + android:layout_marginBottom="10dp" + android:max="100" + android:progress="100" + android:progressDrawable="@drawable/style_barra_vida" /> + </LinearLayout> - <ImageView - android:id="@+id/imagenEvento" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:contentDescription="Imagen del yacimiento arqueológico" - android:scaleX="-1" - android:src="@drawable/monster_metal_idle_00" /> - <ImageView - android:id="@+id/imagenEfectoEvento" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:contentDescription="Imagen del efecto de evento" - android:scaleX="-1"/> - </FrameLayout> - - <ProgressBar - android:id="@+id/barraEvento" - style="@android:style/Widget.ProgressBar.Horizontal" - android:layout_width="120dp" - android:layout_height="10dp" - android:max="100" - android:progress="100" - android:progressDrawable="@drawable/style_barra_vida" /> - </LinearLayout> + </LinearLayout> + </GridLayout> - </LinearLayout> <TextView @@ -215,119 +312,8 @@ android:textColor="@color/pintiaButtonText"/> </GridLayout> - <LinearLayout - android:id="@+id/estadisticas" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="10dp" - android:background="@drawable/style_texto_border" - android:gravity="center" - android:orientation="horizontal" - android:padding="3dp"> - - <LinearLayout - android:id="@+id/ataqueArea" - android:layout_width="100dp" - android:layout_height="wrap_content" - android:gravity="center" - android:orientation="horizontal"> - - <ImageView - android:id="@+id/ataqueImage" - android:layout_width="30dp" - android:layout_height="30dp" - android:contentDescription="Imagen de ataque" - android:src="@drawable/icon_espada" /> - - <TextView - android:id="@+id/ataqueText" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="5dp" - android:text="1" - android:textColor="#000000" - android:textSize="18sp" - android:fontFamily="@font/pixeled"/> - </LinearLayout> - - <LinearLayout - android:id="@+id/HealthArea" - android:layout_width="110dp" - android:layout_height="wrap_content" - android:gravity="center" - android:orientation="horizontal"> - - <ImageView - android:id="@+id/healthImage" - android:layout_width="30dp" - android:layout_height="30dp" - android:contentDescription="Imagen de vida" - android:src="@drawable/icon_vida" /> - - <TextView - android:id="@+id/vidaText" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="5dp" - android:text="10" - android:textColor="#000000" - android:textSize="18sp" - android:fontFamily="@font/pixeled"/> - </LinearLayout> - - <LinearLayout - android:id="@+id/EnergyArea" - android:layout_width="110dp" - android:layout_height="wrap_content" - android:gravity="center" - android:orientation="horizontal"> - - <ImageView - android:id="@+id/EngergyImage" - android:layout_width="30dp" - android:layout_height="30dp" - android:contentDescription="Imagen de vida" - android:src="@drawable/icon_energia" /> - - <TextView - android:id="@+id/EnergiaText" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="5dp" - android:text="10" - android:textColor="#000000" - android:textSize="18sp" - android:fontFamily="@font/pixeled"/> - </LinearLayout> - - - <LinearLayout - android:id="@+id/InvestigacionArea" - android:layout_width="100dp" - android:layout_height="wrap_content" - android:gravity="center" - android:orientation="horizontal"> - - <ImageView - android:id="@+id/investigacionImagen" - android:layout_width="30dp" - android:layout_height="30dp" - android:contentDescription="Imagen de vida" - android:src="@drawable/icon_vasija" /> - - <TextView - android:id="@+id/investigacionText" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="5dp" - android:text="1" - android:textColor="#000000" - android:textSize="18sp" - android:fontFamily="@font/pixeled"/> - </LinearLayout> - </LinearLayout> <TextView @@ -347,6 +333,7 @@ </ScrollView> + <LinearLayout android:id="@+id/bottom_navigation" style="?android:attr/buttonBarStyle" @@ -383,6 +370,81 @@ </LinearLayout> + <GridLayout + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + android:visibility="gone" + android:id="@+id/estadisticas" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="10dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:background="@drawable/style_texto_border" + android:columnCount="2" + android:rowCount="1"> + + <!-- Vida --> + <LinearLayout + android:id="@+id/HealthArea" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:gravity="center" + android:orientation="horizontal" + android:layout_margin="8dp" + android:layout_marginLeft="40dp"> + + <ImageView + android:id="@+id/healthImage" + android:layout_width="30dp" + android:layout_height="30dp" + android:contentDescription="Imagen de vida" + android:src="@drawable/icon_vida" /> + + <TextView + android:id="@+id/vidaText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="5dp" + android:text="10" + android:textColor="#000000" + android:textSize="18sp" + android:fontFamily="@font/pixeled" /> + </LinearLayout> + + + + <!-- EnergÃa --> + <LinearLayout + android:id="@+id/EnergyArea" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:gravity="center" + android:orientation="horizontal" + android:layout_margin="8dp"> + + <ImageView + android:id="@+id/EngergyImage" + android:layout_width="30dp" + android:layout_height="30dp" + android:contentDescription="Imagen de energÃa" + android:src="@drawable/icon_energia" /> + + <TextView + android:id="@+id/EnergiaText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="5dp" + android:text="10" + android:textColor="#000000" + android:textSize="18sp" + android:fontFamily="@font/pixeled" /> + </LinearLayout> + + + </GridLayout> </androidx.constraintlayout.widget.ConstraintLayout>