private void addStateToTargetIfPersistent(AnimatedAbility ability, AnimatedCharacter target)
 {
     if (ability.Persistent)
     {
         AnimatableCharacterState newstate = new AnimatableCharacterStateImpl(ability, target);
         newstate.AbilityAlreadyPlayed = true;
         target.AddState(newstate);
     }
 }
        public void AddDefaultState(string defaultState, bool playImmediately = true)
        {
            if (Repository.CharacterByName.ContainsKey(HeroVirtualTabletop.AnimatedAbility.DefaultAbilities.CHARACTERNAME))
            {
                AnimatedAbility defaultAbility = Repository?.CharacterByName?[HeroVirtualTabletop.AnimatedAbility.DefaultAbilities.CHARACTERNAME]
                                                 ?.Abilities?[defaultState];

                if (defaultAbility != null)
                {
                    AnimatableCharacterState state = new AnimatableCharacterStateImpl(defaultAbility, this);
                    AddState(state, playImmediately);
                }
            }
            NotifyOfPropertyChange(() => ActiveStates.Count);
        }