override protected void ModifyEditorObject(GameObject target, BubbleData.ModifierData data)
        {
            sprite = sprite ?? GlobalState.AssetService.LoadAsset <Sprite>(SPRITE_PATH);

            target.GetComponent <Image>().sprite = sprite;
            AddTextToBubble(target, string.Format("R{0}", int.Parse(data.data) + 1));
        }
        override protected void ModifyEditorObject(GameObject target, BubbleData.ModifierData data)
        {
            sprite = sprite ?? GlobalState.AssetService.LoadAsset <Sprite>(SPRITE_PATH);

            var rescueSprite = CreateRescueSprite(target);
            var image        = rescueSprite.AddComponent <Image>();

            image.sprite = sprite;

            var rectTransform = rescueSprite.GetComponent <RectTransform>();

            rectTransform.sizeDelta = target.GetComponent <RectTransform>().sizeDelta;
        }
 override protected void ModifyGameObject(GameObject target, BubbleData.ModifierData data)
 {
     CreateInstance(target);
 }
 override protected void ModifyBubbleData(BubbleData bubbleData, BubbleData.ModifierData data)
 {
     // This modifier makes no changes to the bubble data.
 }
 override protected void ModifyGameObject(GameObject target, BubbleData.ModifierData data)
 {
     // This modifier makes no changes to the game object.
 }
 override protected void ModifyBubbleData(BubbleData bubbleData, BubbleData.ModifierData data)
 {
     bubbleData.Type = Configuration.Randoms[int.Parse(data.data)].GetValue();
 }
 abstract protected void ModifyEditorObject(GameObject target, BubbleData.ModifierData data);
 abstract protected void ModifyBubbleData(BubbleData bubbleData, BubbleData.ModifierData data);