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 Adapt() { int I_AvargePerformance = 0; foreach (EPerformanceState performance in Q_PerformanceStates) { I_AvargePerformance += (int)performance; } I_AvargePerformance = (int)Mathf.Round(I_AvargePerformance / Q_PerformanceStates.Count); switch (I_AvargePerformance) { case 0: IncreaseDefense(true); break; case 1: IncreaseDefense(); break; case 2: if (UnityEngine.Random.Range(1, 3) == 1) { IncreaseOffense(); } else { IncreaseDefense(); } break; case 3: IncreaseOffense(); break; case 4: IncreaseOffense(true); break; default: break; } EAdaption = (EAdaptState)I_AvargePerformance; }