Exemple #1
0
 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;
 }
Exemple #2
0
    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();
        }
    }