Ticket #1649: wonderVictory.diff

File wonderVictory.diff, 3.0 KB (added by sanderd17, 11 years ago)
  • binaries/data/mods/public/gui/gamesetup/gamesetup.js

     
    44const DEFAULT_OFFLINE_MAP = "Acropolis 01";
    55
    66// TODO: Move these somewhere like simulation\data\game_types.json, Atlas needs them too
    7 const VICTORY_TEXT = ["Conquest", "None"];
    8 const VICTORY_DATA = ["conquest", "endless"];
     7const VICTORY_TEXT = ["Conquest", "Wonder", "None"];
     8const VICTORY_DATA = ["conquest", "wonder", "endless"];
    99const VICTORY_DEFAULTIDX = 0;
    1010const POPULATION_CAP = ["50", "100", "150", "200", "250", "300", "Unlimited"];
    1111const POPULATION_CAP_DATA = [50, 100, 150, 200, 250, 300, 10000];
  • binaries/data/mods/public/simulation/components/EndGameManager.js

     
    5353    }
    5454};
    5555
     56EndGameManager.prototype.RegisterWonder = function(entity)
     57{
     58    var cmpWon = QueryOwnerInterface(entity, IID_Player);
     59    cmpWon.SetState("won");
     60   
     61    var cmpPlayerManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager);
     62    var numPlayers = cmpPlayerManager.GetNumPlayers();
     63    for (var i = 1; i < numPlayers; i++)
     64    {
     65        var playerEntityId = cmpPlayerManager.GetPlayerByID(i);
     66        var cmpPlayer = Engine.QueryInterface(playerEntityId, IID_Player);
     67        if (cmpPlayer.GetState() != "active")
     68            continue;
     69        if (this.alliedVictory && cmpPlayer.IsMutualAlly(cmpWon.GetPlayerID()))
     70            cmpPlayer.SetState("won")
     71        else
     72            Engine.PostMessage(playerEntityId, MT_PlayerDefeated, { "playerId": i-1 } );
     73    }
     74
     75}
     76
    5677EndGameManager.prototype.ProgressTimeout = function(data)
    5778{
    5879    this.UpdatePlayerStates();
     
    6788    var cmpPlayerManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager);
    6889    switch (this.gameType)
    6990    {
     91    case "wonder":
    7092    case "conquest":
    7193
    7294        // Ignore gaia
  • binaries/data/mods/public/simulation/components/Foundation.js

     
    317317        var cmpIdentity = Engine.QueryInterface(building, IID_Identity);
    318318        if (cmpIdentity.GetClassesList().indexOf("CivCentre") != -1)
    319319            cmpPlayerStatisticsTracker.IncreaseBuiltCivCentresCounter();
     320        if (cmpIdentity.GetClassesList().indexOf("Wonder") != -1)
     321        {
     322            var cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
     323            cmpEndGameManager.RegisterWonder(this.entity);
     324        }
    320325       
    321326        var cmpHealth = Engine.QueryInterface(this.entity, IID_Health);
    322327        var cmpBuildingHealth = Engine.QueryInterface(building, IID_Health);