Esempio n. 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;
 }
Esempio n. 2
0
    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;
    }