Files
7d2dXG/Mods/zzz_REBIRTH__Utils/Scripts/Dialog/DialogRequirementIsBetweenTimesRebirth.cs
Nathaniel Cosford 062dfab2cd Patched
2025-05-30 01:04:40 +09:30

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;
}
}