示例#1
0
 private ActionType(int id, CreatureType type, ActionTargetType targetType, string name)
 {
     this.nId           = id;
     this.eCreatureType = type;
     // this.bRequireTarget = requireTarget;
     this.targetType = targetType;
     this.sName      = name;
 }
示例#2
0
        /// <summary>
        /// Удаляет все объекты или переменные из связанных действий
        /// </summary>
        private void RemoveFromAssignedObjects(ActionTargetType targetType, string targetName)
        {
            var hasChanges = false;

            foreach (var source in ViewModels.Where(t => t is IActionProperties)
                     .Cast <IActionProperties>()
                     .Where(t => t.ActionProperties.HasActions))
            {
                var actions = source.ActionProperties.Actions;
                for (var i = 0; i < actions.Count; i++)
                {
                    var action = actions[i];
                    if (action.TargetType != targetType)
                    {
                        continue;
                    }

                    var targetVariableName = action.Result.TargetName;
                    if (!Common.IsSameName(targetName, targetVariableName))
                    {
                        continue;
                    }

                    if (!hasChanges)
                    {
                        hasChanges = true;
                    }
                    source.ActionProperties.Actions.Remove(action);
                }
            }

            if (hasChanges && targetType == ActionTargetType.Variable)
            {
                RefreshSelected();
            }
        }