1using NaughtyAttributes;
3using System.Collections;
4using System.Globalization;
6using System.Runtime.Serialization;
16 internal bool AlwaysFail;
20 [SerializeField]
internal float failTime;
49 var cg = GetComponentInParent<CanvasGroup>();
53 currTime.text = Mathf.FloorToInt(
Timer / 60).ToString(
"D2") +
":" +
54 (
Timer % 60).ToString(
"00.00").Replace(
',',
'.');
87 var allFinish2 = FindObjectsOfType<FinishAction>();
88 foreach (var fa
in allFinish2) fa.IsCounting =
false;
98 foreach (var
action in actions)
100 if (
action.Value.taktTime > 0 &&
action.Value.taktTime <
action.Value.spentTimeOnAction)
113 if (!
Failed && !AlwaysFail && !FailedTakt)
121 else if (AlwaysFail || FailedTakt)
130 var allFinish = FindObjectsOfType<FinishAction>();
131 foreach (var fa
in allFinish) fa.IsCounting =
false;
136 FindObjectOfType<SolveIK>()?.SavePosition();
137 FindObjectOfType<SolveIK>()?.SavePositionsToFile();
149 float bestTime = collectedAllTimes.Min();
155 float overallPer = (focus + accuracy) / 2;
156 if (collectedTimes.Count() == 0)
162 if (
Timer <= collectedTimes.Min())
168 myBestTime = collectedTimes.Min();
172 float averageTime = collectedAllTimes.Average();
177 +
"Timer: " +Mathf.FloorToInt(
Timer / 60).ToString(
"D2") +
":" + (
Timer % 60).ToString(
"00.00").Replace(
',',
'.'));
196 var ci = CultureInfo.CurrentCulture;
197 var nfi = ci.NumberFormat;
198 input = input.Replace(
',', nfi.CurrencyDecimalSeparator[0]);
199 input = input.Replace(
'.', nfi.CurrencyDecimalSeparator[0]);
201 if (input.Contains(
":"))
203 var first = input.Split(
':');
204 failTime =
int.Parse(first[0]) * 60;
205 failTime +=
float.Parse(first[1]);
209 failTime =
float.Parse(input);
212 inputTime.text = Mathf.FloorToInt(failTime / 60).ToString(
"D2") +
":" +
213 (failTime % 60).ToString(
"00.00").Replace(
',',
'.');
217 public new void GetObjectData(SerializationInfo info, StreamingContext context)
219 base.GetObjectData(info, context);
220 info.AddValue(
"FailAfter",
FailAfter, typeof(
bool));
221 info.AddValue(
"AlwaysFail", AlwaysFail, typeof(
bool));
222 info.AddValue(
"failTime", failTime, typeof(
float));
225 public FinishAction(SerializationInfo info, StreamingContext context) : base(info, context)
227 FailAfter = info.GetBoolean(
"FailAfter");
228 failTime = info.GetSingle(
"failTime");
231 AlwaysFail = info.GetBoolean(
"AlwaysFail");
void TriggerOutput(string id)
List< GameObject > outPuts
static Controller Instance
override void Triggered(string id)
void OnValueChanged(bool value)
FinishAction(SerializationInfo info, StreamingContext context)
void InputEnded(string input)
void OnAlwaysFailChanged(bool value)
new void GetObjectData(SerializationInfo info, StreamingContext context)
void GetStats(UserManager.User user, out IEnumerable< float > notzerotimes, out IEnumerable< float > notzerotimesAll, out List< float > recognitionList, out List< float > timeSpendList, out List< float > penaltyList)
static UserStatManager Instance