Example #1
0
    private List <AIDecisionCA> PrepareToDefense(int lineIndex)
    {
        var balance = _goldController.GetBalance();
        var units   = GetAvailableUnits(balance);
        List <AIDecisionCA> decisions = new List <AIDecisionCA>();

        if (units.Count == 0)
        {
            //Debug.Log("No defense units available");
        }

        //int maxSpawn = 2;
        List <UnitTransferObject> spawnedUnits = new List <UnitTransferObject>();
        var baseRatio = GetNewLineRatio(lineIndex, spawnedUnits);
        var ratio     = 1000f;

        while (units.Count > 0 && (ratio - baseRatio) > DEF_OVERSPAWN)
        {
            AIDecisionCA decision = new AIDecisionCA(units[0]._unitType, lineIndex, false);
            spawnedUnits.Add(units[0]);
            decisions.Add(decision);
            balance -= (int)units[0]._cost;
            ratio    = GetNewLineRatio(lineIndex, spawnedUnits);
            units    = GetAvailableUnits(balance);
        }
        return(decisions);
    }
Example #2
0
    private List <AIDecisionCA> PrepareToAttack(int lineIndex)
    {
        var balance = _goldController.GetBalance();
        var units   = GetAvailableUnits(balance);
        List <AIDecisionCA> decisions = new List <AIDecisionCA>();

        if (units.Count == 0)
        {
            //Debug.Log("No attack units available");
        }

        List <UnitTransferObject> spawnedUnits = new List <UnitTransferObject>();
        var baseRatio = GetNewLineRatio(lineIndex, spawnedUnits);
        var ratio     = 1000f;

        while (units.Count > 0 && (ratio / baseRatio) < ATCK_OVERSPAWN || _firstRound)
        {
            AIDecisionCA decision = new AIDecisionCA(units[0]._unitType, lineIndex, false);
            spawnedUnits.Add(units[0]);
            decisions.Add(decision);
            balance    -= (int)units[0]._cost;
            ratio       = GetNewLineRatio(lineIndex, spawnedUnits);
            units       = GetAvailableUnits(balance);
            _firstRound = false;
        }
        return(decisions);
    }