public class DialogRequirementIsBetweenTimesRebirth : BaseDialogRequirement { public override bool CheckRequirement(EntityPlayer player, EntityNPC talkingTo) { ulong worldTime = GameManager.Instance.World.worldTime; ValueTuple 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; } }