コード例 #1
0
        static public new void SelectCom(GKToyNode node)
        {
            switch (node.doubleClickType)
            {
            // Dialogue.
            case 2:
                GKToyMakerDialogueCom.PopupTaskWindow();
                GKToyMakerDialogueCom.InitSubData((GKToyDialogue)node);
                break;

            // Dialogue condition.
            case 4:
                GKToyMakerDialogueConditionCom.PopupTaskWindow();
                GKToyMakerDialogueConditionCom.InitSubData((GKToyDialogueCondition)node);
                break;

            // Dialogue exit.
            case 5:
                GKToyMakerDialogueExitCom.PopupTaskWindow();
                GKToyMakerDialogueExitCom.InitSubData((GKToyDialogueExit)node);
                break;

            // Dialogue action.
            case 6:
                GKToyMakerDialogueActionCom.PopupTaskWindow();
                GKToyMakerDialogueActionCom.InitSubData((GKToyDialogueAction)node);
                break;

            default:
                break;
            }
        }
コード例 #2
0
        static public void SelectCom(GKToyNode node, GKToyData data)
        {
            switch (node.doubleClickType)
            {
            // Task.
            case 0:
                GKToyMakerTaskCom.PopupTaskWindow();
                GKToyMakerTaskCom.InitSubData((GKToyTask)node, data);
                break;

            // Interact Task.
            case 1:
                GKToyMakerSubInteractCom.PopupTaskWindow();
                GKToyMakerSubInteractCom.InitSubData((GKToySubTaskInteract)node, data);
                break;

            // Hunt Task.
            case 2:
                GKToyMakerSubHuntingCom.PopupTaskWindow();
                GKToyMakerSubHuntingCom.InitSubData((GKToySubTaskHunting)node, data);
                break;

            // Collect Task.
            case 4:
                GKToyMakerSubCollectCom.PopupTaskWindow();
                GKToyMakerSubCollectCom.InitSubData((GKToySubTaskCollect)node, data);
                break;

            default:
                break;
            }
        }
コード例 #3
0
ファイル: GKToyDialogueMaker.cs プロジェクト: denniscxl/GkDll
 protected override void _CreateNode(GKToyNode node)
 {
     base._CreateNode(node);
     if ("GKToyTaskDialogue.GKToyDialogue" == node.className)
     {
         ((GKToyDialogue)node).NodeID = ++CurRenderData.curLiteralId;
     }
 }
コード例 #4
0
        static public new void SelectCom(GKToyNode node)
        {
            switch (node.doubleClickType)
            {
            // Dialogue.
            case 2:
                GKToyMakerDialogueCom.PopupTaskWindow();
                GKToyMakerDialogueCom.InitSubData((GKToyDialogue)node);
                break;

            default:
                break;
            }
        }
コード例 #5
0
ファイル: GKToyTaskMaker.cs プロジェクト: denniscxl/GkDll
 /// <summary>
 /// 添加链接时,添加任务间的关系
 /// </summary>
 /// <param name="srcNode"></param>
 /// <param name="destNode"></param>
 /// <param name="paramKey"></param>
 protected override void _AddLink(GKToyNode srcNode, GKToyNode destNode, string paramKey)
 {
     base._AddLink(srcNode, destNode, paramKey);
     if ("GKToyTaskEditor.GKToyTask" == srcNode.className)
     {
         if ("GKToyTaskEditor.GKToyTask" == destNode.className)
         {
             GKToyTask destTask = (GKToyTask)destNode;
             ((GKToyTask)srcNode).nextTaskIds.Add(destTask.id);
             destTask.preTaskIds.Add(srcNode.id);
             if (1 < destTask.preTaskIds.Count)
             {
                 destTask.preSeperator.Add("&");
             }
         }
         else if (destNode.className.Contains("GKToyTaskEditor.GKToySubTask"))
         {
             _SetMainTask((GKToySubTask)destNode, (GKToyTask)srcNode);
         }
     }
     else if (srcNode.className.Contains("GKToyTaskEditor.GKToySubTask"))
     {
         if ("GKToyTaskEditor.GKToyTask" == destNode.className)
         {
             GKToyTask destTask = (GKToyTask)destNode;
             int       mainId   = ((GKToySubTask)srcNode).mainTask;
             if (CurRenderData.nodeLst.ContainsKey(mainId))
             {
                 ((GKToyTask)CurRenderData.nodeLst[mainId]).nextTaskIds.Add(destTask.id);
                 destTask.preTaskIds.Add(mainId);
                 if (1 < destTask.preTaskIds.Count)
                 {
                     destTask.preSeperator.Add("&");
                 }
             }
         }
         else if (destNode.className.Contains("GKToyTaskEditor.GKToySubTask"))
         {
             int mainId = ((GKToySubTask)srcNode).mainTask;
             if (CurRenderData.nodeLst.ContainsKey(mainId))
             {
                 _SetMainTask((GKToySubTask)destNode, (GKToyTask)CurRenderData.nodeLst[mainId]);
             }
         }
     }
 }
コード例 #6
0
ファイル: GKToyTaskMaker.cs プロジェクト: denniscxl/GkDll
 protected override void _RemoveNode(GKToyNode node)
 {
     base._RemoveNode(node);
     if ("GKToyTaskEditor.GKToyTask" == node.className)
     {
         GKToyTask taskNode = (GKToyTask)node;
         string    path     = string.Format("{0}/TaskDfg/AcceptDfg_{1}.Asset", ToyMakerBase._defaultOverlordPath, taskNode.TaskID.Value);
         if (File.Exists(path))
         {
             AssetDatabase.DeleteAsset(path);
         }
         path = string.Format("{0}/TaskDfg/SubmitDfg_{1}.Asset", ToyMakerBase._defaultOverlordPath, taskNode.TaskID.Value);
         if (File.Exists(path))
         {
             AssetDatabase.DeleteAsset(path);
         }
         path = string.Format("{0}/TaskDfg/AcceptDfg_{1}.prefab", ToyMakerBase._defaultOverlordPath, taskNode.TaskID.Value);
         if (File.Exists(path))
         {
             AssetDatabase.DeleteAsset(path);
         }
         path = string.Format("{0}/TaskDfg/SubmitDfg_{1}.prefab", ToyMakerBase._defaultOverlordPath, taskNode.TaskID.Value);
         if (File.Exists(path))
         {
             AssetDatabase.DeleteAsset(path);
         }
         AssetDatabase.Refresh();
     }
     else if ("GKToyTaskEditor.GKToySubTaskInteract" == node.className)
     {
         GKToySubTaskInteract taskNode = (GKToySubTaskInteract)node;
         string path = string.Format("{0}/TaskDfg/Interact_{1}.Asset", ToyMakerBase._defaultOverlordPath, taskNode.TargetID.Value);
         if (File.Exists(path))
         {
             AssetDatabase.DeleteAsset(path);
         }
         path = string.Format("{0}/TaskDfg/Interact_{1}.prefab", ToyMakerBase._defaultOverlordPath, taskNode.TargetID.Value);
         if (File.Exists(path))
         {
             AssetDatabase.DeleteAsset(path);
         }
         AssetDatabase.Refresh();
     }
 }
コード例 #7
0
        static NodeElement _GenerateTaskConfigData(GKToyNode mainNode, GKToyNode subNode, int rank)
        {
            NodeElement     taskConfig = new NodeElement();
            List <NodeAttr> fields     = new List <NodeAttr>();

            fields.Add(new NodeAttr("TaskID", mainNode.LiteralId.ToString()));
            fields.Add(new NodeAttr("TargetID", subNode.LiteralId.ToString()));
            fields.Add(new NodeAttr("TarSeq", rank.ToString()));
            if (0 == subNode.links.Count)
            {
                fields.Add(new NodeAttr("IfAdd", "0"));
            }
            else
            {
                fields.Add(new NodeAttr("IfAdd", "1"));
            }
            taskConfig.attrs = fields;
            return(taskConfig);
        }
コード例 #8
0
 static void _FindSubTask(GKToyData data, GKToyNode parenNode, GKToyNode curNode, GameData subTaskData, GameData taskConfigData, Type exportType, int layer, GameData taskTextData, List <GKToyData> dfgDatas)
 {
     foreach (Link link in curNode.links)
     {
         NodeElement tmpItem = new NodeElement();
         if (!data.nodeLst.ContainsKey(link.next))
         {
             return;
         }
         curNode = (GKToyNode)data.nodeLst[link.next];
         if ("GKToyTaskEditor.GKToyTask" == curNode.className)
         {
             return;
         }
         tmpItem.attrs = _GetFieldsWithAttribute(((GKToySubTask)curNode).TargetID.ToString(), curNode, exportType, taskTextData, dfgDatas, data);
         subTaskData.Add(tmpItem);
         taskConfigData.Add(_GenerateTaskConfigData(parenNode, curNode, layer));
         _FindSubTask(data, parenNode, curNode, subTaskData, taskConfigData, exportType, layer + 1, taskTextData, dfgDatas);
     }
 }
コード例 #9
0
ファイル: GKToyTaskMaker.cs プロジェクト: denniscxl/GkDll
 protected override void _CreateNode(GKToyNode node)
 {
     base._CreateNode(node);
     if ("GKToyTaskEditor.GKToyTask" == node.className)
     {
         GKToyTask taskNode = (GKToyTask)node;
         taskNode.initTaskId      = CurRenderData.curLiteralId++;
         taskNode.TaskID          = taskNode.initTaskId;
         taskNode.AcceptDfgObject = _CreateDialogueData(string.Format("{0}/TaskDfg/", ToyMakerBase._defaultOverlordPath), taskNode.TaskID.Value, "AcceptDfg");
         taskNode.SubmitDfgObject = _CreateDialogueData(string.Format("{0}/TaskDfg/", ToyMakerBase._defaultOverlordPath), taskNode.TaskID.Value, "SubmitDfg");
         AssetDatabase.Refresh();
     }
     else if (node.className.Contains("GKToyTaskEditor.GKToySubTask"))
     {
         GKToySubTask taskNode = (GKToySubTask)node;
         if ("GKToyTaskEditor.GKToySubTaskInteract" == node.className)
         {
             ((GKToySubTaskInteract)taskNode).InteractDfgObject = _CreateDialogueData(string.Format("{0}/TaskDfg/", ToyMakerBase._defaultOverlordPath), taskNode.TargetID.Value, "Interact");
             AssetDatabase.Refresh();
         }
     }
 }
コード例 #10
0
ファイル: GKToyTaskMaker.cs プロジェクト: denniscxl/GkDll
 /// <summary>
 /// 删除链接时,删除任务间的关系
 /// </summary>
 /// <param name="srcNode"></param>
 /// <param name="destNode"></param>
 protected override void _RemoveLink(GKToyNode srcNode, GKToyNode destNode)
 {
     base._RemoveLink(srcNode, destNode);
     if ("GKToyTaskEditor.GKToyTask" == srcNode.className)
     {
         if ("GKToyTaskEditor.GKToyTask" == destNode.className)
         {
             GKToyTask destTask = (GKToyTask)destNode;
             ((GKToyTask)srcNode).nextTaskIds.Remove(destTask.id);
             int linkId = destTask.preTaskIds.IndexOf(srcNode.id);
             if (0 <= linkId && 0 < destTask.preSeperator.Count)
             {
                 destTask.preTaskIds.RemoveAt(linkId);
                 if (0 == linkId)
                 {
                     destTask.preSeperator.RemoveAt(0);
                 }
                 else
                 {
                     destTask.preSeperator.RemoveAt(linkId - 1);
                 }
             }
         }
         else if (destNode.className.Contains("GKToyTaskEditor.GKToySubTask"))
         {
             _CancelMainTask((GKToySubTask)destNode, (GKToyTask)srcNode);
         }
     }
     else if (srcNode.className.Contains("GKToyTaskEditor.GKToySubTask"))
     {
         if ("GKToyTaskEditor.GKToyTask" == destNode.className)
         {
             GKToyTask destTask = (GKToyTask)destNode;
             int       mainId   = ((GKToySubTask)srcNode).mainTask;
             if (CurRenderData.nodeLst.ContainsKey(mainId))
             {
                 ((GKToyTask)CurRenderData.nodeLst[mainId]).nextTaskIds.Remove(destTask.id);
                 int linkId = destTask.preTaskIds.IndexOf(mainId);
                 if (0 <= linkId && 0 < destTask.preSeperator.Count)
                 {
                     destTask.preTaskIds.RemoveAt(linkId);
                     if (0 == linkId)
                     {
                         destTask.preSeperator.RemoveAt(0);
                     }
                     else
                     {
                         destTask.preSeperator.RemoveAt(linkId - 1);
                     }
                 }
             }
         }
         else if (destNode.className.Contains("GKToyTaskEditor.GKToySubTask"))
         {
             int mainId = ((GKToySubTask)srcNode).mainTask;
             if (CurRenderData.nodeLst.ContainsKey(mainId))
             {
                 _CancelMainTask((GKToySubTask)destNode, (GKToyTask)CurRenderData.nodeLst[mainId]);
             }
         }
     }
 }