(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
}; };
@@ -254,14 +254,22 @@ namespace Barotrauma
{ {
OnClicked = (btn, userdata) => OnClicked = (btn, userdata) =>
{ {
if (campaign.Money >= CampaignMode.HullRepairCost) if (campaign.PurchasedHullRepairs)
{ {
campaign.Money -= CampaignMode.HullRepairCost; campaign.Money += CampaignMode.HullRepairCost;
campaign.PurchasedHullRepairs = true; campaign.PurchasedHullRepairs = false;
GameMain.Client?.SendCampaignState();
btn.GetChild<GUITickBox>().Selected = true;
} }
btn.Enabled = false; else
{
if (campaign.Money >= CampaignMode.HullRepairCost)
{
campaign.Money -= CampaignMode.HullRepairCost;
campaign.PurchasedHullRepairs = true;
}
}
GameMain.Client?.SendCampaignState();
btn.GetChild<GUITickBox>().Selected = campaign.PurchasedHullRepairs;
return true; return true;
} }
}; };
@@ -289,14 +297,22 @@ namespace Barotrauma
{ {
OnClicked = (btn, userdata) => OnClicked = (btn, userdata) =>
{ {
if (campaign.Money >= CampaignMode.ItemRepairCost) if (campaign.PurchasedItemRepairs)
{ {
campaign.Money -= CampaignMode.ItemRepairCost; campaign.Money += CampaignMode.ItemRepairCost;
campaign.PurchasedItemRepairs = true; campaign.PurchasedItemRepairs = false;
GameMain.Client?.SendCampaignState();
btn.GetChild<GUITickBox>().Selected = true;
} }
btn.Enabled = false; else
{
if (campaign.Money >= CampaignMode.ItemRepairCost)
{
campaign.Money -= CampaignMode.ItemRepairCost;
campaign.PurchasedItemRepairs = true;
}
}
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,15 +212,31 @@ namespace Barotrauma
return; return;
} }
if (purchasedHullRepairs && !this.PurchasedHullRepairs && Money >= HullRepairCost) if (purchasedHullRepairs != this.PurchasedHullRepairs)
{ {
this.PurchasedHullRepairs = true; if (purchasedHullRepairs && Money >= HullRepairCost)
Money -= HullRepairCost; {
this.PurchasedHullRepairs = true;
Money -= HullRepairCost;
}
else if (!purchasedHullRepairs)
{
this.PurchasedHullRepairs = false;
Money += HullRepairCost;
}
} }
if (purchasedItemRepairs && !this.PurchasedItemRepairs && Money >= ItemRepairCost) if (purchasedItemRepairs != this.PurchasedItemRepairs)
{ {
this.PurchasedItemRepairs = true; if (purchasedItemRepairs && Money >= ItemRepairCost)
Money -= ItemRepairCost; {
this.PurchasedItemRepairs = true;
Money -= ItemRepairCost;
}
else if (!purchasedItemRepairs)
{
this.PurchasedItemRepairs = false;
Money += ItemRepairCost;
}
} }
Map.SelectLocation(selectedLocIndex == UInt16.MaxValue ? -1 : selectedLocIndex); Map.SelectLocation(selectedLocIndex == UInt16.MaxValue ? -1 : selectedLocIndex);