mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +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
|
#SplashScreen.java
|
||||||
splash.loading.examining-cards=Lade Karten, durchsuche Verzeichnis
|
splash.loading.examining-cards=Lade Karten, durchsuche Verzeichnis
|
||||||
splash.loading.cards-folders=Lade Karten aus Verzeichnissen
|
splash.loading.cards-folders=Lade Karten aus Verzeichnissen
|
||||||
@@ -2467,6 +2467,10 @@ lblLand=Land
|
|||||||
lblManaScrewed=Mana-Dürre
|
lblManaScrewed=Mana-Dürre
|
||||||
lblWinGameOnlyPlaing=Gewinne ein Spiel mit nur
|
lblWinGameOnlyPlaing=Gewinne ein Spiel mit nur
|
||||||
lblNLands={0} Land/Ländern
|
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
|
#MatchWinStreak.java
|
||||||
lblMatchWinStreak=Gewinnsträhne Begegnung
|
lblMatchWinStreak=Gewinnsträhne Begegnung
|
||||||
lblWinNMatchesInARow=Gewinne {0} Begegnungen nacheinander
|
lblWinNMatchesInARow=Gewinne {0} Begegnungen nacheinander
|
||||||
|
|||||||
@@ -2465,6 +2465,10 @@ lblLand=Land
|
|||||||
lblManaScrewed=Mana Screwed
|
lblManaScrewed=Mana Screwed
|
||||||
lblWinGameOnlyPlaing=Win a game despite playing only
|
lblWinGameOnlyPlaing=Win a game despite playing only
|
||||||
lblNLands={0} land(s)
|
lblNLands={0} land(s)
|
||||||
|
#AgainstAllOdds.java
|
||||||
|
lblAgainstAllOdds=Against all Odds
|
||||||
|
lblAgainstIndividual=versus {0} individual players
|
||||||
|
lblAgainstTeam=versus {0} players in a team
|
||||||
#MatchWinStreak.java
|
#MatchWinStreak.java
|
||||||
lblMatchWinStreak=Match Win Streak
|
lblMatchWinStreak=Match Win Streak
|
||||||
lblWinNMatchesInARow=Win {0} matches in a row
|
lblWinNMatchesInARow=Win {0} matches in a row
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
language.name=Spanish (ES)
|
language.name=Spanish (ES)
|
||||||
#SplashScreen.java
|
#SplashScreen.java
|
||||||
splash.loading.examining-cards=Cargando cartas, examinando carpeta
|
splash.loading.examining-cards=Cargando cartas, examinando carpeta
|
||||||
splash.loading.cards-folders=Cargando cartas de la carpeta
|
splash.loading.cards-folders=Cargando cartas de la carpeta
|
||||||
@@ -2465,6 +2465,10 @@ lblLand=Tierra
|
|||||||
lblManaScrewed=Arruinado de maná
|
lblManaScrewed=Arruinado de maná
|
||||||
lblWinGameOnlyPlaing=Gana una partida a pesar de jugar sólo
|
lblWinGameOnlyPlaing=Gana una partida a pesar de jugar sólo
|
||||||
lblNLands={0} tierra(s)
|
lblNLands={0} tierra(s)
|
||||||
|
#AgainstAllOdds.java
|
||||||
|
lblAgainstAllOdds=Against all Odds
|
||||||
|
lblAgainstIndividual=versus {0} individual players
|
||||||
|
lblAgainstTeam=versus {0} players in a team
|
||||||
#MatchWinStreak.java
|
#MatchWinStreak.java
|
||||||
lblMatchWinStreak=Racha de partidas ganadas
|
lblMatchWinStreak=Racha de partidas ganadas
|
||||||
lblWinNMatchesInARow=Gana {0} partidas seguidas
|
lblWinNMatchesInARow=Gana {0} partidas seguidas
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
language.name=Italiano (IT)
|
language.name=Italiano (IT)
|
||||||
#SplashScreen.java
|
#SplashScreen.java
|
||||||
splash.loading.examining-cards=Caricamento delle carte, esame della cartella
|
splash.loading.examining-cards=Caricamento delle carte, esame della cartella
|
||||||
splash.loading.cards-folders=Caricamento delle carte dalle cartelle
|
splash.loading.cards-folders=Caricamento delle carte dalle cartelle
|
||||||
@@ -2464,6 +2464,10 @@ lblLand=Terra
|
|||||||
lblManaScrewed=Fregato dal mana
|
lblManaScrewed=Fregato dal mana
|
||||||
lblWinGameOnlyPlaing=Vinci una partita pur avendo giocato solo
|
lblWinGameOnlyPlaing=Vinci una partita pur avendo giocato solo
|
||||||
lblNLands={0} terra/e
|
lblNLands={0} terra/e
|
||||||
|
#AgainstAllOdds.java
|
||||||
|
lblAgainstAllOdds=Against all Odds
|
||||||
|
lblAgainstIndividual=versus {0} individual players
|
||||||
|
lblAgainstTeam=versus {0} players in a team
|
||||||
#MatchWinStreak.java
|
#MatchWinStreak.java
|
||||||
lblMatchWinStreak=Serie di vittorie (Incontri)
|
lblMatchWinStreak=Serie di vittorie (Incontri)
|
||||||
lblWinNMatchesInARow=Vinci {0} incontri di fila
|
lblWinNMatchesInARow=Vinci {0} incontri di fila
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
language.name=Japanese (JP)
|
language.name=Japanese (JP)
|
||||||
#SplashScreen.java
|
#SplashScreen.java
|
||||||
splash.loading.examining-cards=カードを読み込んで、フォルダを調べます
|
splash.loading.examining-cards=カードを読み込んで、フォルダを調べます
|
||||||
splash.loading.cards-folders=フォルダーからのカードのロード
|
splash.loading.cards-folders=フォルダーからのカードのロード
|
||||||
@@ -2464,6 +2464,10 @@ lblLand=土地
|
|||||||
lblManaScrewed=マナスクリュー
|
lblManaScrewed=マナスクリュー
|
||||||
lblWinGameOnlyPlaing=ゲームに勝つ時、
|
lblWinGameOnlyPlaing=ゲームに勝つ時、
|
||||||
lblNLands={0}つの土地しかプレイしていない
|
lblNLands={0}つの土地しかプレイしていない
|
||||||
|
#AgainstAllOdds.java
|
||||||
|
lblAgainstAllOdds=Against all Odds
|
||||||
|
lblAgainstIndividual=versus {0} individual players
|
||||||
|
lblAgainstTeam=versus {0} players in a team
|
||||||
#MatchWinStreak.java
|
#MatchWinStreak.java
|
||||||
lblMatchWinStreak=マッチ連勝
|
lblMatchWinStreak=マッチ連勝
|
||||||
lblWinNMatchesInARow={0}連勝
|
lblWinNMatchesInARow={0}連勝
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
language.name=Chinese (CN)
|
language.name=Chinese (CN)
|
||||||
#SplashScreen.java
|
#SplashScreen.java
|
||||||
splash.loading.examining-cards=加载卡牌,检查文件夹
|
splash.loading.examining-cards=加载卡牌,检查文件夹
|
||||||
splash.loading.cards-folders=从文件夹加载卡牌
|
splash.loading.cards-folders=从文件夹加载卡牌
|
||||||
@@ -2466,6 +2466,10 @@ lblLand=地
|
|||||||
lblManaScrewed=法术力枯竭
|
lblManaScrewed=法术力枯竭
|
||||||
lblWinGameOnlyPlaing=赢得一局游戏胜利时只使用过
|
lblWinGameOnlyPlaing=赢得一局游戏胜利时只使用过
|
||||||
lblNLands={0}个地
|
lblNLands={0}个地
|
||||||
|
#AgainstAllOdds.java
|
||||||
|
lblAgainstAllOdds=Against all Odds
|
||||||
|
lblAgainstIndividual=versus {0} individual players
|
||||||
|
lblAgainstTeam=versus {0} players in a team
|
||||||
#MatchWinStreak.java
|
#MatchWinStreak.java
|
||||||
lblMatchWinStreak=比赛连胜
|
lblMatchWinStreak=比赛连胜
|
||||||
lblWinNMatchesInARow=连续赢得{0}场比赛
|
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.Game;
|
||||||
import forge.game.GameType;
|
import forge.game.GameType;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
import forge.gui.GuiBase;
|
||||||
import forge.localinstance.properties.ForgeConstants;
|
import forge.localinstance.properties.ForgeConstants;
|
||||||
import forge.util.Localizer;
|
import forge.util.Localizer;
|
||||||
|
|
||||||
@@ -25,6 +26,9 @@ public class ChallengeAchievements extends AchievementCollection {
|
|||||||
add(new NoSpells());
|
add(new NoSpells());
|
||||||
add(new NoLands());
|
add(new NoLands());
|
||||||
add(new Domain());
|
add(new Domain());
|
||||||
|
if (!GuiBase.getInterface().isLibgdxPort()) {
|
||||||
|
add(new AgainstAllOdds());
|
||||||
|
}
|
||||||
add("Chromatic", Localizer.getInstance().getMessage("lblChromatic"),
|
add("Chromatic", Localizer.getInstance().getMessage("lblChromatic"),
|
||||||
Localizer.getInstance().getMessage("lblWinGameAfterCasting5CSpell"),
|
Localizer.getInstance().getMessage("lblWinGameAfterCasting5CSpell"),
|
||||||
Localizer.getInstance().getMessage("lblGreatColorComesPower")
|
Localizer.getInstance().getMessage("lblGreatColorComesPower")
|
||||||
|
|||||||
Reference in New Issue
Block a user