(a6f17618b) Allow canceling repairs in the campaign menu, fixed credits not being displayed in the repair tab

This commit is contained in:
Joonas Rikkonen
2019-04-17 12:43:11 +03:00
parent ee2326db63
commit 8c8f03ae25
2 changed files with 53 additions and 21 deletions
@@ -230,7 +230,7 @@ namespace Barotrauma
RelativeSpacing = 0.05f, RelativeSpacing = 0.05f,
Stretch = true Stretch = true
}; };
new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.2f), crewContent.RectTransform), "", font: GUI.LargeFont) new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.2f), repairContent.RectTransform), "", font: GUI.LargeFont)
{ {
TextGetter = GetMoney TextGetter = GetMoney
}; };
@@ -253,15 +253,23 @@ namespace Barotrauma
repairHullsButton = new GUIButton(new RectTransform(new Vector2(0.4f, 0.3f), repairHullsHolder.RectTransform), TextManager.Get("Repair"), style: "GUIButtonLarge") repairHullsButton = new GUIButton(new RectTransform(new Vector2(0.4f, 0.3f), repairHullsHolder.RectTransform), TextManager.Get("Repair"), style: "GUIButtonLarge")
{ {
OnClicked = (btn, userdata) => OnClicked = (btn, userdata) =>
{
if (campaign.PurchasedHullRepairs)
{
campaign.Money += CampaignMode.HullRepairCost;
campaign.PurchasedHullRepairs = false;
}
else
{ {
if (campaign.Money >= CampaignMode.HullRepairCost) if (campaign.Money >= CampaignMode.HullRepairCost)
{ {
campaign.Money -= CampaignMode.HullRepairCost; campaign.Money -= CampaignMode.HullRepairCost;
campaign.PurchasedHullRepairs = true; campaign.PurchasedHullRepairs = true;
GameMain.Client?.SendCampaignState();
btn.GetChild<GUITickBox>().Selected = true;
} }
btn.Enabled = false; }
GameMain.Client?.SendCampaignState();
btn.GetChild<GUITickBox>().Selected = campaign.PurchasedHullRepairs;
return true; return true;
} }
}; };
@@ -288,15 +296,23 @@ namespace Barotrauma
repairItemsButton = new GUIButton(new RectTransform(new Vector2(0.4f, 0.3f), repairItemsHolder.RectTransform), TextManager.Get("Repair"), style: "GUIButtonLarge") repairItemsButton = new GUIButton(new RectTransform(new Vector2(0.4f, 0.3f), repairItemsHolder.RectTransform), TextManager.Get("Repair"), style: "GUIButtonLarge")
{ {
OnClicked = (btn, userdata) => OnClicked = (btn, userdata) =>
{
if (campaign.PurchasedItemRepairs)
{
campaign.Money += CampaignMode.ItemRepairCost;
campaign.PurchasedItemRepairs = false;
}
else
{ {
if (campaign.Money >= CampaignMode.ItemRepairCost) if (campaign.Money >= CampaignMode.ItemRepairCost)
{ {
campaign.Money -= CampaignMode.ItemRepairCost; campaign.Money -= CampaignMode.ItemRepairCost;
campaign.PurchasedItemRepairs = true; campaign.PurchasedItemRepairs = true;
GameMain.Client?.SendCampaignState();
btn.GetChild<GUITickBox>().Selected = true;
} }
btn.Enabled = false; }
GameMain.Client?.SendCampaignState();
btn.GetChild<GUITickBox>().Selected = campaign.PurchasedItemRepairs;
return true; return true;
} }
}; };
@@ -747,11 +763,11 @@ namespace Barotrauma
{ {
case Tab.Repair: case Tab.Repair:
repairHullsButton.Enabled = repairHullsButton.Enabled =
!Campaign.PurchasedHullRepairs && Campaign.Money >= CampaignMode.HullRepairCost && (Campaign.PurchasedHullRepairs || Campaign.Money >= CampaignMode.HullRepairCost) &&
(GameMain.Client == null || GameMain.Client.HasPermission(Networking.ClientPermissions.ManageCampaign)); (GameMain.Client == null || GameMain.Client.HasPermission(Networking.ClientPermissions.ManageCampaign));
repairHullsButton.GetChild<GUITickBox>().Selected = Campaign.PurchasedHullRepairs; repairHullsButton.GetChild<GUITickBox>().Selected = Campaign.PurchasedHullRepairs;
repairItemsButton.Enabled = repairItemsButton.Enabled =
!Campaign.PurchasedItemRepairs && Campaign.Money >= CampaignMode.ItemRepairCost && (Campaign.PurchasedItemRepairs || Campaign.Money >= CampaignMode.ItemRepairCost) &&
(GameMain.Client == null || GameMain.Client.HasPermission(Networking.ClientPermissions.ManageCampaign)); (GameMain.Client == null || GameMain.Client.HasPermission(Networking.ClientPermissions.ManageCampaign));
repairItemsButton.GetChild<GUITickBox>().Selected = Campaign.PurchasedItemRepairs; repairItemsButton.GetChild<GUITickBox>().Selected = Campaign.PurchasedItemRepairs;
break; break;
@@ -212,16 +212,32 @@ namespace Barotrauma
return; return;
} }
if (purchasedHullRepairs && !this.PurchasedHullRepairs && Money >= HullRepairCost) if (purchasedHullRepairs != this.PurchasedHullRepairs)
{
if (purchasedHullRepairs && Money >= HullRepairCost)
{ {
this.PurchasedHullRepairs = true; this.PurchasedHullRepairs = true;
Money -= HullRepairCost; Money -= HullRepairCost;
} }
if (purchasedItemRepairs && !this.PurchasedItemRepairs && Money >= ItemRepairCost) else if (!purchasedHullRepairs)
{
this.PurchasedHullRepairs = false;
Money += HullRepairCost;
}
}
if (purchasedItemRepairs != this.PurchasedItemRepairs)
{
if (purchasedItemRepairs && Money >= ItemRepairCost)
{ {
this.PurchasedItemRepairs = true; this.PurchasedItemRepairs = true;
Money -= ItemRepairCost; Money -= ItemRepairCost;
} }
else if (!purchasedItemRepairs)
{
this.PurchasedItemRepairs = false;
Money += ItemRepairCost;
}
}
Map.SelectLocation(selectedLocIndex == UInt16.MaxValue ? -1 : selectedLocIndex); Map.SelectLocation(selectedLocIndex == UInt16.MaxValue ? -1 : selectedLocIndex);
if (Map.SelectedConnection != null) if (Map.SelectedConnection != null)