예제 #1
0
        //Changed by Xhj. use info as Parameter
        public IFish SpawnFish(FishInfo info)
        {
            //iType = 23;
            IFish fish = fishPoolMgr.Spawn(info.fishType);

            if (fish == null)
            {
                DebugLogger.LogWarning(eLogType.LT_LOGIC, info.fishType.ToString() + " fish spawn failed");
                return(null);
            }
            fish.Init();
            fish.FishID     = info.fishId;
            fish.LifeTime   = info.expireTime;
            fish.Lottery    = info.lottery;
            fish.CreateTime = info.createTime;
            fish.EscapeTime = info.escapePlace / 100f;
            ILevelObj obj = fish as ILevelObj;

            obj.level = this;
            FishPath path = SceneMgr.Instance.GetFishPath(info.pathId - 1);

            if (path != null)
            {
                fish.SetPath(path.start.position, path.end.position);
            }
            else
            {
                DebugLogger.LogWarning(eLogType.LT_LOGIC, "path not exist");
            }
            return(fish);
        }
예제 #2
0
        private void RemoveMoveKeyMenu_Click(object sender, EventArgs e)
        {
            var       optionsMenu = (sender as ToolStripItem).GetCurrentParent() as ContextMenuStrip;
            ILevelObj obj         = optionsMenu.Tag as ILevelObj;

            (obj[LevelObj.N_Links] as Dictionary <string, dynamic>).Remove("KeyMoveNext");
        }
예제 #3
0
        void IEditingOptionsModule.OptionsMenuOpening(ILevelObj clickedObj)
        {
            addMoveKeyMenu.Visible         = clickedObj != null && clickedObj.Prop[LevelObj.N_UnitConfig][LevelObj.N_UnitConfigBaseClass] == "KeyMoveMapParts" && !clickedObj.Prop[LevelObj.N_Links].ContainsKey("KeyMoveNext");
            removeMoveKeyMenu.Visible      = clickedObj != null && clickedObj.Prop[LevelObj.N_UnitConfig][LevelObj.N_UnitConfigBaseClass] == "KeyMoveMapParts" && clickedObj.Prop[LevelObj.N_Links].ContainsKey("KeyMoveNext");
            resetControlPointsMenu.Visible = clickedObj != null && clickedObj is RailPoint;
            if (clickedObj != null)
            {
                selectedLinksNode = clickedObj[LevelObj.N_Links] as LinksNode;
                if (selectedLinksNode.Count == 0)
                {
                    LinksMenu.Visible = false;
                    return;
                }
                LinksMenu.Visible = true;
                LinksMenu.DropDownItems.Clear();

                foreach (string k in selectedLinksNode.Keys)
                {
                    var item = LinksMenu.DropDownItems.Add(k);
                    item.Text   = k;
                    item.Click +=
                        delegate(object sender, EventArgs e) { ViewForm.EditList(selectedLinksNode[(sender as ToolStripItem).Text]); };
                }
            }
        }
예제 #4
0
        private void btnCreate_Click(object sender, EventArgs e)
        {
            if (comboBox1.Text.Trim() == "")
            {
                MessageBox.Show("This name is not valid");
                return;
            }

            if (!chbProp.Checked && OdysseyModule.ObjsDB.ContainsKey(comboBox1.Text))
            {
                Result = OdysseyModule.ObjsDB.MakeObject(comboBox1.Text);
            }
            else
            {
                Result      = new LevelObj();
                Result.Name = comboBox1.Text;
            }

            if (cbModelName.Text.Trim() != "")
            {
                Result[LevelObj.N_ModelName] = cbModelName.Text.Trim();
            }

            Result[LevelObj.N_UnitConfig][LevelObj.N_UnitConfigBaseClass] = CbParConfigName.Text == "" ? comboBox1.Text : CbParConfigName.Text;
        }
예제 #5
0
        private void AddMoveKeyMenu_Click(object sender, EventArgs e)
        {
            var       optionsMenu             = (sender as ToolStripItem).GetCurrentParent() as ContextMenuStrip;
            ILevelObj obj                     = optionsMenu.Tag as ILevelObj;
            Dictionary <string, dynamic> copy = (obj.Clone() as ILevelObj).Prop;

            obj[LevelObj.N_Links].Add("KeyMoveNext", new List <dynamic>());
            obj[LevelObj.N_Links]["KeyMoveNext"].Add(copy);
            ViewForm.EditList(selectedLinksNode["KeyMoveNext"]);
        }
예제 #6
0
        private void ResetControlPointsMenu_Click(object sender, EventArgs e)
        {
            var       optionsMenu = (sender as ToolStripItem).GetCurrentParent() as ContextMenuStrip;
            ILevelObj obj         = optionsMenu.Tag as ILevelObj;

            obj.Prop[Rail.N_CtrlPoints][0]["X"] = obj.Prop[LevelObj.N_Translate]["X"];
            obj.Prop[Rail.N_CtrlPoints][0]["Y"] = obj.Prop[LevelObj.N_Translate]["Y"];
            obj.Prop[Rail.N_CtrlPoints][0]["Z"] = obj.Prop[LevelObj.N_Translate]["Z"];

            obj.Prop[Rail.N_CtrlPoints][1]["X"] = obj.Prop[LevelObj.N_Translate]["X"];
            obj.Prop[Rail.N_CtrlPoints][1]["Y"] = obj.Prop[LevelObj.N_Translate]["Y"];
            obj.Prop[Rail.N_CtrlPoints][1]["Z"] = obj.Prop[LevelObj.N_Translate]["Z"];
        }
예제 #7
0
 void UpdateTreeView()
 {
     treeView1.Nodes.Clear();
     treeView1.Nodes.Add("Links");
     foreach (string k in LinksNode.Keys)
     {
         var node = treeView1.Nodes[0].Nodes.Add(k);
         node.Tag = k;
         for (int i = 0; i < LinksNode[k].Count; i++)
         {
             ILevelObj obj = LevelObj.FromNode(LinksNode[k][i]);
             node.Nodes.Add(obj.ToString()).Tag = obj;
         }
     }
     treeView1.Nodes[0].Expand();
 }
        public void EditChildrenNode(ILevelObj obj)
        {
            if (obj[LevelObj.N_Links] != null)
            {
                var BakLinks = ((LinksNode)obj[LevelObj.N_Links]).Clone();

                ViewForm.AddToUndo((dynamic arg) =>
                {
                    ((ILevelObj)arg[0])[LevelObj.N_Links] = arg[1];
                },
                                   $"Edited links of {obj.ToString()}",
                                   new dynamic[] { obj, BakLinks });

                new EditorFroms.LinksEditor(obj[LevelObj.N_Links], ViewForm).ShowDialog();
            }
        }
예제 #9
0
 public void EditChildrenNode(ILevelObj obj)
 {
     return;
 }
예제 #10
0
 private void btnCancel_Click(object sender, EventArgs e)
 {
     Result = null;
     this.Close();
 }