Example #1
0
    private void Awake()
    {
        MissionArg1 mission = new MissionArg1("M1");

        mission.SetValue("HIAT1", "生成一些物体,使得你可以绕过敌人到达出口处,并在出口处生成一些古建筑的基本元素", "3");

        MissionSystem1.ReceiveMission(mission);

        //uim 调用UIManager 中 更改mission的方法
        UIManager.ins.AddMisionUI(mission.MissionTitle, mission.MissionInner);

        MissionArg1 mission1 = new MissionArg1("M2");

        mission.SetValue("HIAT2", "用生成的古建筑基本元素,进行组合,组合好古建筑的完成形态后,你将会获得一个道具", "3");

        MissionSystem1.ReceiveMission(mission);

        //uim 调用UIManager 中 更改mission的方法
        UIManager.ins.AddMisionUI(mission.MissionTitle, mission.MissionInner);

        MissionArg1 mission2 = new MissionArg1("M3");

        mission.SetValue("HIAT3", "用新获得的道具消灭敌人,获得敌人身上的宝物", "3");

        MissionSystem1.ReceiveMission(mission);

        //uim 调用UIManager 中 更改mission的方法
        UIManager.ins.AddMisionUI(mission.MissionTitle, mission.MissionInner);
    }
    /// <summary>
    /// 接取任务
    /// </summary>
    /// <param name="missionID">任务ID</param>
    public static void ReceiveMission(MissionArg1 mission)
    {
        //第一次接取任务的时候 生成实例
        if (ins == null)
        {
            ins = new MissionSystem1();
        }

        //判断是否有该任务
        if (!ins.missionsDic.ContainsKey(mission.MissionID))
        {
            //没有
            //中间值
            // MissionArg1 mission = new MissionArg1(missionID);

            //加入到任务列表
            ins.missionsDic.Add(mission.MissionID, mission);

            Debug.Log("注册成功 ! 任务 ID :" + mission.MissionID + " 现在任务数量 : " + ins.missionsDic.Count);
        }
        else
        {
            Debug.Log("注册失败 ! 已注册的任务 ID :" + mission.MissionID);
        }
    }
    /// <summary>
    /// 完成任务
    /// </summary>
    /// <param name="missionID">任务ID</param>
    public static void UpdateMission(string missionID)
    {
        if (ins == null)
        {
            Debug.Log("没有任何任务 !");
            return;
        }

        //中间值
        MissionArg1 mission = null;

        //检查是否有该任务
        if (ins.missionsDic.TryGetValue(missionID, out mission))
        {
            //有
            //提交
            //mission.CompleteMission();

            mission.UpdateMission();
            Debug.Log("提交成功 ! 任务 ID :" + missionID);
        }
        else
        {
            Debug.Log("提交失败 ! 没有该任务 ID :" + missionID);
        }
    }
    /// <summary>
    /// 获取任务列表
    /// </summary>
    /// <returns>任务列表</returns>
    MissionArg1[] GetCurrentMissions()
    {
        //是否有接取过任务
        if (ins == null)
        {
            return(null);
        }

        //是否有正在执行的任务
        if (ins.missionsDic.Count == 0)
        {
            return(null);
        }

        //创建中间变量
        MissionArg1[] targetArrary = new MissionArg1[ins.missionsDic.Count];

        int temp = 0;

        //遍历 将所有字典中的值 存入中间变量中
        foreach (MissionArg1 mission in ins.missionsDic.Values)
        {
            targetArrary[temp] = mission;

            temp++;
            //Debug.Log(mission.MissionID);
        }

        //foreach (MissionArg mission in targetArrary)
        //{
        //    Debug.Log(mission.MissionID);
        //}

        return(targetArrary);
    }