コード例 #1
0
    void OnBecameVisible()
    {
        MutableDataWellapadTask task = WellapadMissionController.Instance.GetTask(minigameTaskId);

        if (task != null && task.isReward == RewardStatuses.Unclaimed)
        {
            notifier.SetActive(true);
        }
    }
コード例 #2
0
    /// <summary>
    /// Refreshs check.
    /// Function that checks to see if the wellapad missions
    /// list should be refreshed.  If it should, it will
    /// delete the current save data.
    /// </summary>
    public void RefreshCheck()
    {
        //do not refresh wellapad task for lite version
        // if(VersionManager.IsLite()) return;

        DateTime now          = LgDateTime.GetTimeNow();
        TimeSpan sinceCreated = now - DataManager.Instance.GameData.Wellapad.DateMissionsCreated;

        // the list needs to be refreshed if it has been more than 12 hours from creation OR the creation time frame (morning/evening)
        // is different than the current time frame (morning/evening)
        DateTime dateMissionsCreated = DataManager.Instance.GameData.Wellapad.DateMissionsCreated;
        bool     IsRefresh           = sinceCreated.TotalHours >= 12 ||
                                       PlayPeriodLogic.GetTimeFrame(now) != PlayPeriodLogic.GetTimeFrame(dateMissionsCreated);

        //bool IsRefresh = needMission;
        // alert...if the user has not finished the last tutorial, no matter what, don't refresh

        /*if(!DataManager.Instance.GameData.Tutorial.AreTutorialsFinished())
         *      IsRefresh = false;*/

        // if we have to refresh, just delete our data...the missions list will take it from there
        if (IsRefresh)
        {
            //Before reseting mission. Go through current mission and send failed tasks to analytics server
            foreach (KeyValuePair <string, MutableDataWellapadTask> taskList in DataManager.Instance.GameData.Wellapad.CurrentTasks)
            {
                MutableDataWellapadTask _task = taskList.Value;

                //task is incomplete
                if (_task.Completed == WellapadTaskCompletionStates.Uncompleted)
                {
                    Analytics.Instance.WellapadTaskEvent(Analytics.TASK_STATUS_FAIL,
                                                         _task.TaskID, _task.TaskID);
                    if (_task.TaskID == "DailyInhaler")
                    {
                        Analytics.Instance.DidUseInhaler(false);
                    }
                }
            }

            DataManager.Instance.GameData.Wellapad.ResetMissions();

            //AddDefaultMissions();

            // have the screens of the wellapad refresh before we send out the event below, because we want to make sure the
            // missions screen is active
            //WellapadUIManager.Instance.RefreshScreen();

            // send event
            if (OnMissionsRefreshed != null)
            {
                OnMissionsRefreshed(this, EventArgs.Empty);
            }
            IsRefresh = false;
        }
    }
コード例 #3
0
    private MiniPetRetentionPet retentionScript;        // Reference to minipet logic

    public void InitializeContent(string taskID, MiniPetRetentionPet retentionScript)
    {
        this.retentionScript = retentionScript;
        rewardButton.SetActive(false);
        if (DataManager.Instance.GameData.Wellapad.CurrentTasks.ContainsKey("DailyInhaler"))
        {
            List <MutableDataWellapadTask> listTasks = WellapadMissionController.Instance.GetTaskGroup("TutorialPart1");
            task = listTasks[0];
            ImmutableDataWellapadTask missionTask = DataLoaderWellapadTasks.GetTask(task.TaskID);
            SetCheckboxSprite(true, slash1);
            task = listTasks[1];
            SetCheckboxSprite(true, slash2);
            ImmutableDataWellapadTask missionTask2 = DataLoaderWellapadTasks.GetTask(task.TaskID);
            mission1Localize.text = Localization.Localize("Task_" + missionTask.GetTaskID());
            mission2Localize.text = Localization.Localize("Task_" + missionTask2.GetTaskID());
            mission3Localize.gameObject.SetActive(false);
            mission4Localize.gameObject.SetActive(false);
            if (WellapadMissionController.Instance.GetTaskStatus(listTasks[0]) == WellapadTaskCompletionStates.Completed &&
                WellapadMissionController.Instance.GetTaskStatus(listTasks[1]) == WellapadTaskCompletionStates.Completed)
            {
                rewardButton.SetActive(true);
                GameObject peb = MiniPetManager.Instance.MiniPetTable["MiniPet0"];
                rewardButton.GetComponent <Button>().onClick.AddListener(() => peb.GetComponent <MiniPetRetentionPet>().OnTurnInButton());
            }
        }
        else
        {
//			Debug.Log(DataManager.Instance.GameData.Wellapad.CurrentTasks[taskID].RewardStatus);
            if (DataManager.Instance.GameData.Wellapad.CurrentTasks[taskID].isReward == RewardStatuses.Unclaimed ||
                DataManager.Instance.GameData.Wellapad.CurrentTasks[taskID].isReward == RewardStatuses.Unearned)
            {
                //Debug.Log(taskID);
                List <MutableDataWellapadTask> listTasks = WellapadMissionController.Instance.GetTaskGroup("Critical");
                task = listTasks[0];
                SetCheckboxSprite(true, slash1);
                ImmutableDataWellapadTask missionTask = DataLoaderWellapadTasks.GetTask(task.TaskID);
                rewardButton.GetComponent <LgWorldButtonMessage>().target = MiniPetManager.Instance.MiniPetTable["MiniPet0"];
                task = listTasks[1];
                SetCheckboxSprite(true, slash2);
                ImmutableDataWellapadTask missionTask2 = DataLoaderWellapadTasks.GetTask(task.TaskID);
                task = listTasks[2];
                SetCheckboxSprite(true, slash3);
                ImmutableDataWellapadTask missionTask3 = DataLoaderWellapadTasks.GetTask(task.TaskID);
                if (WellapadMissionController.Instance.GetTaskStatus(listTasks[0]) == WellapadTaskCompletionStates.Completed && WellapadMissionController.Instance.GetTaskStatus(listTasks[1]) == WellapadTaskCompletionStates.Completed && WellapadMissionController.Instance.GetTaskStatus(listTasks[2]) == WellapadTaskCompletionStates.Completed)
                {
                    rewardButton.SetActive(true);
                }
                mission1Localize.text = Localization.Localize("Task_" + missionTask.GetTaskID());
                mission2Localize.text = Localization.Localize("Task_" + missionTask2.GetTaskID());
                mission3Localize.text = Localization.Localize("Task_" + missionTask3.GetTaskID());
                mission4Localize.gameObject.SetActive(false);
            }
        }
    }
コード例 #4
0
 public void SetTask(string miniPetID, MutableDataWellapadTask Task)
 {
     if (MiniPetProgress.ContainsKey(miniPetID))
     {
         MiniPetProgress[miniPetID].Task = Task;
     }
     else
     {
         Debug.LogError("Can not find minipet in progress dictionary " + miniPetID);
     }
 }
コード例 #5
0
    //---------------------------------------------------
    // CreateMission()
    // Given a mission type, this function will add
    // entries to the Wellapad for the mission; the mission
    // reward, and tasks.
    //---------------------------------------------------
    private void CreateMission(string missionType)
    {
        // find the available tasks for the mission and add them
        MutableDataWellapadTask task = WellapadMissionController.Instance.GetTask(missionType);

        GameObject goTask = GameObjectUtils.AddChild(goGrid, prefabTask);

        SetNameForGrid(goTask);

        // init this task UI with the task itself
        goTask.GetComponent <WellapadTaskUI>().Init(task);
    }
コード例 #6
0
    //---------------------------------------------------
    // Init()
    //---------------------------------------------------
    public void Init(MutableDataWellapadTask task)
    {
        // cache the task
        this.task = task;

        // set the description for this task
        SetDesc();

        // set the checkbox sprite appropriately
        SetCheckboxSprite(false);

        // listen for various messages
        WellapadUIManager.Instance.OnTweenDone += OnTweenDone;                              // whent he ui finishes tweening
    }
コード例 #7
0
 private void TurnInMission()
 {
     if (isFinishEating)
     {
         MutableDataWellapadTask task = WellapadMissionController.Instance.GetTask(minigameTaskId);
         if (task != null && task.isReward == RewardStatuses.Unclaimed)
         {
             // Claim the reward
             MiniPetManager.Instance.IncreaseXp(minipetId);
             MiniPetGameMasterUIController gameMasterUI = (MiniPetGameMasterUIController)MiniPetHUDUIManager.Instance.SelectedMiniPetContentUIScript;
             WellapadMissionController.Instance.ClaimReward(minigameTaskId, rewardObject: gameMasterUI.GetRewardButton());
             WellapadMissionController.Instance.RefreshCheck();
             gameMasterUI.HideRewardButton();
         }
     }
 }
コード例 #8
0
    private MiniPetGameMaster gameMasterScript;                 // Reference to minipet logic

    public void InitializeContent(string taskID, MinigameTypes type, MiniPetGameMaster gameMasterScript)
    {
        this.gameMasterScript = gameMasterScript;
        task = WellapadMissionController.Instance.GetTask(taskID);
        ImmutableDataWellapadTask missionTask = DataLoaderWellapadTasks.GetTask(task.TaskID);
        string desc = missionTask.GetText();

        if (task.Amount > 0)
        {
            desc = String.Format(desc, task.Amount);
        }
        label.text        = desc;
        spriteIcon.sprite = SpriteCacheManager.GetSprite("mapIcons" + type.ToString());
        rewardButton.SetActive(false);
        SetCheckboxSprite(true);
    }
コード例 #9
0
    /// <summary>
    /// This function will return true if at least one
    /// mission the user has is either unclaimed or
    /// unearned reward.
    /// </summary>
    /// <returns><c>true</c> if this instance has active tasks; otherwise, <c>false</c>.</returns>
    public bool HasActiveTasks()
    {
        // start off assuming inactive
        bool isActive = false;

        // loop through all missions and check their reward status
        foreach (KeyValuePair <string, MutableDataWellapadTask> task in DataManager.Instance.GameData.Wellapad.CurrentTasks)
        {
            MutableDataWellapadTask thisTask = task.Value;
            if (thisTask.isReward == RewardStatuses.Unearned || thisTask.isReward == RewardStatuses.Unclaimed)
            {
                isActive = true;
            }
        }

        return(isActive);
    }
コード例 #10
0
    public override void FinishEating()
    {
        if (!isFinishEating)
        {
            base.FinishEating();
            isFinishEating = true;
            miniPetSpeechAI.BeQuiet();
            miniPetSpeechAI.ShowChallengeMsg(minigameType);
            minigameTaskId = PickMinigameMissionKey(minigameType);

            WellapadMissionController.Instance.AddTask(minigameTaskId);

            MutableDataWellapadTask task = WellapadMissionController.Instance.GetTask(minigameTaskId);
            DataManager.Instance.GameData.MiniPets.SetTask(minipetId, task);

            OpenGameMasterContent();
        }
        MiniPetHUDUIManager.Instance.CheckStoreButtonPulse();
    }
コード例 #11
0
    /// <summary>
    /// This function was called because some task in
    /// missionID was just completed, so we need to see
    /// if that mission's reward needs a status update.  This
    /// is kind of heavy handed, but I'm not sure how else
    /// to do it at the moment.
    /// Note that this doesn't actually effect the UI...it
    /// just keeps our internal state correct.  It's done
    /// this way because our save system needs ot save
    /// primitives.
    /// </summary>
    /// <param name="taskID">Mission ID.</param>
    private void RewardCheck(string taskID)
    {
        // do some legality checks

        // mission exists
        if (!DataManager.Instance.GameData.Wellapad.CurrentTasks.ContainsKey(taskID))
        {
            Debug.LogError("Reward is attempted to be check for an illegal mission: " + taskID);
            return;
        }

        // reward is currently unearned
        MutableDataWellapadTask task = DataManager.Instance.GameData.Wellapad.CurrentTasks[taskID];

        if (task.Category == MiniGameCategory.Critical)
        {
            foreach (KeyValuePair <string, MutableDataWellapadTask> _task in DataManager.Instance.GameData.Wellapad.CurrentTasks)
            {
                if (_task.Value.Category == MiniGameCategory.Critical)
                {
                    if (_task.Value.isReward == RewardStatuses.Unearned)
                    {
                        return;
                    }
                }
            }
        }
        else
        {
            if (task.isReward != RewardStatuses.Unclaimed)
            {
                Debug.LogError("Reward check revealed illegal state for reward for mission " + taskID);
                return;
            }
        }

        // if we get here it means that all tasks in the mission are complete -- the reward is now unclaimed
        task.isReward = RewardStatuses.Unclaimed;
    }
コード例 #12
0
    public List <MutableDataWellapadTask> GetTaskGroup(string missionID)
    {
        List <MutableDataWellapadTask> listTask = new List <MutableDataWellapadTask>();

        if (missionID == "TutorialPart1")
        {
            MutableDataWellapadTask task = new MutableDataWellapadTask(DataLoaderWellapadTasks.GetTask("DailyInhaler"));
            listTask.Add(task);
            MutableDataWellapadTask task2 = new MutableDataWellapadTask(DataLoaderWellapadTasks.GetTask("FightMonster"));
            listTask.Add(task2);
        }
        if (missionID == "Critical")
        {
            foreach (MutableDataWellapadTask task in DataManager.Instance.GameData.Wellapad.CurrentTasks.Values)
            {
                if (task.Category == MiniGameCategory.Critical)
                {
                    listTask.Add(task);
                }
            }
        }
        return(listTask);
    }
コード例 #13
0
    /// <summary>
    /// Gets the task status. Returns whether the user has completed the incoming
    /// task or not.
    /// </summary>
    /// <returns>The task status.</returns>
    /// <param name="task">Task.</param>
    public WellapadTaskCompletionStates GetTaskStatus(MutableDataWellapadTask task, bool bPop = false)
    {
        WellapadTaskCompletionStates status = WellapadTaskCompletionStates.Uncompleted;

        string taskID = task.TaskID;

        if (DataManager.Instance.GameData.Wellapad.CurrentTasks.ContainsKey(taskID) &&
            DataManager.Instance.GameData.Wellapad.CurrentTasks.ContainsKey(taskID))
        {
            status = DataManager.Instance.GameData.Wellapad.CurrentTasks[taskID].Completed;

            // if the status is recently completed and we are popping, "pop" it by setting it to just plain completed now
            if (bPop && status == WellapadTaskCompletionStates.RecentlyCompleted)
            {
                DataManager.Instance.GameData.Wellapad.CurrentTasks[taskID].Completed = WellapadTaskCompletionStates.Completed;
            }
        }
        else
        {
            Debug.LogError("Can't find task " + taskID + " in saved data");
        }

        return(status);
    }