protected virtual void ApplyEncounterImage()
        {
            if (CurrentKey != null && SpriteCollection.ContainsKey(CurrentKey))
            {
                SpriteCollection.Remove(CurrentKey);
            }

            CurrentWaitableSpriteKey.SetResult(EncounterImageKey);
        }
        protected override void Remove()
        {
            if (CurrentKey != null && SpriteCollection.ContainsKey(CurrentKey))
            {
                SpriteCollection.Remove(CurrentKey);
            }

            CurrentWaitableSpriteKey.SetResult(null);

            base.Remove();
        }
        protected virtual void ApplyContentImage()
        {
            if (CurrentImage != null)
            {
                if (CurrentKey != null && SpriteCollection.ContainsKey(CurrentKey))
                {
                    SpriteCollection[CurrentKey] = CurrentImage;
                }
                else if (CurrentKey != null)
                {
                    SpriteCollection.Add(CurrentKey, CurrentImage);
                }
                else
                {
                    CurrentKey = SpriteCollection.Add(CurrentImage);
                }
            }

            CurrentWaitableSpriteKey.SetResult(CurrentKey);
        }
        protected override void ApplyClicked()
        {
            if (CurrentImage != null)
            {
                if (CurrentKey != null && SpriteCollection.ContainsKey(CurrentKey))
                {
                    SpriteCollection[CurrentKey] = CurrentImage;
                }
                else if (CurrentKey != null)
                {
                    SpriteCollection.Add(CurrentKey, CurrentImage);
                }
                else
                {
                    CurrentKey = SpriteCollection.Add(CurrentImage);
                }
            }

            CurrentWaitableSpriteKey.SetResult(CurrentKey);

            base.ApplyClicked();
        }