Exemplo n.º 1
0
        public void SetChildAction(ModelActionEditor action)
        {
            foreach (var item in _childActor)
            {
                ActorConfigEditor        actor = item.Value;
                List <ModelActionEditor> list  = null;
                if (action.IsSkillAction)
                {
                    list = actor.SkillActions;
                }
                else
                {
                    list = actor.GeneralActions;
                }

                int index = list.FindIndex(s => s.ActionName.Equals(action.ActionName));
                if (index == -1)
                {
                    ModelActionEditor add = Clipboard.Paste <ModelActionEditor>();
                    add.ActState = ModelActionEditor.ActionState.New;
                    list.Add(add);
                    continue;
                }

                if (list[index].ActState == ModelActionEditor.ActionState.Override)
                {
                    continue;
                }

                Clipboard.Copy(action, CopyModes.DeepCopy);
                ModelActionEditor temp = Clipboard.Paste <ModelActionEditor>();
                temp.ResetActorEditor(actor);
                list[index] = temp;
            }
        }
Exemplo n.º 2
0
        void AddChildActor(ActorConfigEditor childCfg)
        {
            var modelDict = childCfg.GetGeneralActionDict();

            foreach (var item in GeneralActions)
            {
                if (modelDict.ContainsKey(item.ActionName))
                {
                    modelDict[item.ActionName].ActState = ModelActionEditor.ActionState.Override;
                }
                else
                {
                    Clipboard.Copy(item, CopyModes.DeepCopy);
                    ModelActionEditor action = Clipboard.Paste <ModelActionEditor>();
                    action.ActState = ModelActionEditor.ActionState.Inherit;
                    childCfg.GeneralActions.Add(action);
                    action.ResetActorEditor(childCfg);
                }
            }
            var skillDict = childCfg.GetSkillActionDict();

            foreach (var item in SkillActions)
            {
                if (skillDict.ContainsKey(item.ActionName))
                {
                    skillDict[item.ActionName].ActState = ModelActionEditor.ActionState.Override;
                }
                else
                {
                    Clipboard.Copy(item, CopyModes.DeepCopy);
                    ModelActionEditor action = Clipboard.Paste <ModelActionEditor>();
                    action.ActState = ModelActionEditor.ActionState.Inherit;
                    childCfg.SkillActions.Add(action);
                    action.ResetActorEditor(childCfg);
                }
            }
            if (!_childActor.ContainsKey(childCfg.ModelName))
            {
                _childActor.Add(childCfg.ModelName, childCfg);
            }
        }