130 lines
5.0 KiB
C#
130 lines
5.0 KiB
C#
public class DialogRequirementIsBetweenTimesRebirth : BaseDialogRequirement
|
|
{
|
|
public override bool CheckRequirement(EntityPlayer player, EntityNPC talkingTo)
|
|
{
|
|
ulong worldTime = GameManager.Instance.World.worldTime;
|
|
ValueTuple<int, int, int> valueTuple = GameUtils.WorldTimeToElements(worldTime);
|
|
|
|
int hour = valueTuple.Item2;
|
|
int minutes = valueTuple.Item3;
|
|
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, hour: " + hour);
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, minutes: " + minutes);
|
|
|
|
string[] array = this.Value.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("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, numHour1: " + numHour1);
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, numMinutes1: " + numMinutes1);
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, numHour2: " + numHour2);
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, numMinutes2: " + numMinutes2);
|
|
|
|
if (numHour1 > numHour2)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, numHour2 > numHour1");
|
|
bOutside = true;
|
|
}
|
|
else
|
|
{
|
|
if ((numHour1 == numHour2))
|
|
{
|
|
if (numMinutes1 > numMinutes2)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, numMinutes1 > numMinutes2");
|
|
bOutside = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
bool flag = false;
|
|
|
|
if (!bOutside)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, NOT bOutside");
|
|
if (numHour1 < hour && hour < numHour2)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, hour > numHour1 && hour < numHour2");
|
|
flag = true;
|
|
}
|
|
else if (hour == numHour1 && hour == numHour2)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, hour == numHour1 && hour == numHour2");
|
|
if (minutes >= numMinutes1 && minutes <= numMinutes2)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, minutes >= numMinutes1 && minutes <= numMinutes2");
|
|
flag = true;
|
|
}
|
|
}
|
|
else if (hour == numHour1 && minutes >= numMinutes1)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, hour == numHour1 && minutes >= numMinutes1");
|
|
flag = true;
|
|
}
|
|
else if (hour == numHour2 && minutes <= numMinutes2)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, hour == numHour2 && minutes <= numMinutes2");
|
|
flag = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, bOutside");
|
|
if (hour > numHour1 || hour < numHour2)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, hour < numHour1 || hour > numHour2");
|
|
flag = true;
|
|
}
|
|
else if (hour == numHour1 && hour == numHour2)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, hour == numHour1 && hour == numHour2");
|
|
if (minutes <= numMinutes2 || minutes >= numMinutes1)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, minutes <= numMinutes2 || minutes >= numMinutes1");
|
|
flag = true;
|
|
}
|
|
}
|
|
else if (hour == numHour1 && minutes >= numMinutes1)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, hour == numHour1 && minutes >= numMinutes1");
|
|
flag = true;
|
|
}
|
|
else if (hour == numHour2 && minutes <= numMinutes2)
|
|
{
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, hour == numHour2 && minutes <= numMinutes2");
|
|
flag = true;
|
|
}
|
|
}
|
|
|
|
//Log.Out("DialogRequirementIsBetweenTimesRebirth-CheckRequirement, flag: " + flag);
|
|
return flag;
|
|
}
|
|
} |