Skip to content

Commit

Permalink
Merge pull request #248 from chesterbr/vale-um
Browse files Browse the repository at this point in the history
Introduz o modo "vale 1 ponto"
  • Loading branch information
chesterbr authored Feb 6, 2024
2 parents fb9df44 + 1b3285e commit c838893
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,20 @@
import me.chester.minitruco.R;

public class PreferenceUtils {
public static Boolean isServidorLocal(Context context) {
return getPreferences(context).getBoolean("servidorLocal", false);
}

public static Boolean isValeUm(Context context) {
return getPreferences(context).getBoolean("valeUm", false);
}

public static String getLetraDoModo(Context context) {
return getPreferences(context).getString("modo", "P");
}

public static String getServidor(Context context) {
return getPreferences(context).getBoolean("servidorLocal", false) ?
return isServidorLocal(context) ?
context.getString(R.string.opcoes_default_servidor_local) :
context.getString(R.string.opcoes_default_servidor);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,9 @@ private void promoveJogoInternet(boolean repete) {
@Override
public Partida criaNovaPartida(JogadorHumano jogadorHumano) {
String modo = getLetraDoModo(this);
if (PreferenceUtils.isValeUm(this)) {
modo = "1";
}
boolean humanoDecide = preferences.getBoolean("humanoDecide", true);
boolean jogoAutomatico = preferences.getBoolean("jogoAutomatico", false);
Partida novaPartida = new PartidaLocal(humanoDecide, jogoAutomatico, modo);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package me.chester.minitruco.android.multiplayer.internet;

import static android.text.InputType.TYPE_CLASS_NUMBER;

import static me.chester.minitruco.android.PreferenceUtils.getLetraDoModo;
import static me.chester.minitruco.android.PreferenceUtils.getServidor;

Expand Down Expand Up @@ -31,6 +30,7 @@
import me.chester.minitruco.BuildConfig;
import me.chester.minitruco.android.CriadorDePartida;
import me.chester.minitruco.android.JogadorHumano;
import me.chester.minitruco.android.PreferenceUtils;
import me.chester.minitruco.android.SalaActivity;
import me.chester.minitruco.android.TrucoActivity;
import me.chester.minitruco.android.multiplayer.PartidaRemota;
Expand Down Expand Up @@ -230,6 +230,12 @@ private void processaNotificacoes() {
}
switch (line.charAt(0)) {
case 'N': // Nome foi aceito
// Caso as configurações de desenvolvimento sejam para usar o
// servidor local, respeita a opção de valer 1 ponto
if (PreferenceUtils.isServidorLocal(this) && PreferenceUtils.isValeUm(this)) {
enviaLinha("E PUB 1");
break;
}
// Já vamos entrar de cara numa sala pública (se a pessoa quiser
// fazer outra coisa, ela usa o botão apropriado)
enviaLinha("E PUB " + getLetraDoModo(this));
Expand Down
5 changes: 5 additions & 0 deletions app/src/main/res/xml/opcoes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,10 @@
android:key="jogoAutomatico"
android:summary="Joga uma carta ou pede truco automaticamente (e aleatoriamente) apenas em jogo local"
android:title="Jogo Automático" />
<CheckBoxPreference
android:defaultValue="false"
android:key="valeUm"
android:summary="Ignora o modo selecionado e faz a partida valer um ponto só com a regra do Paulista"
android:title="Vale 1" />
</PreferenceCategory>
</androidx.preference.PreferenceScreen>
2 changes: 2 additions & 0 deletions core/src/main/java/me/chester/minitruco/core/Modo.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ static Modo fromString(String modoStr) {
return new ModoManilhaVelha();
case "L":
return new ModoBaralhoLimpo();
case "1":
return new ModoFinalizaEm1();
default:
throw new IllegalArgumentException("Modo deve ser M, P, V ou L");
}
Expand Down
13 changes: 13 additions & 0 deletions core/src/main/java/me/chester/minitruco/core/ModoFinalizaEm1.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package me.chester.minitruco.core;

/**
* Modo de jogo igual ao Paulista, mas a partida termina em 1 ponto.
* <p>
* APENAS PARA TESTES
*/
public class ModoFinalizaEm1 extends ModoPaulista {

public int pontuacaoParaMaoDeX() {
return 0;
}
}
1 change: 1 addition & 0 deletions core/src/main/java/me/chester/minitruco/core/Partida.java
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ public static String textoModo(String modo) {
case "M": return "Truco Mineiro";
case "L": return "Baralho Limpo";
case "V": return "Manilha Velha";
case "1": return "DEBUG: Finaliza em 1";
}
return null;
}
Expand Down

0 comments on commit c838893

Please sign in to comment.