mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 04:08:01 +00:00
Merge branch 'Achievement' into 'master'
Add multiplayer achievement See merge request core-developers/forge!6215
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}連勝
|
||||
|
||||
@@ -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}场比赛
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user