Faction Test 100.13.0.0
This commit is contained in:
+39
-16
@@ -83,6 +83,7 @@ namespace Barotrauma
|
||||
GUIListBox conversationList = lastMessageBox.FindChild("conversationlist", true) as GUIListBox;
|
||||
Debug.Assert(conversationList != null);
|
||||
|
||||
DisableButtons(conversationList.Content.GetAllChildren<GUIButton>(), selectedButton: null);
|
||||
// gray out the last text block
|
||||
if (conversationList.Content.Children.LastOrDefault() is GUILayoutGroup lastElement)
|
||||
{
|
||||
@@ -269,14 +270,7 @@ namespace Barotrauma
|
||||
if (actionInstance != null)
|
||||
{
|
||||
actionInstance.selectedOption = selectedOption;
|
||||
foreach (GUIButton otherButton in optionButtons)
|
||||
{
|
||||
otherButton.CanBeFocused = false;
|
||||
if (otherButton != btn)
|
||||
{
|
||||
otherButton.TextBlock.OverrideTextColor(Color.DarkGray * 0.8f);
|
||||
}
|
||||
}
|
||||
DisableButtons(optionButtons, btn);
|
||||
btn.ExternalHighlight = true;
|
||||
return true;
|
||||
}
|
||||
@@ -286,14 +280,7 @@ namespace Barotrauma
|
||||
SendResponse(actionId.Value, selectedOption);
|
||||
btn.CanBeFocused = false;
|
||||
btn.ExternalHighlight = true;
|
||||
foreach (GUIButton otherButton in optionButtons)
|
||||
{
|
||||
otherButton.CanBeFocused = false;
|
||||
if (otherButton != btn)
|
||||
{
|
||||
otherButton.TextBlock.OverrideTextColor(Color.DarkGray * 0.8f);
|
||||
}
|
||||
}
|
||||
DisableButtons(optionButtons, btn);
|
||||
return true;
|
||||
}
|
||||
//should not happen
|
||||
@@ -305,6 +292,18 @@ namespace Barotrauma
|
||||
}
|
||||
}
|
||||
|
||||
public static void SelectOption(ushort actionId, int option)
|
||||
{
|
||||
if (lastMessageBox.UserData is Pair<string, ushort> userData)
|
||||
{
|
||||
if (userData.Second != actionId) { return; }
|
||||
|
||||
GUIListBox conversationList = lastMessageBox.FindChild("conversationlist", true) as GUIListBox;
|
||||
Debug.Assert(conversationList != null);
|
||||
DisableButtons(conversationList.Content.GetAllChildren<GUIButton>(), (btn) => btn.UserData is int i && i == option);
|
||||
}
|
||||
}
|
||||
|
||||
private static Tuple<Vector2, Point> GetSizes(DialogTypes dialogTypes)
|
||||
{
|
||||
return dialogTypes switch
|
||||
@@ -383,6 +382,30 @@ namespace Barotrauma
|
||||
return buttons;
|
||||
}
|
||||
|
||||
private static void DisableButtons(IEnumerable<GUIButton> buttons, GUIButton selectedButton)
|
||||
{
|
||||
DisableButtons(buttons, (btn) => btn == selectedButton);
|
||||
}
|
||||
|
||||
private static void DisableButtons(IEnumerable<GUIButton> buttons, Func<GUIButton, bool> isSelectedButton)
|
||||
{
|
||||
foreach (GUIButton btn in buttons)
|
||||
{
|
||||
if (btn.CanBeFocused)
|
||||
{
|
||||
btn.CanBeFocused = false;
|
||||
if (isSelectedButton(btn))
|
||||
{
|
||||
btn.Selected = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
btn.TextBlock.OverrideTextColor(Color.DarkGray * 0.8f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void SendResponse(UInt16 actionId, int selectedOption)
|
||||
{
|
||||
IWriteMessage outmsg = new WriteOnlyMessage();
|
||||
|
||||
Reference in New Issue
Block a user