private void Init() { iDefTokenThreshold = 3; iAttackTokenThreshold = 7; iOffensiveThreshold = 9; iPointPushThreshold = 5; B_SuperDefense = false; LI_ActiveTroops.Clear(); LI_LaneAdvantage.Clear(); LI_LaneTypes.Clear(); iFriendlyCount = 0; I_Round = 0; for (int iCount = 0; iCount < TournamentManager._instance.lanes.Count; iCount++) { LI_ActiveTroops.Add(0); LI_LaneAdvantage.Add(0); LI_LaneTypes.Add(false); iFriendlyCount += TournamentManager._instance.lanes[iCount].GetFriendliesInLane(this).Count; } B_StartLeft = GetStartSide(); if (B_StartLeft) { Enemy = TournamentManager._instance.P2; } else { Enemy = TournamentManager._instance.P1; } responseState = EResponseState.Basic; EAdaption = EAdaptState.Neutral; ELearningState = EPerformanceState.Normal; TournamentManager.OnCreatureDead += TrackCreatureDeaths; B_Init = true; }
private void EvaluatePerformance() { float fAveragePerformance = 0f; foreach (float performance in Q_RoundPerformances) { LogStack.Log("Performance = " + performance, LogLevel.Debug); fAveragePerformance += performance; } fAveragePerformance /= Q_RoundPerformances.Count; LogStack.Log("fAveragePerformance = " + fAveragePerformance, LogLevel.Debug); if (fAveragePerformance > 2.1f) { ELearningState = EPerformanceState.VeryGood; } else if (fAveragePerformance < -2.7f) { ELearningState = EPerformanceState.VeryBad; } else if (fAveragePerformance > 0.7f) { ELearningState = EPerformanceState.Good; } else if (fAveragePerformance < -1.3f) { ELearningState = EPerformanceState.Bad; } else { ELearningState = EPerformanceState.Normal; } Q_PerformanceStates.Enqueue(ELearningState); if (Q_PerformanceStates.Count > 2) { Q_PerformanceStates.Dequeue(); } }