Unstable 1.8.4.0
This commit is contained in:
@@ -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
|
||||
@@ -19,20 +19,33 @@ namespace Barotrauma
|
||||
public SkillPrefab(ContentXElement element)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
PriceMultiplier = element.GetAttributeFloat("pricemultiplier", 15.0f);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user