Esempio n. 1
0
    public void StartDemoGame()
    {
        #region OrdersExamples

        MoveOrderInitParams MoveExample = new MoveOrderInitParams("Move");
        AttackOrderInitParams AttackExample = new AttackOrderInitParams("Attack");
        MoveAttackOrderInitParams MoveAttackExample = new MoveAttackOrderInitParams("Move and attack");

        Dictionary<string,BuildOrderInitParams> BuildExamples = new Dictionary<string,BuildOrderInitParams>();

        foreach (Building var in BuildingsToLoad)
        {
            if (var is MainHub) continue;
            BuildExamples.Add(typeof(BuildOrderInitParams).FullName + "."+ var.name,new BuildOrderInitParams(var, "Build "+var.name));
        }

        Dictionary<string, UnitCreationOrderInitParams> UnitCreationExamples =
            new Dictionary<string, UnitCreationOrderInitParams>();

        foreach (Unit unit in UnitsToLoad)
        {
            UnitCreationExamples.Add(typeof(UnitCreationOrderInitParams).FullName + "." + unit.name, new UnitCreationOrderInitParams(unit, 1f, "Create unit " + unit.name));
        }

        #endregion
        
        EntityLoader.ClearDictionary();

        #region UnitLoadInitialization

        foreach (Unit unit in UnitsToLoad)
        {
            if (unit is Warrior)
            {
                LoadEntetyData warrioEntetyData = new LoadEntetyData(unit.gameObject,new Dictionary<string, GameOrderInitParams>
                {
                    {MoveExample.ToString() ,MoveExample},
                    {AttackExample.ToString() ,AttackExample},
                    {MoveAttackExample.ToString() ,MoveAttackExample},
                });
                
                EntityLoader.AddNewEntetyTypeToDictionary(unit.GetType(), warrioEntetyData);
            }
            else if (unit is UnitBuilder)
            {
                Dictionary<string, GameOrderInitParams> AllOrdersExamples = new Dictionary<string, GameOrderInitParams>();
                foreach (KeyValuePair<string,BuildOrderInitParams> keyValuePair in BuildExamples)
                {
                    AllOrdersExamples.Add(keyValuePair.Key,keyValuePair.Value);
                }
                
                AllOrdersExamples.Add(MoveExample.ToString(),MoveExample);

                LoadEntetyData builderEntetyData =
                    new LoadEntetyData(unit.gameObject, AllOrdersExamples);

                EntityLoader.AddNewEntetyTypeToDictionary(unit.GetType(), builderEntetyData);
            }
            else
            {
                LoadEntetyData builderEntetyData =
                    new LoadEntetyData(unit.gameObject, new Dictionary<string, GameOrderInitParams>
                    {
                        {MoveExample.ToString() ,MoveExample}
                    });

                EntityLoader.AddNewEntetyTypeToDictionary(unit.GetType(), builderEntetyData);
            }

        }

        #endregion

        #region BuildingLoadInitialization

        foreach (Building building in BuildingsToLoad)
        {
            if (building is MainHub)
            {
                Dictionary<string, GameOrderInitParams> AllOrdersExamples = new Dictionary<string, GameOrderInitParams>();
                
                foreach (KeyValuePair<string,UnitCreationOrderInitParams> keyValuePair in UnitCreationExamples)
                {
                    AllOrdersExamples.Add(keyValuePair.Key,keyValuePair.Value);
                }
                
                LoadEntetyData HubLoadData = new LoadEntetyData(building.gameObject, AllOrdersExamples);
                
                EntityLoader.AddNewEntetyTypeToDictionary(building.GetType(),HubLoadData);
            }
        }

        #endregion
        
        SceneManager.LoadScene(DemoSceneIndex);
    }