Ticket #2445: teambonus_withauras.3.diff

File teambonus_withauras.3.diff, 2.9 KB (added by fatherbushido, 8 years ago)
  • binaries/data/mods/public/simulation/components/Auras.js

    Auras.prototype.GetAffectedPlayers = fun  
    8484
    8585Auras.prototype.CalculateAffectedPlayers = function(name)
    8686{
    8787    var affectedPlayers = this.auras[name].affectedPlayers || ["Player"];
    8888    this.affectedPlayers[name] = [];
    89 
    90     var cmpPlayer = QueryOwnerInterface(this.entity);
     89    var cmpPlayer = QueryOwnerInterface(this.entity) || Engine.QueryInterface(this.entity, IID_Player);
    9190    if (!cmpPlayer)
    9291        return;
    93 
    9492    var numPlayers = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager).GetNumPlayers();
    9593    for (var i = 0; i < numPlayers; ++i)
    9694    {
    9795        for (let p of affectedPlayers)
    9896        {
    Auras.prototype.OnOwnershipChanged = fun  
    384382    this.Clean();
    385383};
    386384
    387385Auras.prototype.OnDiplomacyChanged = function(msg)
    388386{
    389     var cmpOwnership = Engine.QueryInterface(this.entity, IID_Ownership);
    390     if (cmpOwnership && cmpOwnership.GetOwner() == msg.player)
     387    var cmpPlayer = Engine.QueryInterface(this.entity, IID_Player);
     388    if (cmpPlayer && cmpPlayer.GetPlayerID() == msg.player || IsOwnedByPlayer(msg.player, this.entity))
    391389        this.Clean();
    392390};
    393391
    394392Auras.prototype.OnGlobalResearchFinished = function(msg)
    395393{
    396     let cmpOwnership = Engine.QueryInterface(this.entity, IID_Ownership);
    397     if (!cmpOwnership || cmpOwnership.GetOwner() != msg.player)
     394    var cmpPlayer = Engine.QueryInterface(this.entity, IID_Player);
     395    if ((!cmpPlayer || cmpPlayer.GetPlayerID() != msg.player) && !IsOwnedByPlayer(msg.player, this.entity))
    398396        return;
    399397    let auraNames = this.GetAuraNames();
    400398    let needsClean = false;
    401399    for (let name of auraNames)
    402400    {
  • binaries/data/mods/public/simulation/templates/special/player_iber.xml

     
     1<?xml version="1.0" encoding="utf-8"?>
     2<Entity parent="special/player">
     3  <Auras datatype="tokens">teambonuses/iber_player_teambonus</Auras>
     4</Entity>
     5
  • binaries/data/mods/public/simulation/templates/special/player_sele.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="special/player">
     3  <Auras datatype="tokens">teambonuses/sele_player_teambonus</Auras>
    34  <EntityLimits>
    45    <LimitRemovers>
    56      <CivilCentre>
    67        <RequiredTechs datatype="tokens">phase_town</RequiredTechs>
    78        <RequiredClasses datatype="tokens">Hero</RequiredClasses>