Upload from upload_mods.ps1
This commit is contained in:
155
Scripts/Requirements/CVarCompareRebirth.cs
Normal file
155
Scripts/Requirements/CVarCompareRebirth.cs
Normal file
@@ -0,0 +1,155 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Xml.Linq;
|
||||
|
||||
public class CVarCompareRebirth : TargetedCompareRequirementBase
|
||||
{
|
||||
protected static bool CompareValues(float _valueA, RequirementBase.OperationTypes _operation, float _valueB)
|
||||
{
|
||||
bool result = false; ;
|
||||
|
||||
switch (_operation)
|
||||
{
|
||||
case RequirementBase.OperationTypes.Equals:
|
||||
case RequirementBase.OperationTypes.EQ:
|
||||
case RequirementBase.OperationTypes.E:
|
||||
result = _valueA == _valueB;
|
||||
//Log.Out("CVarCompareRebirth-CompareValues _valueA (" + _valueA + ") == _valueB (" + _valueB + "): " + result);
|
||||
|
||||
return result;
|
||||
case RequirementBase.OperationTypes.NotEquals:
|
||||
case RequirementBase.OperationTypes.NEQ:
|
||||
case RequirementBase.OperationTypes.NE:
|
||||
result = _valueA != _valueB;
|
||||
//Log.Out("CVarCompareRebirth-CompareValues _valueA (" + _valueA + ") != _valueB (" + _valueB + "): " + result);
|
||||
|
||||
return result;
|
||||
case RequirementBase.OperationTypes.Less:
|
||||
case RequirementBase.OperationTypes.LessThan:
|
||||
case RequirementBase.OperationTypes.LT:
|
||||
result = _valueA < _valueB;
|
||||
//Log.Out("CVarCompareRebirth-CompareValues _valueA (" + _valueA + ") < _valueB (" + _valueB + "): " + result);
|
||||
|
||||
return result;
|
||||
case RequirementBase.OperationTypes.Greater:
|
||||
case RequirementBase.OperationTypes.GreaterThan:
|
||||
case RequirementBase.OperationTypes.GT:
|
||||
result = _valueA > _valueB;
|
||||
//Log.Out("CVarCompareRebirth-CompareValues _valueA (" + _valueA + ") > _valueB (" + _valueB + "): " + result);
|
||||
|
||||
return result;
|
||||
case RequirementBase.OperationTypes.LessOrEqual:
|
||||
case RequirementBase.OperationTypes.LessThanOrEqualTo:
|
||||
case RequirementBase.OperationTypes.LTE:
|
||||
result = _valueA <= _valueB;
|
||||
//Log.Out("CVarCompareRebirth-CompareValues _valueA (" + _valueA + ") <= _valueB (" + _valueB + "): " + result);
|
||||
|
||||
return result;
|
||||
case RequirementBase.OperationTypes.GreaterOrEqual:
|
||||
case RequirementBase.OperationTypes.GreaterThanOrEqualTo:
|
||||
case RequirementBase.OperationTypes.GTE:
|
||||
result = _valueA >= _valueB;
|
||||
//Log.Out("CVarCompareRebirth-CompareValues _valueA (" + _valueA + ") >= _valueB (" + _valueB + "): " + result);
|
||||
|
||||
return result;
|
||||
default:
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool IsValid(MinEventParams _params)
|
||||
{
|
||||
if (!this.ParamsValid(_params))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool flag = false;
|
||||
|
||||
//Log.Out("CVarCompareRebirth-IsValid fullValue: " + fullValue);
|
||||
|
||||
foreach (var requirement in fullValue.Split(','))
|
||||
{
|
||||
//Log.Out("CVarCompareRebirth-IsValid requirement: " + requirement);
|
||||
float value = 0;
|
||||
if (requirement.StartsWith("@"))
|
||||
{
|
||||
value = _params.Self.Buffs.GetCustomVar(this.refCvarName, 0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
value = float.Parse(requirement);
|
||||
}
|
||||
|
||||
//Log.Out("CVarCompareRebirth-IsValid value: " + value);
|
||||
|
||||
//Log.Out("CVarCompareRebirth-IsValid this.target.Buffs.GetCustomVar(cvarName): " + this.target.Buffs.GetCustomVar(cvarName));
|
||||
|
||||
bool result = CompareValues(this.target.Buffs.GetCustomVar(cvarName), this.operation, value);
|
||||
|
||||
//Log.Out("CVarCompareRebirth-IsValid result: " + result);
|
||||
|
||||
flag = flag || result;
|
||||
}
|
||||
|
||||
if (this.invert)
|
||||
{
|
||||
return !flag;
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
public override void GetInfoStrings(ref List<string> list)
|
||||
{
|
||||
list.Add(string.Format("cvar.{0} {1} {2}", this.cvarName, this.operation.ToStringCached<RequirementBase.OperationTypes>(), this.value.ToCultureInvariantString()));
|
||||
}
|
||||
|
||||
public override bool ParseXAttribute(XAttribute _attribute)
|
||||
{
|
||||
string localName = _attribute.Name.LocalName;
|
||||
if (localName == "operation")
|
||||
{
|
||||
this.operation = EnumUtils.Parse<RequirementBase.OperationTypes>(_attribute.Value, true);
|
||||
return true;
|
||||
}
|
||||
else if (localName == "value")
|
||||
{
|
||||
if (_attribute.Value.StartsWith("@"))
|
||||
{
|
||||
this.useCVar = true;
|
||||
this.refCvarName = _attribute.Value.Substring(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.value = StringParsers.ParseFloat(_attribute.Value, 0, -1, NumberStyles.Any);
|
||||
}
|
||||
fullValue = _attribute.Value;
|
||||
return true;
|
||||
}
|
||||
else if (localName == "invert")
|
||||
{
|
||||
this.invert = StringParsers.ParseBool(_attribute.Value, 0, -1, true);
|
||||
return true;
|
||||
}
|
||||
else if (localName == "target")
|
||||
{
|
||||
this.targetType = EnumUtils.Parse<TargetedCompareRequirementBase.TargetTypes>(_attribute.Value, true);
|
||||
return true;
|
||||
}
|
||||
else if (localName == "cvar")
|
||||
{
|
||||
cvarName = _attribute.Value;
|
||||
cvarNameHash = cvarName.GetHashCode();
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
protected string cvarName;
|
||||
protected int cvarNameHash;
|
||||
protected string fullValue;
|
||||
}
|
||||
Reference in New Issue
Block a user