Ticket #2445: teambonus_withauras.5.diff

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

     
    8787    var affectedPlayers = this.auras[name].affectedPlayers || ["Player"];
    8888    this.affectedPlayers[name] = [];
    8989
    90     var cmpPlayer = QueryOwnerInterface(this.entity);
     90    var cmpPlayer = Engine.QueryInterface(this.entity, IID_Player);
    9191    if (!cmpPlayer)
     92        cmpPlayer = QueryOwnerInterface(this.entity);
     93    if (!cmpPlayer)
    9294        return;
    9395
    9496    var numPlayers = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager).GetNumPlayers();
     
    386388
    387389Auras.prototype.OnDiplomacyChanged = function(msg)
    388390{
    389     var cmpOwnership = Engine.QueryInterface(this.entity, IID_Ownership);
    390     if (cmpOwnership && cmpOwnership.GetOwner() == msg.player)
     391    var cmpPlayer = Engine.QueryInterface(this.entity, IID_Player);
     392    if (cmpPlayer && (cmpPlayer.GetPlayerID() == msg.player || cmpPlayer.GetPlayerID() == msg.otherPlayer)
     393       || IsOwnedByPlayer(msg.player, this.entity)
     394       || IsOwnedByPlayer(msg.otherPlayer, this.entity))
    391395        this.Clean();
    392396};
    393397
    394398Auras.prototype.OnGlobalResearchFinished = function(msg)
    395399{
    396     let cmpOwnership = Engine.QueryInterface(this.entity, IID_Ownership);
    397     if (!cmpOwnership || cmpOwnership.GetOwner() != msg.player)
     400    var cmpPlayer = Engine.QueryInterface(this.entity, IID_Player);
     401    if ((!cmpPlayer || cmpPlayer.GetPlayerID() != msg.player) && !IsOwnedByPlayer(msg.player, this.entity))
    398402        return;
    399403    let auraNames = this.GetAuraNames();
    400404    let needsClean = false;
  • binaries/data/mods/public/simulation/components/Player.js

     
    427427        return;
    428428
    429429    this.diplomacy[idx] = value;
    430     Engine.BroadcastMessage(MT_DiplomacyChanged, { "player": this.playerID });
     430    Engine.BroadcastMessage(MT_DiplomacyChanged, { "player": this.playerID, "otherPlayer": cmpPlayer.GetPlayerID() });
    431431
    432432    // Mutual worsening of relations
    433433    if (cmpPlayer.diplomacy[this.playerID] > value)
  • 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">iber_player_teambonus</Auras>
     4</Entity>
  • 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">sele_player_teambonus</Auras>
    34  <EntityLimits>
    45    <LimitRemovers>
    56      <CivilCentre>
    67        <RequiredTechs datatype="tokens">phase_town</RequiredTechs>
    78        <RequiredClasses datatype="tokens">Hero</RequiredClasses>