162 lines
5.2 KiB
C#
162 lines
5.2 KiB
C#
using System.Xml.Linq;
|
|
|
|
public class RequirementIsBetweenTimesRebirth : TargetedCompareRequirementBase
|
|
{
|
|
string strValue = "";
|
|
|
|
public override bool IsValid(MinEventParams _params)
|
|
{
|
|
|
|
if (!base.IsValid(_params))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
ulong worldTime = GameManager.Instance.World.worldTime;
|
|
ValueTuple<int, int, int> valueTuple = GameUtils.WorldTimeToElements(worldTime);
|
|
|
|
int hour = valueTuple.Item2;
|
|
int minutes = valueTuple.Item3;
|
|
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, hour: " + hour);
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, minutes: " + minutes);
|
|
|
|
string[] array = strValue.Split(new char[]
|
|
{
|
|
','
|
|
});
|
|
|
|
int numHour1 = 0;
|
|
int numMinutes1 = 0;
|
|
int numHour2 = 0;
|
|
int numMinutes2 = 0;
|
|
|
|
bool bOutside = false;
|
|
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
if (i == 0)
|
|
{
|
|
numHour1 = Int16.Parse(array[0]);
|
|
}
|
|
if (i == 1)
|
|
{
|
|
numMinutes1 = Int16.Parse(array[1]);
|
|
}
|
|
if (i == 2)
|
|
{
|
|
numHour2 = Int16.Parse(array[2]);
|
|
}
|
|
if (i == 3)
|
|
{
|
|
numMinutes2 = Int16.Parse(array[3]);
|
|
}
|
|
}
|
|
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, numHour1: " + numHour1);
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, numMinutes1: " + numMinutes1);
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, numHour2: " + numHour2);
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, numMinutes2: " + numMinutes2);
|
|
|
|
if (numHour1 > numHour2)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, numHour2 > numHour1");
|
|
bOutside = true;
|
|
}
|
|
else
|
|
{
|
|
if ((numHour1 == numHour2))
|
|
{
|
|
if (numMinutes1 > numMinutes2)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, numMinutes1 > numMinutes2");
|
|
bOutside = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
bool flag = false;
|
|
|
|
if (!bOutside)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, NOT bOutside");
|
|
if (numHour1 < hour && hour < numHour2)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, hour > numHour1 && hour < numHour2");
|
|
flag = true;
|
|
}
|
|
else if (hour == numHour1 && hour == numHour2)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, hour == numHour1 && hour == numHour2");
|
|
if (minutes >= numMinutes1 && minutes <= numMinutes2)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, minutes >= numMinutes1 && minutes <= numMinutes2");
|
|
flag = true;
|
|
}
|
|
}
|
|
else if (hour == numHour1 && minutes >= numMinutes1)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, hour == numHour1 && minutes >= numMinutes1");
|
|
flag = true;
|
|
}
|
|
else if (hour == numHour2 && minutes <= numMinutes2)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, hour == numHour2 && minutes <= numMinutes2");
|
|
flag = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, bOutside");
|
|
if (hour > numHour1 || hour < numHour2)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, hour < numHour1 || hour > numHour2");
|
|
flag = true;
|
|
}
|
|
else if (hour == numHour1 && hour == numHour2)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, hour == numHour1 && hour == numHour2");
|
|
if (minutes <= numMinutes2 || minutes >= numMinutes1)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, minutes <= numMinutes2 || minutes >= numMinutes1");
|
|
flag = true;
|
|
}
|
|
}
|
|
else if (hour == numHour1 && minutes >= numMinutes1)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, hour == numHour1 && minutes >= numMinutes1");
|
|
flag = true;
|
|
}
|
|
else if (hour == numHour2 && minutes <= numMinutes2)
|
|
{
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, hour == numHour2 && minutes <= numMinutes2");
|
|
flag = true;
|
|
}
|
|
}
|
|
|
|
//Log.Out("RequirementIsBetweenTimesRebirth-IsValid, flag: " + flag);
|
|
return flag;
|
|
}
|
|
|
|
public override bool ParseXAttribute(XAttribute _attribute)
|
|
{
|
|
var flag = base.ParseXAttribute(_attribute);
|
|
if (flag) return true;
|
|
var name = _attribute.Name;
|
|
|
|
if (name == null)
|
|
{
|
|
return flag;
|
|
}
|
|
else if (name == "Value")
|
|
{
|
|
strValue = _attribute.Value;
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
}
|