From 736efdaf6aea46dc44322e84656a7a489face44a Mon Sep 17 00:00:00 2001 From: Mittendrein Markus Date: Wed, 26 Aug 2015 22:47:46 +0200 Subject: Add GameComments to show current game state --- TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/Script.c | 17 ++++++---- TemplePushing.c4s/Script.c | 41 +++++++++++++++++++++++ TemplePushing.c4s/StringTblDE.txt | 12 +++++++ TemplePushing.c4s/StringTblUS.txt | 11 ++++++ TemplePushing.c4s/System.c4g/Compatibility.c | 5 +++ 5 files changed, 80 insertions(+), 6 deletions(-) create mode 100644 TemplePushing.c4s/System.c4g/Compatibility.c diff --git a/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/Script.c index ea902f8..11c2587 100644 --- a/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/Script.c +++ b/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/Script.c @@ -18,6 +18,16 @@ local ambienceEnabled; local numRelaunches; local deathmatchEnabled, deathmatchWinScore; +public func GetModes() +{ + return + [[MODE_Classic, "$ModeClassic$", CLSC], + [MODE_Magic, "$ModeMagic$", MLPG], + [MODE_Festive, "$ModeFestive$", FSTV], + [MODE_Apocalyptic, "$ModeApocalyptic$", APCE], + [MODE_Knightly, "$ModeKnightly$", MKNI]]; +} + protected func Initialize() { Sections = []; @@ -27,12 +37,7 @@ protected func Initialize() } section = Sections[0]; - Modes = [ - [MODE_Classic, "$ModeClassic$", CLSC], - [MODE_Magic, "$ModeMagic$", MLPG], - [MODE_Knightly, "$ModeKnightly$", MKNI], - [MODE_Apocalyptic, "$ModeApocalyptic$", APCE], - [MODE_Festive, "$ModeFestive$", FSTV]]; + Modes = GetModes(); } private func ShowSetup() diff --git a/TemplePushing.c4s/Script.c b/TemplePushing.c4s/Script.c index 197757c..a75c6cf 100644 --- a/TemplePushing.c4s/Script.c +++ b/TemplePushing.c4s/Script.c @@ -154,11 +154,14 @@ func UpdateScoreboard(int player, bool leaver) SortScoreboard(SBRD_ScoreCol, true); if (!deathmatchEnabled) SortScoreboard(SBRD_RelaunchesCol, true); SortScoreboard(SBRD_SortCol); + + UpdateComment(); } func ShowLobby() { LoadScenarioSection("Lobby"); + UpdateComment(true); } func SetupDone(object menu, string message) @@ -719,3 +722,41 @@ func ToggleAmbienceSounds(int player) SetPlrExtraData(player, PlrData_EnableAmbienceSounds, preference); DoAmbienceSounds(player); } + +func UpdateComment(bool inLobby) +{ + if (inLobby) SetGameComment(" $LobbyComment$"); + else + { + var score = ""; + var teams = []; + var teamRelaunches = []; + for (var i = 0; i < GetPlayerCount(); i++) + { + if (!eliminatedPlayers[GetPlayerID(GetPlayerByIndex(i))]) + { + ++teams[GetPlayerTeam(GetPlayerByIndex(i))]; + if (!deathmatchEnabled) teamRelaunches[GetPlayerTeam(GetPlayerByIndex(i))] += numRelaunches - playerDeaths[GetPlayerID(GetPlayerByIndex(i))]; + } + } + + for (var i = 1; i <= GetTeamCount(); ++i) + { + if (teams[i]) + { + if (GetLength(score)) score = Format("%s : ", score); + if (deathmatchEnabled) score = Format("%s%d", score, GetTeamColor(i), teamScore[i]); + else score = Format("%s%d", score, GetTeamColor(i), teamRelaunches[i]); + } + } + + var modes = SPMU->GetModes(); + var sudden = ""; + if(suddendeathEnabled) sudden = " $SuddenDeath$"; + var goalDesc; + if(deathmatchEnabled) goalDesc = Format("$DM$", deathmatchWinScore); + else goalDesc = Format("$LMS$", numRelaunches); + + SetGameComment(Format(" $GameComment$", GetName(0, sectionID), modes[mode][1], sudden, goalDesc, score)); + } +} diff --git a/TemplePushing.c4s/StringTblDE.txt b/TemplePushing.c4s/StringTblDE.txt index 457bf8a..d4c3ea8 100644 --- a/TemplePushing.c4s/StringTblDE.txt +++ b/TemplePushing.c4s/StringTblDE.txt @@ -1,3 +1,8 @@ +ModeClassic=Klassisch +ModeMagic=Magisch +ModeKnightly=Mittelalterlich +ModeApocalyptic=Apokalyptisch +ModeFestive=Winterlich TeamOne=Lldhyr TeamTwo=Phephr TeamThree=Ghardûr @@ -12,3 +17,10 @@ WinScore=Ziel MsgDeathmatchWin=Team %s erringt den Sieg. Win=Sieg Rematch=Startet eine weitere Runde Tempelschubsen. + +# GameComment-Strings +LobbyComment= Es wird noch eingestellt… +SuddenDeath=mit Sudden Death +DM=DM mit %d Punkten +LMS=LMS mit %d Relaunches +GameComment=Tempel: %s| Modus: %s%s| Ziel: %s| Spielstand: %s diff --git a/TemplePushing.c4s/StringTblUS.txt b/TemplePushing.c4s/StringTblUS.txt index d6ef77a..5d7f552 100644 --- a/TemplePushing.c4s/StringTblUS.txt +++ b/TemplePushing.c4s/StringTblUS.txt @@ -1,3 +1,8 @@ +ModeClassic=Classic +ModeMagic=Magical +ModeKnightly=Medieval +ModeApocalyptic=Apocalyptical +ModeFestive=Winterly TeamOne=Lldhyr TeamTwo=Phephr TeamThree=Ghardûr @@ -13,3 +18,9 @@ MsgDeathmatchWin=Team %s wins the match. Win=Win Rematch=Starts another round of Temple Pushing. +# GameComment-Strings +LobbyComment= Settings are still being chosen… +SuddenDeath=with sudden death +DM=DM with %d points +LMS=LMS with %d relaunches +GameComment=Temple: %s| Mode: %s%s| Goal: %s| Score: %s diff --git a/TemplePushing.c4s/System.c4g/Compatibility.c b/TemplePushing.c4s/System.c4g/Compatibility.c new file mode 100644 index 0000000..5d3865e --- /dev/null +++ b/TemplePushing.c4s/System.c4g/Compatibility.c @@ -0,0 +1,5 @@ +/*-- Avoid errors from non-existent Engine-Functions --*/ + +#strict 2 + +global func SetGameComment() { return _inherited(...); } -- cgit v1.2.3-54-g00ecf