Ticket #3623: 3623.diff

File 3623.diff, 7.0 KB (added by fatherbushido, 8 years ago)

this is a wip, actually there is too many side effects on gameplay

  • binaries/data/mods/public/gui/session/diplomacy_window.xml

     
    4646                <object name="diplomacyPlayerCiv[n]" size="150 0 250 100%" type="text" style="chatPanel" ghost="true"/>
    4747                <object name="diplomacyPlayerTeam[n]" size="250 0 300 100%" type="text" style="chatPanel" ghost="true"/>
    4848                <object name="diplomacyPlayerTheirs[n]" size="300 0 360 100%" type="text" style="chatPanel" ghost="true"/>
    4949
    5050                <!-- Diplomatic stance - selection -->
    51                 <object name="diplomacyPlayerAlly[n]" size="100%-180 0 100%-160 100%" type="button" style="StoneButton" hidden="true"/>
    52                 <object name="diplomacyPlayerNeutral[n]" size="100%-160 0 100%-140 100%" type="button" style="StoneButton" hidden="true"/>
    53                 <object name="diplomacyPlayerEnemy[n]" size="100%-140 0 100%-120 100%" type="button" style="StoneButton" hidden="true"/>
     51                <object name="diplomacyPlayerAlly[n]" size="100%-200 0 100%-180 100%" type="button" style="StoneButton" hidden="true"/>
     52                <object name="diplomacyPlayerNeutral[n]" size="100%-180 0 100%-160 100%" type="button" style="StoneButton" hidden="true"/>
     53                <object name="diplomacyPlayerEnemy[n]" size="100%-160 0 100%-140 100%" type="button" style="StoneButton" hidden="true"/>
    5454
    5555                <!-- Tribute -->
    56                 <object name="diplomacyPlayerTributeFood[n]" size="100%-110 0 100%-90 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">
     56                <object name="diplomacyPlayerTributeFood[n]" size="100%-130 0 100%-110 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">
    5757                    <object name="diplomacyPlayerTributeFoodImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/food.png" ghost="true"/>
    5858                </object>
    59                 <object name="diplomacyPlayerTributeWood[n]" size="100%-90 0 100%-70 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">
     59                <object name="diplomacyPlayerTributeWood[n]" size="100%-110 0 100%-90 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">
    6060                    <object name="diplomacyPlayerTributeWoodImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/wood.png" ghost="true"/>
    6161                </object>
    62                 <object name="diplomacyPlayerTributeStone[n]" size="100%-70 0 100%-50 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">
     62                <object name="diplomacyPlayerTributeStone[n]" size="100%-90 0 100%-70 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">
    6363                    <object name="diplomacyPlayerTributeStoneImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/stone.png" ghost="true"/>
    6464                </object>
    65                 <object name="diplomacyPlayerTributeMetal[n]" size="100%-50 0 100%-30 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">
     65                <object name="diplomacyPlayerTributeMetal[n]" size="100%-70 0 100%-50 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">
    6666                    <object name="diplomacyPlayerTributeMetalImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/metal.png" ghost="true"/>
    6767                </object>
    68 
     68                <object name="diplomacyPlayerTributeEntities[n]" size="100%-50 0 100%-30 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">
     69                    <object name="diplomacyPlayerTributeEntitiesImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/population.png" ghost="true"/>
     70                </object>
    6971                <object name="diplomacyAttackRequest[n]" size="100%-20 0 100% 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">
    7072                    <object name="diplomacyAttackRequestImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/attack-request.png" ghost="true"/>
    7173                </object>
     74
    7275            </object>
    7376        </repeat>
    7477    </object>
    7578   
    7679    <object name="diplomacyCeasefireCounter" size="32 100%-90 100%-32 100%-62" type="text" style="chatPanel" ghost="true"></object>
  • binaries/data/mods/public/gui/session/menu.js

    function openDiplomacy()  
    348348            button.enabled = controlsPlayer(g_ViewedPlayer);
    349349            button.hidden = false;
    350350            button.tooltip = formatTributeTooltip(g_Players[i], resource, 100);
    351351        }
    352352
     353        //Give Entities
     354        {
     355        let button = Engine.GetGUIObjectByName("diplomacyPlayerTributeEntities["+(i-1)+"]");
     356        button.hidden = false;
     357        button.enabled = controlsPlayer(g_ViewedPlayer);
     358        button.tooltip = translate("Give selected structures");
     359        button.onpress = (function(i){ return function() {
     360            Engine.PostNetworkCommand({ "type": "give", "to": i, "entities": g_Selection.toList() });
     361            }; } )(i);
     362        }
     363
    353364        // Attack Request
     365        {
    354366        let button = Engine.GetGUIObjectByName("diplomacyAttackRequest["+(i-1)+"]");
    355367        button.hidden = isCeasefireActive || !g_Players[i].isEnemy[g_ViewedPlayer];
    356368        button.enabled = controlsPlayer(g_ViewedPlayer);
    357369        button.tooltip = translate("Request your allies to attack this enemy");
    358370        button.onpress = (function(i) { return function() {
    359371            Engine.PostNetworkCommand({ "type": "attack-request", "source": g_ViewedPlayer, "target": i });
    360372        }; })(i);
    361 
     373        }
    362374        // Skip our own teams on teams locked
    363375        if (g_Players[g_ViewedPlayer].teamsLocked && g_Players[g_ViewedPlayer].team != -1 && g_Players[g_ViewedPlayer].team == g_Players[i].team)
    364376            continue;
    365377
    366378        // Diplomacy settings
  • binaries/data/mods/public/simulation/helpers/Commands.js

    var g_Commands = {  
    101101    "tribute": function(player, cmd, data)
    102102    {
    103103        data.cmpPlayer.TributeResource(cmd.player, cmd.amounts);
    104104    },
    105105
     106    "give" : function(player, cmd, data)
     107    {
     108        let cmpPlayer = QueryPlayerIDInterface(player);
     109        let cmpPlayerTo = QueryPlayerIDInterface(cmd.to);
     110        if (!cmpPlayer || !cmpPlayerTo)
     111            return;
     112        if (cmpPlayerTo.state != "active" || cmpPlayer.state != "active")
     113            return;
     114        for (let ent of cmd.entities)
     115        {
     116            let cmpCapturable = Engine.QueryInterface(ent, IID_Capturable);
     117            if (!cmpCapturable)
     118                return
     119            let cmpOwnership = Engine.QueryInterface(ent, IID_Ownership);
     120            if (!cmpOwnership || cmpOwnership.GetOwner() != player)
     121                return;
     122            cmpOwnership.SetOwner(cmd.to);
     123        }
     124    },
     125
    106126    "control-all": function(player, cmd, data)
    107127    {
    108128        var cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
    109129        cmpGuiInterface.PushNotification({
    110130            "type": "aichat",