Exemplo n.º 1
0
 public void addActionInProgress(ChunkAction action)
 {
     _actionInProgress.Add(action);
     //actions that have consequences per chunk not per tile
     if (action.id == 18 || action.id == 25)
     {
         Building_Planter planter = (Building_Planter)BuildingsManager.GetInstance().getBuilding(BUILDINGS.PLANTER);
         planter.agafarPlanta();
     }
 }
    private bool loadBuildings()
    {
        string    file_path = "json/buildings";
        TextAsset file      = Resources.Load(file_path, typeof(TextAsset)) as TextAsset;

        if (file != null)
        {
            JSONNode N = JSON.Parse(file.text);
            foreach (BUILDINGS buildingID in Enum.GetValues(typeof(BUILDINGS)))
            {
                string buildingStr = buildingID.ToString();
                switch (buildingID)
                {
                case BUILDINGS.CASA:
                    _buildings [buildingID] = new Building_Home(N [buildingStr], buildingID);
                    break;

                case BUILDINGS.ESTABLO:
                    _buildings [buildingID] = new Building_Stable(N [buildingStr], buildingID);
                    break;

                //case BUILDINGS.GARAJE:
                //	_buildings [buildingID] = new Building_Garage(N [buildingStr], buildingID);
                //	break;
                case BUILDINGS.PLANTER:
                    _buildings [buildingID] = new Building_Planter(N [buildingStr], buildingID);
                    break;

                case BUILDINGS.TRILL:
                    _buildings [buildingID] = new Building_Trill(N [buildingStr], buildingID);
                    break;

                case BUILDINGS.ERA:
                    _buildings [buildingID] = new Building_Era(N [buildingStr], buildingID);
                    break;

                case BUILDINGS.SILO:
                    _buildings [buildingID] = new Building_Silo(N [buildingStr], buildingID);
                    break;

                case BUILDINGS.PLANTA:
                    _buildings [buildingID] = new Building_Planta(N [buildingStr], buildingID);
                    break;

                default:
                    _buildings [buildingID] = new Building(N [buildingStr], buildingID);
                    break;
                }
                _isBuilded [buildingID] = false;
            }
            return(true);
        }
        Debug.Log(file_path + " not loaded");
        return(false);
    }
Exemplo n.º 3
0
    private List <MenuAction> getBPlanterActions()
    {
        List <MenuAction> actions    = new List <MenuAction>();
        Building_Planter  building   = (Building_Planter)BuildingsManager.GetInstance().getBuilding(BUILDINGS.PLANTER);
        MenuAction        actSembrar = new MenuAction();

        actSembrar.title = Dictionary.getString("SOW");
        actSembrar.info  = Dictionary.getString("SOWING_RICE");
        bool isActionEnabled = !building.estaSembrat();

        isActionEnabled         = isActionEnabled && building.esEpocaDeSembrar();
        actSembrar.enabled      = isActionEnabled;
        actSembrar.doMenuAction = new DoMenuAction(building.sembrar);
        actions.Add(actSembrar);

        return(actions);
    }
Exemplo n.º 4
0
    public bool checkDependencies(ChunkAction action)
    {
        Dictionary <string, ArrayList> dependencies = action.getDependencies();
        bool dependenciesOK = true;

        foreach (KeyValuePair <string, ArrayList> kvp in dependencies)
        {
            if (kvp.Key.Equals(DEPENDENCY_TYPE.ACTION.ToString(), System.StringComparison.Ordinal))
            {
                for (uint i = 0; i < kvp.Value.Count; ++i)
                {
                    //if (checkYearDependency (_action [(string)kvp.Value [(int)i]])) {
                    dependenciesOK = dependenciesOK && this.isActionDone((string)kvp.Value [(int)i]);
                    //}
                }
            }
            else if (kvp.Key.Equals(DEPENDENCY_TYPE.START_YEAR.ToString(), System.StringComparison.Ordinal))
            {
                //kvp.Value[0]
                uint currentYear    = GameObject.FindGameObjectWithTag("Logic").GetComponent <TimeManager> ().getCurrentYear();
                uint dependencyYear = Convert.ToUInt32(kvp.Value [0]);
                dependenciesOK = dependenciesOK && (dependencyYear <= currentYear);
            }
            else if (kvp.Key.Equals(DEPENDENCY_TYPE.END_YEAR.ToString(), System.StringComparison.Ordinal))
            {
                //kvp.Value[0]
                dependenciesOK = dependenciesOK && (Convert.ToUInt32(kvp.Value [0]) >
                                                    GameObject.FindGameObjectWithTag("Logic").GetComponent <TimeManager> ().getCurrentYear());
            }
            else if (kvp.Key.Equals(DEPENDENCY_TYPE.STATUS.ToString(), System.StringComparison.Ordinal))
            {
                for (int i = 0; i < kvp.Value.Count; ++i)
                {
                    if (kvp.Value [i].Equals(STATUS_TYPE.PLANTED.ToString()))
                    {
                        dependenciesOK = dependenciesOK && this.isPlanted();
                    }
                    else if (kvp.Value [i].Equals(STATUS_TYPE.WORKED_ONCE.ToString()))
                    {
                        dependenciesOK = dependenciesOK && this.hasTileAlreadyBeenWorked();
                    }
                    else if (kvp.Value [i].Equals(STATUS_TYPE.WEED.ToString()))
                    {
                        dependenciesOK = dependenciesOK && WorldTerrain.GetInstance().hasChunkWeed(_chunkID);
                    }
                    else if (kvp.Value [i].Equals(STATUS_TYPE.WILD_RICE.ToString()))
                    {
                        dependenciesOK = dependenciesOK && WorldTerrain.GetInstance().hasChunkWildRice(_chunkID);
                    }
                    else if (kvp.Value [i].Equals(STATUS_TYPE.PLAGUE.ToString()))
                    {
                        dependenciesOK = dependenciesOK && WorldTerrain.GetInstance().hasChunkPlague(_chunkID);
                    }
                    else if (kvp.Value[i].Equals(STATUS_TYPE.PLANTER_PLANTED.ToString()))
                    {
                        Building_Planter planter = (Building_Planter)BuildingsManager.GetInstance().getBuilding(BUILDINGS.PLANTER);
                        dependenciesOK = dependenciesOK && planter.hasPlantsForAChunk();
                    }
                }
            }
            else if (kvp.Key.Equals(DEPENDENCY_TYPE.ACTION_NOT_DONE.ToString(), System.StringComparison.Ordinal))
            {
                for (uint i = 0; i < kvp.Value.Count; ++i)
                {
                    dependenciesOK = dependenciesOK && !this.isActionDone((string)kvp.Value [(int)i]);
                }
            }
        }

        return(dependenciesOK);
    }
Exemplo n.º 5
0
    public void SowPlanter()
    {
        Building_Planter p = (Building_Planter)BuildingsManager.GetInstance().getBuilding(BUILDINGS.PLANTER);

        p.sembrar();
    }
    public void save(BuildingManagerData buildingManagerData)
    {
        foreach (KeyValuePair <BUILDINGS, bool> builded in IsBuilded)
        {
            if (builded.Value)
            {
                BuildingData buildingData = new BuildingData();
                buildingData.ID = builded.Key;
                switch (builded.Key)
                {
                case BUILDINGS.CASA: {
                    Building_Home b = (Building_Home)getBuilding(builded.Key);
                    buildingData.i     = b.getRow();
                    buildingData.j     = b.getCol();
                    buildingData.Level = b.getCurrentLevel();
                }
                break;

                case BUILDINGS.ESTABLO: {
                    Building_Stable b = (Building_Stable)getBuilding(builded.Key);
                    buildingData.i     = b.getRow();
                    buildingData.j     = b.getCol();
                    buildingData.Level = b.getCurrentLevel();
                }
                break;

                //case BUILDINGS.GARAJE: {
                //        Building_Garage b = (Building_Garage)getBuilding(builded.Key);
                //        buildingData.i = b.getRow();
                //        buildingData.j = b.getCol();
                //        buildingData.Level = b.getCurrentLevel();
                //    }
                //    break;
                case BUILDINGS.PLANTER: {
                    Building_Planter b = (Building_Planter)getBuilding(builded.Key);
                    buildingData.i            = b.getRow();
                    buildingData.j            = b.getCol();
                    buildingData.Level        = b.getCurrentLevel();
                    buildingData.SpecialSlot1 = b.estaSembrat() ? 1 : 0;
                    buildingData.SpecialSlot2 = (int)b.DiesSembrat;
                    buildingData.SpecialSlot3 = (int)b.Plantes;
                }
                break;

                case BUILDINGS.TRILL: {
                    Building_Trill b = (Building_Trill)getBuilding(builded.Key);
                    buildingData.i            = b.getRow();
                    buildingData.j            = b.getCol();
                    buildingData.Level        = b.getCurrentLevel();
                    buildingData.SpecialSlot1 = (int)b.getRiceUnprepared();
                    buildingData.SpecialSlot2 = (int)b.getRicePrepared();
                }
                break;

                case BUILDINGS.ERA: {
                    Building_Era b = (Building_Era)getBuilding(builded.Key);
                    buildingData.i            = b.getRow();
                    buildingData.j            = b.getCol();
                    buildingData.Level        = b.getCurrentLevel();
                    buildingData.SpecialSlot1 = (int)b.getRiceUnprepared();
                    buildingData.SpecialSlot2 = (int)b.getRicePrepared();
                }
                break;

                case BUILDINGS.SILO: {
                    Building_Silo b = (Building_Silo)getBuilding(builded.Key);
                    buildingData.i            = b.getRow();
                    buildingData.j            = b.getCol();
                    buildingData.Level        = b.getCurrentLevel();
                    buildingData.SpecialSlot1 = (int)b.getAllTheRice();
                }
                break;

                case BUILDINGS.PLANTA: {
                    Building_Planta b = (Building_Planta)getBuilding(builded.Key);
                    buildingData.i            = b.getRow();
                    buildingData.j            = b.getCol();
                    buildingData.Level        = b.getCurrentLevel();
                    buildingData.SpecialSlot1 = (int)b.getRiceUnprepared();
                }
                break;
                }
                buildingManagerData.BuildingsBuilded.Add(buildingData);
            }
        }
    }