v1.6.17.0 (Unto the Breach update)

This commit is contained in:
Regalis11
2024-10-22 17:29:04 +03:00
parent e74b3cdb17
commit 6e6c17e100
417 changed files with 17166 additions and 5870 deletions
@@ -1,5 +1,4 @@
using Microsoft.Xna.Framework;
using System.Xml.Linq;
using System.Globalization;
namespace Barotrauma
{
@@ -7,7 +6,8 @@ namespace Barotrauma
{
public readonly Identifier Identifier;
public Range<float> LevelRange { get; private set; }
private readonly Range<float> levelRange;
private readonly Range<float> levelRangePvP;
/// <summary>
/// How much this skill affects characters' hiring cost
@@ -20,19 +20,32 @@ namespace Barotrauma
{
Identifier = element.GetAttributeIdentifier("identifier", "");
PriceMultiplier = element.GetAttributeFloat("pricemultiplier", 25.0f);
var levelString = element.GetAttributeString("level", "");
if (levelString.Contains(","))
{
var rangeVector2 = XMLExtensions.ParseVector2(levelString, false);
LevelRange = new Range<float>(rangeVector2.X, rangeVector2.Y);
}
else
{
float skillLevel = float.Parse(levelString, System.Globalization.CultureInfo.InvariantCulture);
LevelRange = new Range<float>(skillLevel, skillLevel);
}
levelRange = GetSkillRange("level", element, defaultValue: new Range<float>(0, 0));
levelRangePvP = GetSkillRange("pvplevel", element, defaultValue: levelRange);
IsPrimarySkill = element.GetAttributeBool("primary", false);
static Range<float> GetSkillRange(string attributeName, ContentXElement element, Range<float> defaultValue)
{
string levelString = element.GetAttributeString(attributeName, string.Empty);
if (levelString.Contains(','))
{
var rangeVector2 = XMLExtensions.ParseVector2(levelString, false);
return new Range<float>(rangeVector2.X, rangeVector2.Y);
}
else if (float.TryParse(levelString, NumberStyles.Any, CultureInfo.InvariantCulture, out float skillLevel))
{
return new Range<float>(skillLevel, skillLevel);
}
else
{
return defaultValue;
}
}
}
public Range<float> GetLevelRange(bool isPvP)
{
return isPvP ? levelRangePvP : levelRange;
}
}
}