Example #1
0
 public GameSaveData()
 {
     ActionManagerData        = new ActionManagerData();
     BuildingManagerData      = new BuildingManagerData();
     TimeManagerData          = new TimeManagerData();
     CoopManagerData          = new CoopManagerData();
     UserDataManagerData      = new UserDataManagerData();
     InvestigationManagerData = new InvestigationManagerData();
     LogicManagerData         = new LogicManagerData();
     CanalManagerData         = new CanalManagerData();
     PenalizationManagerData  = new PenalizationManagerData();
     PhaseManagerData         = new PhaseManagerData();
     PlagueManagerData        = new PlagueManagerData();
     RankingManagerData       = new RankingManagerData();
     RiceObjectManagerData    = new RiceObjectManagerData();
     WeedFactoryData          = new WeedFactoryData();
     WorkerManagerData        = new WorkerManagerData();
     WorldTerrainData         = new WorldTerrainData();
     tutorialManagerData      = new TutorialManagerData();
 }
    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);
            }
        }
    }
    public void load(BuildingManagerData buildingManagerData)
    {
        init();
        foreach (BuildingData buildingData in buildingManagerData.BuildingsBuilded)
        {
            _isBuilded[buildingData.ID] = true;
            Building b = _buildings[buildingData.ID];
            switch (buildingData.ID)
            {
            case BUILDINGS.CASA: {
                for (int i = 0; i < buildingData.Level; ++i)
                {
                    ((Building_Home)b).upgrade();
                }
                ((Building_Home)b).constructAtPos(buildingData.i, buildingData.j);
            }
            break;

            case BUILDINGS.ESTABLO: {
                for (int i = 0; i < buildingData.Level; ++i)
                {
                    ((Building_Stable)b).upgrade();
                }
                ((Building_Stable)b).constructAtPos(buildingData.i, buildingData.j);
            }
            break;

            //case BUILDINGS.GARAJE: {
            //        for (int i = 0; i < buildingData.Level; ++i) {
            //            ((Building_Garage)b).upgrade();
            //        }
            //        ((Building_Garage)b).constructAtPos(buildingData.i, buildingData.j);
            //    }
            //    break;
            case BUILDINGS.PLANTER: {
                for (int i = 0; i < buildingData.Level; ++i)
                {
                    ((Building_Planter)b).upgrade();
                }
                ((Building_Planter)b).constructAtPos(buildingData.i, buildingData.j);
                if (buildingData.SpecialSlot1 > 0)
                {
                    ((Building_Planter)b).sembrar((uint)buildingData.SpecialSlot2, (uint)buildingData.SpecialSlot3);
                }
            }
            break;

            case BUILDINGS.TRILL: {
                for (int i = 0; i < buildingData.Level; ++i)
                {
                    ((Building_Trill)b).upgrade();
                }
                ((Building_Trill)b).constructAtPos(buildingData.i, buildingData.j);
                ((Building_Trill)b).setRice((uint)buildingData.SpecialSlot1, (uint)buildingData.SpecialSlot2);
            }
            break;

            case BUILDINGS.ERA: {
                for (int i = 0; i < buildingData.Level; ++i)
                {
                    ((Building_Era)b).upgrade();
                }
                ((Building_Era)b).constructAtPos(buildingData.i, buildingData.j);
                ((Building_Era)b).setRice((uint)buildingData.SpecialSlot1, (uint)buildingData.SpecialSlot2);
            }
            break;

            case BUILDINGS.SILO: {
                for (int i = 0; i < buildingData.Level; ++i)
                {
                    ((Building_Silo)b).upgrade();
                }
                ((Building_Silo)b).constructAtPos(buildingData.i, buildingData.j);
                ((Building_Silo)b).setRice((uint)buildingData.SpecialSlot1);
            }
            break;

            case BUILDINGS.PLANTA: {
                for (int i = 0; i < buildingData.Level; ++i)
                {
                    ((Building_Planta)b).upgrade();
                }
                ((Building_Planta)b).constructAtPos(buildingData.i, buildingData.j);
                ((Building_Planta)b).setRice((uint)buildingData.SpecialSlot1);
            }
            break;
            }
        }
    }