v0.19.8.0

This commit is contained in:
Juan Pablo Arce
2022-09-28 21:30:52 -03:00
parent fec8131243
commit 3ca584f2fc
152 changed files with 1931 additions and 1071 deletions
@@ -80,7 +80,7 @@ namespace Barotrauma
{
if (ID != Entity.NullEntityID)
{
DebugConsole.ShowError("Error setting SoldItem.ID: ID has already been set and should not be changed.");
DebugConsole.LogError("Error setting SoldItem.ID: ID has already been set and should not be changed.");
return;
}
ID = id;
@@ -128,7 +128,7 @@ namespace Barotrauma
{
if (Item != null)
{
DebugConsole.ShowError($"Trying to set SoldEntity.Item, but it's already set!\n{Environment.StackTrace.CleanupStackTrace()}");
DebugConsole.LogError($"Trying to set SoldEntity.Item, but it's already set!\n{Environment.StackTrace.CleanupStackTrace()}");
return;
}
Item = item;
@@ -198,6 +198,34 @@ namespace Barotrauma
}
}
/// <summary>
/// Remove the character from the crew (and crew menus).
/// </summary>
/// <param name="character">The character to remove</param>
/// <param name="removeInfo">If the character info is also removed, the character will not be visible in the round summary.</param>
public void RemoveCharacter(Character character, bool removeInfo = false, bool resetCrewListIndex = true)
{
if (character == null)
{
DebugConsole.ThrowError("Tried to remove a null character from CrewManager.\n" + Environment.StackTrace.CleanupStackTrace());
return;
}
characters.Remove(character);
if (removeInfo)
{
characterInfos.Remove(character.Info);
#if CLIENT
RemoveCharacterFromCrewList(character);
#endif
}
#if CLIENT
if (resetCrewListIndex)
{
ResetCrewListIndex(character);
}
#endif
}
public void AddCharacterInfo(CharacterInfo characterInfo)
{
if (characterInfos.Contains(characterInfo))
@@ -27,6 +27,8 @@ namespace Barotrauma
public readonly Identifier EventIdentifier;
public readonly Sprite Banner;
public TutorialPrefab(ContentFile file, ContentXElement element) : base(file, element.GetAttributeIdentifier("identifier", ""))
{
Order = element.GetAttributeInt("order", int.MaxValue);
@@ -50,6 +52,12 @@ namespace Barotrauma
StartingItemTags = ImmutableArray<Identifier>.Empty;
}
var bannerElement = element.GetChildElement("banner");
if (bannerElement != null)
{
Banner = new Sprite(bannerElement, lazyLoad: true);
}
EventIdentifier = element.GetChildElement("scriptedevent")?.GetAttributeIdentifier("identifier", "") ?? Identifier.Empty;
}
@@ -412,14 +412,14 @@ namespace Barotrauma
#endif
}
public List<Item> GetLinkedItemsToSwap(Item item)
public static ICollection<Item> GetLinkedItemsToSwap(Item item)
{
List<Item> linkedItems = new List<Item>() { item };
HashSet<Item> linkedItems = new HashSet<Item>() { item };
foreach (MapEntity linkedEntity in item.linkedTo)
{
foreach (MapEntity secondLinkedEntity in linkedEntity.linkedTo)
{
if (!(secondLinkedEntity is Item linkedItem) || linkedItem == item) { continue; }
if (secondLinkedEntity is not Item linkedItem || linkedItem == item) { continue; }
if (linkedItem.AllowSwapping &&
linkedItem.Prefab.SwappableItem != null && (linkedItem.Prefab.SwappableItem.CanBeBought || item.Prefab.SwappableItem.ReplacementOnUninstall == ((MapEntity)linkedItem).Prefab.Identifier) &&
linkedItem.Prefab.SwappableItem.SwapIdentifier.Equals(item.Prefab.SwappableItem.SwapIdentifier, StringComparison.OrdinalIgnoreCase))
@@ -709,7 +709,7 @@ namespace Barotrauma
SavePendingUpgrades(upgradeManagerElement, PendingUpgrades);
}
private void SavePendingUpgrades(XElement? parent, List<PurchasedUpgrade> upgrades)
private static void SavePendingUpgrades(XElement? parent, List<PurchasedUpgrade> upgrades)
{
if (parent == null) { return; }