Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/maps/scenarios/treasure_islands.js
Trigger.prototype.IntroductionMessage = function(data) | Trigger.prototype.IntroductionMessage = function(data) | ||||
{ | { | ||||
if (this.state != "start") | if (this.state != "start") | ||||
return; | return; | ||||
var cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface); | var cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface); | ||||
cmpGUIInterface.PushNotification({ | cmpGUIInterface.PushTimeNotification({ | ||||
"players": [1,2], | "players": [1,2], | ||||
"message": markForTranslation("Collect the treasures before your enemy does! May the better win!"), | "message": markForTranslation("Collect the treasures before your enemy does! May the better win!") | ||||
translateMessage: true | |||||
}); | }); | ||||
}; | }; | ||||
Trigger.prototype.TreasureCollected = function(data) | Trigger.prototype.TreasureCollected = function(data) | ||||
{ | { | ||||
var cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface); | var cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface); | ||||
var count = ++this.treasureCount.players[data.player]; | var count = ++this.treasureCount.players[data.player]; | ||||
var goalCount = this.treasureCount.maximum / 2 + 1; | var goalCount = this.treasureCount.maximum / 2 + 1; | ||||
var otherPlayer = (data.player == 1 ? 2 : 1); | var otherPlayer = (data.player == 1 ? 2 : 1); | ||||
// Check if having more treasures than the enemy is still possible | // Check if having more treasures than the enemy is still possible | ||||
if ( (count == this.treasureCount.maximum / 2) && | if ( (count == this.treasureCount.maximum / 2) && | ||||
(this.treasureCount.players[otherPlayer] == this.treasureCount.maximum / 2) ) | (this.treasureCount.players[otherPlayer] == this.treasureCount.maximum / 2) ) | ||||
{ | { | ||||
cmpGUIInterface.PushNotification({ | cmpGUIInterface.PushTimeNotification({ | ||||
"players": [1,2], | "players": [1,2], | ||||
"message": markForTranslation("No winner yet, prepare for battle!"), | "message": markForTranslation("No winner yet, prepare for battle!") | ||||
"translateMessage": true | |||||
}); | }); | ||||
// keep notifying the player that the victory condition has changed. | // keep notifying the player that the victory condition has changed. | ||||
this.RegisterTrigger("OnInterval", "BattleMessage", { | this.RegisterTrigger("OnInterval", "BattleMessage", { | ||||
"enabled": true, | "enabled": true, | ||||
"delay": 10000, | "delay": 10000, | ||||
"interval": 12000 | "interval": 12000 | ||||
}); | }); | ||||
} | } | ||||
else if (count >= goalCount) // Check for victory | else if (count >= goalCount) // Check for victory | ||||
{ | { | ||||
cmpGUIInterface.PushNotification({ | cmpGUIInterface.PushTimeNotification({ | ||||
"players": [otherPlayer], | "players": [otherPlayer], | ||||
"message": markForTranslation("Your enemy's treasury is filled to the brim, you lose!"), | "message": markForTranslation("Your enemy's treasury is filled to the brim, you lose!") | ||||
"translateMessage": true | |||||
}); | }); | ||||
cmpGUIInterface.PushNotification({ | cmpGUIInterface.PushTimeNotification({ | ||||
"players": [data.player], | "players": [data.player], | ||||
"message": markForTranslation("Your treasury is filled to the brim, you are victorious!"), | "message": markForTranslation("Your treasury is filled to the brim, you are victorious!") | ||||
"translateMessage": true | |||||
}); | }); | ||||
this.DoAfterDelay(5000, "Victory", data.player); | this.DoAfterDelay(5000, "Victory", data.player); | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
// Notify if the other player if a player is close to victory (3 more treasures to collect) | // Notify if the other player if a player is close to victory (3 more treasures to collect) | ||||
if (count + 3 == goalCount) | if (count + 3 == goalCount) | ||||
{ | { | ||||
cmpGUIInterface.PushNotification({ | cmpGUIInterface.PushTimeNotification({ | ||||
"players": [otherPlayer], | "players": [otherPlayer], | ||||
"message": markForTranslation("Hurry up! Your enemy is close to victory!"), | "message": markForTranslation("Hurry up! Your enemy is close to victory!") | ||||
"translateMessage": true | |||||
}); | }); | ||||
} | } | ||||
if (count + 3 >= goalCount) | if (count + 3 >= goalCount) | ||||
{ | { | ||||
var remainingTreasures = ( goalCount - count); | var remainingTreasures = ( goalCount - count); | ||||
cmpGUIInterface.PushNotification({ | cmpGUIInterface.PushTimeNotification({ | ||||
"players": [data.player], | "players": [data.player], | ||||
"parameters": {"remainingTreasures": remainingTreasures}, | |||||
"message": markForTranslation("Treasures remaining to collect for victory: %(remainingTreasures)s!"), | "message": markForTranslation("Treasures remaining to collect for victory: %(remainingTreasures)s!"), | ||||
"translateMessage": true | "parameters": { | ||||
"remainingTreasures": remainingTreasures | |||||
} | |||||
}); | }); | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
cmpGUIInterface.PushNotification({ | cmpGUIInterface.PushTimeNotification({ | ||||
"players": [data.player], | "players": [data.player], | ||||
"message": markForTranslation("You have collected a treasure!"), | "message": markForTranslation("You have collected a treasure!") | ||||
"translateMessage": true | |||||
}); | }); | ||||
} | } | ||||
} | } | ||||
}; | }; | ||||
Trigger.prototype.BattleMessage = function() | Trigger.prototype.BattleMessage = function() | ||||
{ | { | ||||
var cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface); | var cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface); | ||||
cmpGUIInterface.PushNotification({ | cmpGUIInterface.PushTimeNotification({ | ||||
"players": [1,2], | "players": [1,2], | ||||
"message": markForTranslation("Defeat your enemy to win!"), | "message": markForTranslation("Defeat your enemy to win!") | ||||
"translateMessage": true | |||||
}); | }); | ||||
}; | }; | ||||
Trigger.prototype.Victory = function(playerID) | Trigger.prototype.Victory = function(playerID) | ||||
{ | { | ||||
TriggerHelper.SetPlayerWon( | TriggerHelper.SetPlayerWon( | ||||
playerID, | playerID, | ||||
n => markForPluralTranslation( | n => markForPluralTranslation( | ||||
Show All 16 Lines |
Wildfire Games · Phabricator