コード例 #1
0
    public Barrack CreateBarrack(int codBarrack, bool isEnemy, PhaseObjectives barrackObjective)
    {
        GameObject barrackGameObject        = GameObject.Instantiate(barrackPrefab);
        Barrack    barrack                  = new Barrack();
        BarrackScriptableObject barrackData = GetBarrackScriptableObject(codBarrack);

        barrack.CodBarrack        = barrackData.codBarrack;
        barrack.CodPart           = barrackData.codPart;
        barrack.CodTroop          = barrackData.codTroop;
        barrack.NamBarrack        = barrackData.namBarrack;
        barrack.DesBarrack        = barrackData.desBarrack;
        barrack.NumTroopLimit     = barrackData.numTroopLimit;
        barrack.ValCost           = barrackData.valCost;
        barrack.ValSpawnFrequency = barrackData.valSpawnFrequency;
        barrack.GameObject        = barrackGameObject;
        barrack.IsEnemy           = isEnemy;
        barrack.Objective         = barrackObjective;

        barrack.SetUpSpawner();
        barrack.GameObject.GetComponent <SpriteRenderer>().sprite = barrackData.sprite;
        barrack.GameObject.GetComponent <Animator>().runtimeAnimatorController = barrackData.animatorController;

        barrack.GameObject.GetComponent <RunTimeBarrackData>().SetData(barrack);

        return(barrack);
    }
コード例 #2
0
    private void BuildBarrack(BarrackScriptableObject barrackToBuild)
    {
        // TO:DO --> Use RuntimeData to create the barrack
        Barrack barrack = barrackFactory.CreateBarrack(barrackToBuild.codBarrack, true, bobAIObjective);

        Vector2 buildPosition = PickBuildPosition();

        barrack.GameObject.transform.position = buildPosition;
        bobAIGoldReserve.SpendGold(barrack.ValCost);

        buildingPositions.Remove(buildPosition);
    }
コード例 #3
0
    private void HandleWaveStartEvent()
    {
        // TO:DO --> Use the money and barracks on RuntimeData
        int lowestBarrackValue = barracksPriorityList.GetLast().Priority;

        while (bobAIGoldReserve.currentGold >= lowestBarrackValue)
        {
            BarrackScriptableObject barrackToBuild = barracksPriorityList.GetLast().Key;

            for (int i = barracksPriorityList.Count - 1; i >= 0; i--)
            {
                BarrackScriptableObject compareBarrack = barracksPriorityList.Find(i).Key;

                if (barrackToBuild.valCost <= compareBarrack.valCost)
                {
                    if (compareBarrack.valCost <= bobAIGoldReserve.currentGold)
                    {
                        barrackToBuild = compareBarrack;
                    }
                    else
                    {
                        break;
                    }
                }
            }

            if (buildingPositions.Count > 0)
            {
                BuildBarrack(barrackToBuild);
            }
            else
            {
                return;
            }
        }
    }