public static FarmlandBuildingMetaData Load(bool processing = false)
    {
        if (!SaveLoadManager.SharedManager.IsFileExist <FarmlandBuildingMetaData>())
        {
            FarmlandBuildingMetaData newData = new FarmlandBuildingMetaData();

            newData.taskStartTime = DateTime.Now;
            newData.taskEndTime   = DateTime.Now;

            newData.Save();

            return(newData);
        }

        FarmlandBuildingMetaData data = SaveLoadManager.SharedManager.Load <FarmlandBuildingMetaData> ();

        if (processing)
        {
            data.ProcessData();

            data.Save();
        }


        return(data);
    }
    protected override IEnumerator CheckTaskComplete()
    {
        FarmlandBuildingMetaData data = FarmlandBuildingMetaData.Load();

        while (!data.IsTaskComplete())
        {
            yield return(new WaitForSeconds(1f));
        }

        CompleteTask();
    }
예제 #3
0
    //pull data from fake server
    void DoFetchData()
    {
        Debug.Log("Fetch data");
        FarmlandBuildingMetaData data = FarmlandBuildingMetaData.Load(true);

        resourceId               = data.resourceId;
        collectPerDuration       = data.collectPerDuration;
        resourceRegenPerDuration = data.resourceRegenPerDuration;
        maxResourceStore         = data.maxResourceStore;
        _currentResourceStore    = data.currentResourceStore;

        Debug.Log("current resource:" + data.currentResourceStore);

        if ((data.hasTask) && (_task == null))
        {
            Debug.Log("Resume task");

            _task = FoodResourceGenerateTask.CreateTask <FoodResourceGenerateTask>(data.resourceId, data.resourceRegenPerDuration, OnResourceTaskComplete, OnTimeLeftToComplete, data.taskDuration);

            TaskManager.Instance.AddTask(_task);
        }
        else if (_currentResourceStore < maxResourceStore)
        {
            Debug.Log("Add task");
            AddResourceRegenTask();
        }
        else
        {
            _task = null;
        }

        if (_currentResourceStore > 0)
        {
            EventManager.GetInstance().ExecuteEvent <EventCollectResource> (new EventCollectResource(transform, resourceId, _currentResourceStore));
        }
    }
예제 #4
0
    //notify fake server to transfer resource from temp to player resource
    bool DoTransferResource()
    {
        FarmlandBuildingMetaData data = FarmlandBuildingMetaData.Load();

        return(data.TransferResourceToPlayer());
    }
예제 #5
0
    //notify fake server to start a new task
    bool DoStartRegenTask()
    {
        FarmlandBuildingMetaData data = FarmlandBuildingMetaData.Load();

        return(data.StartRegenTask());
    }