Inheritance: ObservableObject
コード例 #1
0
        public SkillMetadataEventArgs(SkillMetadata skill)
        {
            if (skill == null)
            throw new ArgumentNullException("skill");

              this.skill = skill;
        }
コード例 #2
0
        public void AddSkill(SkillMetadata skill)
        {
            if (skill == null)
            {
                throw new ArgumentNullException("skill");
            }

            string skillName  = skill.Name.Trim();
            bool   wasUpdated = false;

            if (skills.ContainsKey(skillName))
            {
                wasUpdated = true;
            }

            skills[skillName] = skill;

            if (wasUpdated)
            {
                OnSkillChanged(skill);
            }
            else
            {
                OnSkillAdded(skill);
            }
        }
コード例 #3
0
        void OnSkillRemoved(SkillMetadata skill)
        {
            var handler = this.SkillRemoved;

            if (handler != null)
            {
                handler(this, new SkillMetadataEventArgs(skill));
            }
        }
コード例 #4
0
        public SkillMetadataEventArgs(SkillMetadata skill)
        {
            if (skill == null)
            {
                throw new ArgumentNullException("skill");
            }

            this.skill = skill;
        }
コード例 #5
0
        public SkillMetadata GetSkill(string skillName)
        {
            skillName = skillName.Trim();

            SkillMetadata skill = null;

            skills.TryGetValue(skillName, out skill);

            return(skill);
        }
コード例 #6
0
 public void CopyTo(SkillMetadata other)
 {
     other.Name           = Name;
     other.Class          = Class;
     other.GroupName      = GroupName;
     other.ManaCost       = ManaCost;
     other.Cooldown       = Cooldown;
     other.IsAssail       = IsAssail;
     other.OpensDialog    = OpensDialog;
     other.CanImprove     = CanImprove;
     other.RequiresDisarm = RequiresDisarm;
 }
コード例 #7
0
        public bool RenameSkill(string originalName, string newName)
        {
            SkillMetadata skill    = null;
            var           wasFound = skills.TryRemove(originalName, out skill);

            if (wasFound)
            {
                OnSkillRemoved(skill);
                skills[newName] = skill;
                OnSkillAdded(skill);
            }

            return(wasFound);
        }
コード例 #8
0
        public void AddSkill(SkillMetadata skill)
        {
            if (skill == null)
            throw new ArgumentNullException("skill");

              string skillName = skill.Name.Trim();
              bool wasUpdated = false;

              if (skills.ContainsKey(skillName))
            wasUpdated = true;

              skills[skillName] = skill;

              if (wasUpdated)
            OnSkillChanged(skill);
              else
            OnSkillAdded(skill);
        }
コード例 #9
0
        public SkillEditorWindow(SkillMetadata skill, bool isEditMode = true)
            : this()
        {
            nameTextBox.Text = originalName = skill.Name;
              groupNameTextBox.Text = skill.GroupName;
              manaUpDown.Value = skill.ManaCost;
              cooldownTextBox.Text = skill.Cooldown.ToShortEnglish();
              assailCheckBox.IsChecked = skill.IsAssail;
              dialogCheckBox.IsChecked = skill.OpensDialog;
              improveCheckBox.IsChecked = !skill.CanImprove;
              disarmCheckBox.IsChecked = skill.RequiresDisarm;

              SetPlayerClass(skill.Class);

              this.IsEditMode = isEditMode;

              if (isEditMode)
            this.Title = "Edit Skill";
        }
コード例 #10
0
        void OnSkillRemoved(SkillMetadata skill)
        {
            var handler = this.SkillRemoved;

              if (handler != null)
            handler(this, new SkillMetadataEventArgs(skill));
        }
コード例 #11
0
 public void CopyTo(SkillMetadata other)
 {
     other.Name = Name;
       other.Class = Class;
       other.GroupName = GroupName;
       other.ManaCost = ManaCost;
       other.Cooldown = Cooldown;
       other.IsAssail = IsAssail;
       other.OpensDialog = OpensDialog;
       other.CanImprove = CanImprove;
       other.RequiresDisarm = RequiresDisarm;
 }
コード例 #12
0
        void EditSkill(SkillMetadata skill)
        {
            var originalName = skill.Name;

              var skillWindow = new SkillEditorWindow(skill);
              skillWindow.Owner = this;

              var result = skillWindow.ShowDialog();
              if (!result.HasValue || !result.Value)
            return;

              skillWindow.Skill.CopyTo(skill);
              BindingOperations.GetBindingExpression(skillListView, ListView.ItemsSourceProperty).UpdateTarget();

              if (!string.Equals(skill.Name, originalName, StringComparison.Ordinal))
            SkillMetadataManager.Instance.RenameSkill(originalName, skill.Name);

              skillListView.SelectedItem = skill;
              skillListView.ScrollIntoView(skill);
        }