Unstable 0.17.4.0

This commit is contained in:
Markus Isberg
2022-03-30 00:08:09 +09:00
parent 2968e23ae8
commit c1b8e5a341
177 changed files with 3388 additions and 1977 deletions
@@ -127,7 +127,7 @@ namespace Barotrauma.Items.Components
{
if (subElement.Name != "limbposition") { continue; }
string limbStr = subElement.GetAttributeString("limb", "");
if (!Enum.TryParse(subElement.Attribute("limb").Value, out LimbType limbType))
if (!Enum.TryParse(subElement.GetAttribute("limb").Value, out LimbType limbType))
{
DebugConsole.ThrowError($"Error in item \"{item.Name}\" - {limbStr} is not a valid limb type.");
}
@@ -186,8 +186,19 @@ namespace Barotrauma.Items.Components
if (!isClient)
{
MoveIngredientsToInputContainer(selectedItem);
if (selectedItem.RequiredMoney > 0)
{
if (GameMain.GameSession?.GameMode is MultiPlayerCampaign)
{
user.Wallet.Deduct(selectedItem.RequiredMoney);
}
else if (GameMain.GameSession?.GameMode is CampaignMode campaign)
{
campaign.Bank.Deduct(selectedItem.RequiredMoney);
}
}
}
requiredTime = GetRequiredTime(fabricatedItem, user);
timeUntilReady = requiredTime;
@@ -508,6 +519,22 @@ namespace Barotrauma.Items.Components
if (fabricableItem == null) { return false; }
if (fabricableItem.RequiresRecipe && (character == null || !character.HasRecipeForItem(fabricableItem.TargetItem.Identifier))) { return false; }
if (fabricableItem.RequiredMoney > 0)
{
if (GameMain.GameSession?.GameMode is MultiPlayerCampaign)
{
if (character?.Wallet == null || character.Wallet.Balance < fabricableItem.RequiredMoney) { return false; }
}
else if (GameMain.GameSession?.GameMode is CampaignMode campaign)
{
if (campaign.Bank.Balance < fabricableItem.RequiredMoney) { return false; }
}
else
{
return false;
}
}
return fabricableItem.RequiredItems.All(requiredItem =>
{
int availablePrefabsAmount = 0;
@@ -169,7 +169,7 @@ namespace Barotrauma.Items.Components
hull.BallastFlora = new BallastFloraBehavior(hull, ballastFloraPrefab, offset, firstGrowth: true);
#if SERVER
hull.BallastFlora.SendNetworkMessage(new BallastFloraBehavior.SpawnEventData());
hull.BallastFlora.CreateNetworkMessage(new BallastFloraBehavior.SpawnEventData());
#endif
}