Merge remote-tracking branch 'core/master'

This commit is contained in:
Anthony Calosa
2022-02-12 16:03:33 +08:00
8 changed files with 100 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
language.name=Deutsch (DE)
language.name=Deutsch (DE)
#SplashScreen.java
splash.loading.examining-cards=Lade Karten, durchsuche Verzeichnis
splash.loading.cards-folders=Lade Karten aus Verzeichnissen
@@ -2467,6 +2467,10 @@ lblLand=Land
lblManaScrewed=Mana-Dürre
lblWinGameOnlyPlaing=Gewinne ein Spiel mit nur
lblNLands={0} Land/Ländern
#AgainstAllOdds.java
lblAgainstAllOdds=Against all Odds
lblAgainstIndividual=versus {0} individual players
lblAgainstTeam=versus {0} players in a team
#MatchWinStreak.java
lblMatchWinStreak=Gewinnsträhne Begegnung
lblWinNMatchesInARow=Gewinne {0} Begegnungen nacheinander

View File

@@ -2465,6 +2465,10 @@ lblLand=Land
lblManaScrewed=Mana Screwed
lblWinGameOnlyPlaing=Win a game despite playing only
lblNLands={0} land(s)
#AgainstAllOdds.java
lblAgainstAllOdds=Against all Odds
lblAgainstIndividual=versus {0} individual players
lblAgainstTeam=versus {0} players in a team
#MatchWinStreak.java
lblMatchWinStreak=Match Win Streak
lblWinNMatchesInARow=Win {0} matches in a row

View File

@@ -1,4 +1,4 @@
language.name=Spanish (ES)
language.name=Spanish (ES)
#SplashScreen.java
splash.loading.examining-cards=Cargando cartas, examinando carpeta
splash.loading.cards-folders=Cargando cartas de la carpeta
@@ -2465,6 +2465,10 @@ lblLand=Tierra
lblManaScrewed=Arruinado de maná
lblWinGameOnlyPlaing=Gana una partida a pesar de jugar sólo
lblNLands={0} tierra(s)
#AgainstAllOdds.java
lblAgainstAllOdds=Against all Odds
lblAgainstIndividual=versus {0} individual players
lblAgainstTeam=versus {0} players in a team
#MatchWinStreak.java
lblMatchWinStreak=Racha de partidas ganadas
lblWinNMatchesInARow=Gana {0} partidas seguidas

View File

@@ -1,4 +1,4 @@
language.name=Italiano (IT)
language.name=Italiano (IT)
#SplashScreen.java
splash.loading.examining-cards=Caricamento delle carte, esame della cartella
splash.loading.cards-folders=Caricamento delle carte dalle cartelle
@@ -2464,6 +2464,10 @@ lblLand=Terra
lblManaScrewed=Fregato dal mana
lblWinGameOnlyPlaing=Vinci una partita pur avendo giocato solo
lblNLands={0} terra/e
#AgainstAllOdds.java
lblAgainstAllOdds=Against all Odds
lblAgainstIndividual=versus {0} individual players
lblAgainstTeam=versus {0} players in a team
#MatchWinStreak.java
lblMatchWinStreak=Serie di vittorie (Incontri)
lblWinNMatchesInARow=Vinci {0} incontri di fila

View File

@@ -1,4 +1,4 @@
language.name=Japanese (JP)
language.name=Japanese (JP)
#SplashScreen.java
splash.loading.examining-cards=カードを読み込んで、フォルダを調べます
splash.loading.cards-folders=フォルダーからのカードのロード
@@ -2464,6 +2464,10 @@ lblLand=土地
lblManaScrewed=マナスクリュー
lblWinGameOnlyPlaing=ゲームに勝つ時、
lblNLands={0}つの土地しかプレイしていない
#AgainstAllOdds.java
lblAgainstAllOdds=Against all Odds
lblAgainstIndividual=versus {0} individual players
lblAgainstTeam=versus {0} players in a team
#MatchWinStreak.java
lblMatchWinStreak=マッチ連勝
lblWinNMatchesInARow={0}連勝

View File

@@ -1,4 +1,4 @@
language.name=Chinese (CN)
language.name=Chinese (CN)
#SplashScreen.java
splash.loading.examining-cards=加载卡牌,检查文件夹
splash.loading.cards-folders=从文件夹加载卡牌
@@ -2466,6 +2466,10 @@ lblLand=地
lblManaScrewed=法术力枯竭
lblWinGameOnlyPlaing=赢得一局游戏胜利时只使用过
lblNLands={0}个地
#AgainstAllOdds.java
lblAgainstAllOdds=Against all Odds
lblAgainstIndividual=versus {0} individual players
lblAgainstTeam=versus {0} players in a team
#MatchWinStreak.java
lblMatchWinStreak=比赛连胜
lblWinNMatchesInARow=连续赢得{0}场比赛

View File

@@ -0,0 +1,67 @@
package forge.localinstance.achievements;
import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
import forge.game.Game;
import forge.game.player.Player;
import forge.game.player.PlayerCollection;
import forge.game.player.PlayerPredicates;
import forge.util.Localizer;
public class AgainstAllOdds extends Achievement {
public AgainstAllOdds() {
super("Against all Odds", Localizer.getInstance().getMessage("lblAgainstAllOdds"),
Localizer.getInstance().getMessage("lblWinGame"), 0,
Localizer.getInstance().getMessage("lblAgainstIndividual", "3"), 1,
Localizer.getInstance().getMessage("lblAgainstIndividual", "7"), 2,
Localizer.getInstance().getMessage("lblAgainstTeam", "3"), 3,
Localizer.getInstance().getMessage("lblAgainstTeam", "7"), 4
);
}
@Override
protected int evaluate(Player player, Game game) {
if (player.getOutcome().hasWon() && game.getRegisteredPlayers().size() - player.getRegisteredOpponents().size() == 1) {
int teamNum = 0;
for (Player opp : player.getRegisteredOpponents()) {
PlayerCollection otherOpps = player.getRegisteredOpponents();
otherOpps.remove(opp);
if (Iterables.all(otherOpps, PlayerPredicates.sameTeam(opp))) {
teamNum++;
} else if (Iterables.all(otherOpps, Predicates.not(PlayerPredicates.sameTeam(opp)))) {
teamNum--;
}
}
if (teamNum == 7) {
return 4;
}
if (teamNum >= 3) {
return 3;
}
if (teamNum == -7) {
return 2;
}
if (teamNum <= -3) {
return 1;
}
}
return 0;
}
@Override
protected String getNoun() {
return null;
}
@Override
public String getSubTitle(boolean includeTimestamp) {
if (includeTimestamp) {
String formattedTimestamp = getFormattedTimestamp();
if (formattedTimestamp != null) {
return "Earned " + formattedTimestamp;
}
}
return null;
}
}

View File

@@ -4,6 +4,7 @@ import forge.deck.Deck;
import forge.game.Game;
import forge.game.GameType;
import forge.game.player.Player;
import forge.gui.GuiBase;
import forge.localinstance.properties.ForgeConstants;
import forge.util.Localizer;
@@ -25,6 +26,9 @@ public class ChallengeAchievements extends AchievementCollection {
add(new NoSpells());
add(new NoLands());
add(new Domain());
if (!GuiBase.getInterface().isLibgdxPort()) {
add(new AgainstAllOdds());
}
add("Chromatic", Localizer.getInstance().getMessage("lblChromatic"),
Localizer.getInstance().getMessage("lblWinGameAfterCasting5CSpell"),
Localizer.getInstance().getMessage("lblGreatColorComesPower")