Ryan F. Mercer
Whys
Version 1
This mod allows concurrent mods to share the DiploCorner drop down menu (top-right of main-screen), so button options can be neatly listed together without merging mods. However, this mod will conflict with any other mod that changes the DiploCorner panel, so it's useful to have this available as a separate support mod. For example, Mod List (addin) - version 4, will use the DiploCornerAddin-standard when available, but does not implement the standard itself so as to remain compatible with all mods. If another mod, such as this one, implements the standard, then Mod List (addin) uses it automatically.
If using this mod conflicts with another mod you are using and that mod does not implement the DiploCornerAddin-standard, please ask that developer to consider implementing it.
DiploCornerAddin-standard by alpaca: http://tiny.cc/psux2
--Lua code by alpaca, distributed by Whys.
DiploCorner.lua
DiploCorner.xml
This mod allows concurrent mods to share the DiploCorner drop down menu (top-right of main-screen), so button options can be neatly listed together without merging mods. However, this mod will conflict with any other mod that changes the DiploCorner panel, so it's useful to have this available as a separate support mod. For example, Mod List (addin) - version 4, will use the DiploCornerAddin-standard when available, but does not implement the standard itself so as to remain compatible with all mods. If another mod, such as this one, implements the standard, then Mod List (addin) uses it automatically.
If using this mod conflicts with another mod you are using and that mod does not implement the DiploCornerAddin-standard, please ask that developer to consider implementing it.
DiploCornerAddin-standard by alpaca: http://tiny.cc/psux2
--Lua code by alpaca, distributed by Whys.
DiploCorner.lua
Spoiler :
Code:
-------------------------------------------------
-- Diplomacy and Advisors Buttons that float out in the screen
-------------------------------------------------
include( "IconSupport" );
include( "SupportFunctions" );
include( "InstanceManager" );
local g_ChatInstances = {};
local g_iChatTeam = -1;
local g_iChatPlayer = -1;
local g_iLocalPlayer = Game.GetActivePlayer();
local g_pLocalPlayer = Players[ g_iLocalPlayer ];
local g_iLocalTeam = g_pLocalPlayer:GetTeam();
local g_pLocalTeam = Teams[ g_iLocalTeam ];
local g_SortTable;
local m_bChatOpen = not Controls.ChatPanel:IsHidden();
-------------------------------------------------
-------------------------------------------------
local g_MultiPullInfo = {};
g_MultiPullInfo[0] = { text="TXT_KEY_ADVISOR_SCREEN_TECH_TREE_DISPLAY", call=function() Events.SerialEventGameMessagePopup( { Type = ButtonPopupTypes.BUTTONPOPUP_TECH_TREE } ); end };
g_MultiPullInfo[1] = { text="TXT_KEY_DIPLOMACY_OVERVIEW", call=function() Events.SerialEventGameMessagePopup( { Type = ButtonPopupTypes.BUTTONPOPUP_DIPLOMATIC_OVERVIEW } ); end };
g_MultiPullInfo[2] = { text="TXT_KEY_MILITARY_OVERVIEW", call=function() Events.SerialEventGameMessagePopup( { Type = ButtonPopupTypes.BUTTONPOPUP_MILITARY_OVERVIEW } ); end };
g_MultiPullInfo[3] = { text="TXT_KEY_ECONOMIC_OVERVIEW", call=function() Events.SerialEventGameMessagePopup( { Type = ButtonPopupTypes.BUTTONPOPUP_ECONOMIC_OVERVIEW } ); end };
g_MultiPullInfo[4] = { text="TXT_KEY_VP_TT", call=function() Events.SerialEventGameMessagePopup( { Type = ButtonPopupTypes.BUTTONPOPUP_VICTORY_INFO} ); end };
g_MultiPullInfo[5] = { text="TXT_KEY_DEMOGRAPHICS", call=function() Events.SerialEventGameMessagePopup( { Type = ButtonPopupTypes.BUTTONPOPUP_DEMOGRAPHICS} ); end };
g_MultiPullInfo[6] = { text="TXT_KEY_POP_NOTIFICATION_LOG", call=function() Events.SerialEventGameMessagePopup( { Type = ButtonPopupTypes.BUTTONPOPUP_NOTIFICATION_LOG, Data1 = Game.GetActivePlayer() } ); end };
--alpaca
function meh(tab)
g_MultiPullInfo[#g_MultiPullInfo + 1] = tab
end
LuaEvents.DiploCornerAddin.Add(meh)
addins = {}
-- handle DiploCornerAddins
for addin in Modding.GetActivatedModEntryPoints("DiploCornerAddin") do
local addinFile = addin.File;
-- Get the absolute path and filename without extension.
local extension = Path.GetExtension(addinFile);
local path = string.sub(addinFile, 1, #addinFile - #extension);
ptr = ContextPtr:LoadNewContext(path)
table.insert(addins, ptr)
end
--/alpaca
local controlTable;
local sizeY = 92
for i = 0, #g_MultiPullInfo do
controlTable = {};
Controls.MultiPull:BuildEntry( "InstanceOne", controlTable );
controlTable.Button:LocalizeAndSetText( g_MultiPullInfo[i].text );
controlTable.Button:LocalizeAndSetToolTip( g_MultiPullInfo[i].tip );
controlTable.Button:SetVoid1( i );
sizeY = sizeY + controlTable.Button:GetSizeY()
end
Controls.MultiPullBox:SetSizeY(sizeY)
Controls.MultiPull:CalculateInternals();
-------------------------------------------------
-------------------------------------------------
function OnMultiPull( id )
g_MultiPullInfo[id].call();
end
Controls.MultiPull:RegisterSelectionCallback( OnMultiPull );
-------------------------------------------------
-------------------------------------------------
function OnAdvisorButton()
local popupInfo = {
Type = ButtonPopupTypes.BUTTONPOPUP_ADVISOR_COUNSEL,
}
Events.SerialEventGameMessagePopup(popupInfo);
end
Controls.AdvisorButton:RegisterCallback( Mouse.eLClick, OnAdvisorButton );
-------------------------------------------------
-------------------------------------------------
function OnAdvisorButtonR()
LuaEvents.AdvisorButtonEvent( Mouse.eRClick );
end
Controls.AdvisorButton:RegisterCallback( Mouse.eRClick, OnAdvisorButtonR );
-------------------------------------------------
-- On ChatToggle
-------------------------------------------------
function OnChatToggle()
m_bChatOpen = not m_bChatOpen;
if( m_bChatOpen ) then
Controls.ChatPanel:SetHide( false );
Controls.ChatToggle:SetTexture( "assets/UI/Art/Icons/MainChatOn.dds" );
Controls.HLChatToggle:SetTexture( "assets/UI/Art/Icons/MainChatOffHL.dds" );
Controls.MOChatToggle:SetTexture( "assets/UI/Art/Icons/MainChatOff.dds" );
else
Controls.ChatPanel:SetHide( true );
Controls.ChatToggle:SetTexture( "assets/UI/Art/Icons/MainChatOff.dds" );
Controls.HLChatToggle:SetTexture( "assets/UI/Art/Icons/MainChatOnHL.dds" );
Controls.MOChatToggle:SetTexture( "assets/UI/Art/Icons/MainChatOn.dds" );
end
LuaEvents.ChatShow( m_bChatOpen );
end
Controls.ChatToggle:RegisterCallback( Mouse.eLClick, OnChatToggle );
-------------------------------------------------
-------------------------------------------------
local bFlipper = false;
function OnChat( fromPlayer, toPlayer, text, eTargetType )
local controlTable = {};
ContextPtr:BuildInstanceForControl( "ChatEntry", controlTable, Controls.ChatStack );
table.insert( g_ChatInstances, controlTable );
if( #g_ChatInstances > 100 ) then
Controls.ChatStack:ReleaseChild( g_ChatInstances[ 1 ].Box );
table.remove( g_ChatInstances, 1 );
end
TruncateString( controlTable.String, 200, Players[fromPlayer]:GetNickName() );
local fromName = controlTable.String:GetText();
if( eTargetType == ChatTargetTypes.CHATTARGET_TEAM ) then
controlTable.String:SetColorByName( "Green_Chat" );
controlTable.String:SetText( fromName .. ": " .. text );
elseif( eTargetType == ChatTargetTypes.CHATTARGET_PLAYER ) then
local toName;
if( toPlayer == g_iLocalPlayer ) then
toName = Locale.ConvertTextKey( "TXT_KEY_YOU" );
else
TruncateString( controlTable.String, 200, Players[toPlayer]:GetNickName() );
toName = Locale.ConvertTextKey( "TXT_KEY_DIPLO_TO_PLAYER", controlTable.String:GetText() );
end
controlTable.String:SetText( fromName .. " (" .. toName .. "): " .. text );
controlTable.String:SetColorByName( "Magenta_Chat" );
elseif( fromPlayer == g_iLocalPlayer ) then
controlTable.String:SetColorByName( "Gray_Chat" );
controlTable.String:SetText( fromName .. ": " .. text );
else
controlTable.String:SetText( fromName .. ": " .. text );
end
controlTable.Box:SetSizeY( controlTable.String:GetSizeY() + 8 );
controlTable.Box:ReprocessAnchoring();
if( bFlipper ) then
controlTable.Box:SetColorChannel( 3, 0.4 );
end
bFlipper = not bFlipper;
Events.AudioPlay2DSound( "AS2D_IF_MP_CHAT_DING" );
Controls.ChatStack:CalculateSize();
Controls.ChatScroll:CalculateInternalSize();
Controls.ChatScroll:SetScrollValue( 1 );
end
Events.GameMessageChat.Add( OnChat );
-------------------------------------------------
-------------------------------------------------
function SendChat( text )
if( string.len( text ) > 0 ) then
Network.SendChat( text, g_iChatTeam, g_iChatPlayer );
end
Controls.ChatEntry:ClearString();
end
Controls.ChatEntry:RegisterCallback( SendChat );
-------------------------------------------------
-------------------------------------------------
function ShowHideHandler( bIsHide )
Controls.CornerAnchor:SetHide( false );
end
ContextPtr:SetShowHideHandler( ShowHideHandler );
-------------------------------------------------
-------------------------------------------------
function InputHandler( uiMsg, wParam, lParam )
if( m_bChatOpen
and uiMsg == KeyEvents.KeyUp
and wParam == Keys.VK_TAB ) then
Controls.ChatEntry:TakeFocus();
return true;
end
end
ContextPtr:SetInputHandler( InputHandler );
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
function OnSocialPoliciesClicked()
Events.SerialEventGameMessagePopup( { Type = ButtonPopupTypes.BUTTONPOPUP_CHOOSEPOLICY } );
end
Controls.SocialPoliciesButton:RegisterCallback( Mouse.eLClick, OnSocialPoliciesClicked );
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
function OnDiploClicked()
Controls.DiploList:SetHide( not Controls.DiploList:IsHidden() );
-- Events.SerialEventGameMessagePopup( { Type = ButtonPopupTypes.BUTTONPOPUP_DIPLOMACY } );
end
Controls.DiploButton:RegisterCallback( Mouse.eLClick, OnDiploClicked );
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
function OnOpenPlayerDealScreen( iOtherPlayer )
local iUs = Game.GetActivePlayer();
local iUsTeam = Players[ iUs ]:GetTeam();
local pUsTeam = Teams[ iUsTeam ];
print( "here" );
-- any time we're legitimately opening the pvp deal screen, make sure we hide the diplolist.
local iOtherTeam = Players[iOtherPlayer]:GetTeam();
local iProposalTo = UI.HasMadeProposal( iUs );
-- this logic should match OnOpenPlayerDealScreen in TradeLogic.lua
if( (pUsTeam:IsAtWar( iOtherTeam ) and (g_bAlwaysWar or g_bNoChangeWar) ) or
(iProposalTo ~= -1 and iProposalTo ~= iOtherPlayer) ) then
-- do nothing
return;
else
Controls.CornerAnchor:SetHide( true );
end
print( "hiding corner anchor for OpenPlayerDealScreenEvent" );
end
Events.OpenPlayerDealScreenEvent.Add( OnOpenPlayerDealScreen );
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
function OnChatTarget( iTeam, iPlayer )
g_iChatTeam = iTeam;
g_iChatPlayer = iPlayer;
print("in chat target");
if( iTeam ~= -1 ) then
TruncateString( Controls.LengthTest, Controls.ChatPull:GetSizeX(), Locale.ConvertTextKey("TXT_KEY_DIPLO_TO_TEAM"));
Controls.ChatPull:GetButton():SetText( Controls.LengthTest:GetText() );
else
if( iPlayer ~= -1 ) then
TruncateString( Controls.LengthTest, Controls.ChatPull:GetSizeX(), Locale.ConvertTextKey("TXT_KEY_DIPLO_TO_PLAYER", Players[ iPlayer ]:GetNickName()));
Controls.ChatPull:GetButton():SetText( Controls.LengthTest:GetText() );
else
Controls.ChatPull:GetButton():LocalizeAndSetText( "TXT_KEY_DIPLO_TO_ALL" );
end
end
end
Controls.ChatPull:RegisterSelectionCallback( OnChatTarget );
-------------------------------------------------------
-------------------------------------------------------
function PopulateChatPull()
Controls.ChatPull:ClearEntries();
-------------------------------------------------------
-- Add All Entry
local controlTable = {};
Controls.ChatPull:BuildEntry( "InstanceOne", controlTable );
controlTable.Button:SetVoids( -1, -1 );
local textControl = controlTable.Button:GetTextControl();
textControl:LocalizeAndSetText( "TXT_KEY_DIPLO_TO_ALL" );
-------------------------------------------------------
-- See if Team has more than 1 other human member
local iTeamCount = 0;
for iPlayer = 0, GameDefines.MAX_PLAYERS do
local pPlayer = Players[iPlayer];
if( iPlayer ~= g_iLocalPlayer and pPlayer ~= nil and pPlayer:IsHuman() and pPlayer:GetTeam() == g_iLocalTeam ) then
iTeamCount = iTeamCount + 1;
end
end
if( iTeamCount > 0 ) then
local controlTable = {};
Controls.ChatPull:BuildEntry( "InstanceOne", controlTable );
controlTable.Button:SetVoids( g_iLocalTeam, -1 );
local textControl = controlTable.Button:GetTextControl();
textControl:LocalizeAndSetText( "TXT_KEY_DIPLO_TO_TEAM" );
end
-------------------------------------------------------
-- Humans
for iPlayer = 0, GameDefines.MAX_PLAYERS do
local pPlayer = Players[iPlayer];
if( iPlayer ~= g_iLocalPlayer and pPlayer ~= nil and pPlayer:IsHuman() ) then
controlTable = {};
Controls.ChatPull:BuildEntry( "InstanceOne", controlTable );
controlTable.Button:SetVoids( -1, iPlayer );
textControl = controlTable.Button:GetTextControl();
TruncateString( textControl, Controls.ChatPull:GetSizeX()-20, Locale.ConvertTextKey("TXT_KEY_DIPLO_TO_PLAYER", pPlayer:GetNickName()));
end
end
Controls.ChatPull:GetButton():LocalizeAndSetText( "TXT_KEY_DIPLO_TO_ALL" );
Controls.ChatPull:CalculateInternals();
end
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
function DoUpdateUNCountdown()
local iUNCountdown = Game.GetUnitedNationsCountdown();
if (iUNCountdown ~= 0 and Game.GetGameState() == GameplayGameStateTypes.GAMESTATE_ON ) then
Controls.UNTurnsLabel:SetText(iUNCountdown);
Controls.UNTurnsLabel:SetHide(false);
Controls.DiploButton:SetToolTipString(Locale.ConvertTextKey("TXT_KEY_EO_DIPLOMACY_AND_UN_VOTE", iUNCountdown));
else
Controls.UNTurnsLabel:SetHide(true)
Controls.DiploButton:SetToolTipString(Locale.ConvertTextKey("TXT_KEY_EO_DIPLOMACY"));
end
end
Events.SerialEventGameDataDirty.Add(DoUpdateUNCountdown);
-- Also call it once so it starts correct - surprisingly enough, GameData isn't dirtied as we're loading a game
DoUpdateUNCountdown();
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
m_TeamTable = {};
if( Game.IsGameMultiPlayer() ) then
PopulateChatPull();
Controls.ChatToggle:SetHide( false );
OnChatToggle();
end
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
function OnEndGameButton()
local which = math.random( 1, 6 );
if( which == 1 ) then Events.EndGameShow( EndGameTypes.Technology, Game.GetActivePlayer() );
elseif( which == 2 ) then Events.EndGameShow( EndGameTypes.Domination, Game.GetActivePlayer() );
elseif( which == 3 ) then Events.EndGameShow( EndGameTypes.Culture, Game.GetActivePlayer() );
elseif( which == 4 ) then Events.EndGameShow( EndGameTypes.Diplomatic, Game.GetActivePlayer() );
elseif( which == 5 ) then Events.EndGameShow( EndGameTypes.Time, Game.GetActivePlayer() );
elseif( which == 6 ) then Events.EndGameShow( EndGameTypes.Time, Game.GetActivePlayer() + 1 );
end
end
Controls.EndGameButton:RegisterCallback( Mouse.eLClick, OnEndGameButton );
DiploCorner.xml
Spoiler :
Code:
<?xml version="1.0" encoding="utf-8"?>
<Context ColorSet="Beige_Black_Alpha" FontStyle="Shadow" Font="TwCenMT16" >
<Stack Offset="0,30" Padding="0" Anchor="R,T" StackGrowth="Bottom" >
<!-- CHAT PANEL GridGlass16 Max Size="505,520" -->
<Grid Size="523,170" Anchor="R,T" Padding="0,0" Style="GridGlass16" ConsumeMouseButton="1" ConsumeMouseOver="1" ID="ChatPanel" Hidden="1" >
<!-- Chat ScrollPanel Max Size="464,493" -->
<ScrollPanel Anchor="L,T" Offset="12,2" Size="490,134" Vertical="1" ID="ChatScroll" AutoScrollBar="1" >
<Stack Anchor="L,T" Offset="0,0" StackGrowth="Bottom" Padding="0" ID="ChatStack" />
<!-- Chat ScrollBar Max Length="500" -->
<ScrollBar Offset="0.0" Style="VertSlider" Anchor="R,C" AnchorSide="O,I" Length="98" />
<UpButton Offset="0.0" Style="ScrollBarUp" Anchor="R,T" AnchorSide="O,I" />
<DownButton Offset="0.0" Style="ScrollBarDown" Anchor="R,B" AnchorSide="O,I" />
</ScrollPanel>
<!-- Chat Grid9Detail48 Max Size="523,540"-->
<Grid Size="543,190" Anchor="R,T" Offset="-15,-15" Padding="0,0" Style="Grid9Detail48" />
<Box Anchor="L,B" Size="513,30" Offset="10.1" Color="0,0,0,255" >
<Box Anchor="L,T" Size="513,1" Offset="0.0" Color="255,255,200,255"/>
<PullDown Anchor="L,C" Style="GenericPullDown" ScrollThreshold="200" SpaceForScroll="0" Size="136,26" ID="ChatPull" >
<Label ID="LengthTest" Anchor="L,C" Offset="0,0" Font="TwCenMT20" FontStyle="SoftShadow" Hidden="1"/>
<Box Anchor="R,C" AnchorSide="O,I" Offset="4,0" Size="366,18" Color="255,255,200,255" >
<Box Anchor="C,C" Offset="0,0" Size="364,16" Color="0,0,0,255" >
<EditBox Offset="1,0" MaxLength="255" Size="364,16" Anchor="C,C" Font="TwCenMT14" ID="ChatEntry" />
</Box>
</Box>
</PullDown>
</Box>
</Grid>
<Container Size="10,1" Anchor="R,T" Offset="0,-1" >
<LuaContext FileName="Assets/UI/InGame/DiploList" ID="DiploList" Hidden="1" Anchor="R,T" Offset="-11,-40" />
<!-- Corner Treatment -->
<Image Anchor="R,T" Texture="assets\UI\Art\WorldView\TopRight020.dds" Offset="0,0" Size="512,128" ID="CornerAnchor" >
<!-- Info Buttons Stack -->
<Stack Anchor="R,T" Offset="0,0" StackGrowth="Left" Padding="-12" >
<!--=======================================================================================================================-->
<!-- Diplo Button -->
<!--=======================================================================================================================-->
<Button ConsumeMouse="1" Anchor="C,T" Size="80,80" Offset="0,0" Texture="assets\UI\Art\Notification\diplomacybase.dds" ID="DiploButton" ToolTip="TXT_KEY_EO_DIPLOMACY" Hidden="0" >
<ShowOnMouseOver>
<Image Anchor="C,C" Offset="0,0" Size="80,80" Texture="assets\UI\Art\Notification\diplomacybase.dds" />
<AlphaAnim Anchor="C,C" AnchorSide="O.O" Offset="0,0" Size="80,80" Texture="assets\UI\Art\Notification\diplomacyhl.dds" Pause="0" Cycle="Bounce" Speed="1" AlphaStart="1" AlphaEnd="0" Hidden="0"/>
</ShowOnMouseOver>
<Label Anchor="C,C" Offset="0,4" Font="TwCenMT20" FontStyle="Stroke" ID="UNTurnsLabel" Hidden="1"/>
</Button>
<!--=======================================================================================================================-->
<!-- Advisor Button -->
<!--=======================================================================================================================-->
<Button ConsumeMouse="1" ID="AdvisorButton" Anchor="C,T" Size="80,80" Offset="0,0" Texture="assets\UI\Art\Notification\NotificationIconsAdvisor.dds" ToolTip="TXT_KEY_DIPLO_OPEN_ADVISORS_TT" Hidden="0" >
<ShowOnMouseOver>
<Image Anchor="C,C" Offset="0,0" Size="80,80" Texture="assets\UI\Art\Notification\NotificationIconsAdvisor.dds" />
<AlphaAnim Anchor="C,C" AnchorSide="O.O" Offset="0,0" Size="80,80" Texture="assets\UI\Art\Notification\NotificationIconsAdvisorHL.dds" Pause="0" Cycle="Bounce" Speed="1" AlphaStart="1" AlphaEnd="0" Hidden="0"/>
</ShowOnMouseOver>
</Button>
<!--=======================================================================================================================-->
<!-- Social Policy Button -->
<!--=======================================================================================================================-->
<Button ConsumeMouse="1" Anchor="C,T" Size="80,80" Offset="0,0" Texture="assets\UI\Art\Notification\NotificationFrameBase.dds" ID="SocialPoliciesButton" ToolTip="TXT_KEY_DIPLO_OPEN_SOCIAL_POLICY_TT" Hidden="0" >
<ShowOnMouseOver>
<Image Anchor="C,C" Offset="0,0" Size="80,80" Texture="assets\UI\Art\Notification\NotificationFrameBase.dds" />
<AlphaAnim Anchor="C,C" AnchorSide="O.O" Offset="0,0" Size="80,80" Texture="assets\UI\Art\Notification\NotificationFrameGlow2.dds" Pause="0" Cycle="Bounce" Speed="1" AlphaStart="1" AlphaEnd="0" Hidden="0"/>
</ShowOnMouseOver>
<Image Anchor="C,C" Offset="0,0" Size="80,80" Texture="assets\UI\Art\Notification\SocialPolicy80.dds" />
<!-- ACTIVE STATE -->
<AlphaAnim Anchor="C,C" AnchorSide="O.O" Offset="0,0" Size="80,80" Texture="assets\UI\Art\Notification\SocialPolicyActive80.dds" Pause="0" Cycle="Bounce" Speed="1" AlphaStart="1" AlphaEnd="0" Hidden="1"/>
</Button>
<!--=======================================================================================================================-->
<!-- Notification Log DropDownButtons -->
<!--=======================================================================================================================-->
<PullDown ConsumeMouse="1" Offset="-6,0" Anchor="R,T" Size="45,45" AutoSizePopUp="0" SpaceForScroll="0" ScrollThreshold="900" ID="MultiPull" >
<ButtonData>
<Button Anchor="R,T" Size="45.45" Texture="assets\UI\Art\Notification\NotificationNotes.dds" ToolTip="TXT_KEY_DIPLO_ADDITIONAL" >
<ShowOnMouseOver>
<Image Anchor="R,T" Offset="0,0" Size="45.45" Texture="assets\UI\Art\Notification\NotificationNotes.dds" />
<AlphaAnim Anchor="R,T" Offset="0,0" Size="45.45" TextureOffset="0.0" Texture="assets\UI\Art\Notification\NotificationNotesHL.dds" Pause="0" Cycle="Bounce" Speed="2" AlphaStart="0.95" AlphaEnd="0.55"/>
</ShowOnMouseOver>
</Button>
</ButtonData>
<GridData Anchor="L,T" Offset="-24.-41" AnchorSide="O,I" Style="Grid9DetailTwo140" Padding="0,0" >
<Box Color="Black.0" Size="200.260" ID="MultiPullBox"/>
</GridData>
<ScrollPanelData Anchor="C,C" Vertical="1" />
<StackData StackGrowth="Bottom" Padding="0" Anchor="C,T" />
<InstanceData Name="InstanceOne" >
<Button Size="180.24" Anchor="C,C" ID="Button" >
<ShowOnMouseOver>
<AlphaAnim Anchor="C,C" Offset="0,0" Size="180,24" Pause="0" Cycle="Bounce" Speed="1" AlphaStart="1" AlphaEnd="0">
<Grid Size="180,26" Offset="0,0" Padding="0,0" Style="Grid9FrameTurns" />
</AlphaAnim>
</ShowOnMouseOver>
</Button>
</InstanceData>
</PullDown>
<Button ConsumeMouse="1" ID="ChatToggle" Hidden="1" Anchor="R,T" Size="45.45" Offset="-10,0" Texture="assets\UI\Art\Icons\MainChatOff.dds" ToolTip="TXT_KEY_DIPLO_CLOSE_CHAT_TT">
<ShowOnMouseOver>
<Image Anchor="R,T" Offset="0,0" Size="45.45" Texture="assets\UI\Art\Icons\MainChatOn.dds" ID="MOChatToggle" />
<AlphaAnim Anchor="R,T" Offset="0,0" Size="45.45" TextureOffset="0.0" ID="HLChatToggle" Texture="assets\UI\Art\Icons\MainChatOnHL.dds" Pause="0" Cycle="Bounce" Speed="2" AlphaStart="0.95" AlphaEnd="0.55"/>
</ShowOnMouseOver>
</Button>
<Button Offset="-100,0" Anchor="R,T" Size="45.45" Texture="assets\UI\Art\Notification\NotificationNotes.dds" ToolTip="Publish a bogus ShowEndGame for testing" ID="EndGameButton" Hidden="1" >
<ShowOnMouseOver>
<Image Anchor="R,T" Offset="0,0" Size="45.45" Texture="assets\UI\Art\Notification\NotificationNotes.dds" />
<AlphaAnim Anchor="R,T" Offset="0,0" Size="45.45" TextureOffset="0.0" Texture="assets\UI\Art\Notification\NotificationNotesHL.dds" Pause="0" Cycle="Bounce" Speed="2" AlphaStart="0.95" AlphaEnd="0.55"/>
</ShowOnMouseOver>
</Button>
</Stack>
</Image>
<LuaContext FileName="Assets/UI/InGame/WorldView/SimpleDiploTrade" ID="SimpleDiplo" Hidden="1" Anchor="R,T" Offset="0,-5" />
</Container>
</Stack>
<Instance Name="ChatEntry" >
<Box Anchor="L,T" Size="490,32" Color="0,0,0,164" ID="Box" >
<Label Anchor="L,C" Offset="3,0" WrapWidth="465" LeadingOffset="-4" Font="TwCenMT16" ColorSet="Beige_Black_Alpha" FontStyle="Shadow" ID="String" />
</Box>
</Instance>
</Context>