protected GameObject GetActorObject(string name)
 {
     if (this.m_actor == null)
     {
         return(null);
     }
     return(SceneUtils.FindChildBySubstring(this.m_actor.gameObject, name));
 }
    public static GameObject GetLocationObject(Spell spell)
    {
        SpellLocation location = spell.GetLocation();

        if (location == SpellLocation.NONE)
        {
            return(null);
        }
        GameObject parentObject = null;

        switch (location)
        {
        case SpellLocation.SOURCE:
            parentObject = spell.GetSource();
            break;

        case SpellLocation.SOURCE_AUTO:
            parentObject = FindAutoObjectForSpell(spell.GetSource());
            break;

        case SpellLocation.SOURCE_HERO:
        {
            Card card2 = FindHeroCard(spell.GetSourceCard());
            if (card2 == null)
            {
                return(null);
            }
            parentObject = card2.gameObject;
            break;
        }

        case SpellLocation.SOURCE_HERO_POWER:
        {
            Card card4 = FindHeroPowerCard(spell.GetSourceCard());
            if (card4 == null)
            {
                return(null);
            }
            parentObject = card4.gameObject;
            break;
        }

        case SpellLocation.SOURCE_PLAY_ZONE:
        {
            Card sourceCard = spell.GetSourceCard();
            if (sourceCard == null)
            {
                return(null);
            }
            Player   controller = sourceCard.GetEntity().GetController();
            ZonePlay play       = ZoneMgr.Get().FindZoneOfType <ZonePlay>(controller.GetSide());
            if (play == null)
            {
                return(null);
            }
            parentObject = play.gameObject;
            break;
        }

        case SpellLocation.TARGET:
            parentObject = spell.GetVisualTarget();
            break;

        case SpellLocation.TARGET_AUTO:
            parentObject = FindAutoObjectForSpell(spell.GetVisualTarget());
            break;

        case SpellLocation.TARGET_HERO:
        {
            Card card7 = FindHeroCard(spell.GetVisualTargetCard());
            if (card7 == null)
            {
                return(null);
            }
            parentObject = card7.gameObject;
            break;
        }

        case SpellLocation.TARGET_HERO_POWER:
        {
            Card card9 = FindHeroPowerCard(spell.GetVisualTargetCard());
            if (card9 == null)
            {
                return(null);
            }
            parentObject = card9.gameObject;
            break;
        }

        case SpellLocation.TARGET_PLAY_ZONE:
        {
            Card visualTargetCard = spell.GetVisualTargetCard();
            if (visualTargetCard == null)
            {
                return(null);
            }
            Player   player2 = visualTargetCard.GetEntity().GetController();
            ZonePlay play2   = ZoneMgr.Get().FindZoneOfType <ZonePlay>(player2.GetSide());
            if (play2 == null)
            {
                return(null);
            }
            parentObject = play2.gameObject;
            break;
        }

        case SpellLocation.BOARD:
            if (Board.Get() == null)
            {
                return(null);
            }
            parentObject = Board.Get().gameObject;
            break;

        case SpellLocation.FRIENDLY_HERO:
        {
            Player player3 = FindFriendlyPlayer(spell);
            if (player3 == null)
            {
                return(null);
            }
            Card heroCard = player3.GetHeroCard();
            if (heroCard == null)
            {
                return(null);
            }
            parentObject = heroCard.gameObject;
            break;
        }

        case SpellLocation.FRIENDLY_HERO_POWER:
        {
            Player player4 = FindFriendlyPlayer(spell);
            if (player4 == null)
            {
                return(null);
            }
            Card heroPowerCard = player4.GetHeroPowerCard();
            if (heroPowerCard == null)
            {
                return(null);
            }
            parentObject = heroPowerCard.gameObject;
            break;
        }

        case SpellLocation.FRIENDLY_PLAY_ZONE:
        {
            ZonePlay play3 = FindFriendlyPlayZone(spell);
            if (play3 == null)
            {
                return(null);
            }
            parentObject = play3.gameObject;
            break;
        }

        case SpellLocation.OPPONENT_HERO:
        {
            Player player5 = FindOpponentPlayer(spell);
            if (player5 == null)
            {
                return(null);
            }
            Card card13 = player5.GetHeroCard();
            if (card13 == null)
            {
                return(null);
            }
            parentObject = card13.gameObject;
            break;
        }

        case SpellLocation.OPPONENT_HERO_POWER:
        {
            Player player6 = FindOpponentPlayer(spell);
            if (player6 == null)
            {
                return(null);
            }
            Card card14 = player6.GetHeroPowerCard();
            if (card14 == null)
            {
                return(null);
            }
            parentObject = card14.gameObject;
            break;
        }

        case SpellLocation.OPPONENT_PLAY_ZONE:
        {
            ZonePlay play4 = FindOpponentPlayZone(spell);
            if (play4 == null)
            {
                return(null);
            }
            parentObject = play4.gameObject;
            break;
        }

        case SpellLocation.CHOSEN_TARGET:
        {
            Card powerTargetCard = spell.GetPowerTargetCard();
            if (powerTargetCard == null)
            {
                return(null);
            }
            parentObject = powerTargetCard.gameObject;
            break;
        }
        }
        if (parentObject == null)
        {
            return(null);
        }
        string locationTransformName = spell.GetLocationTransformName();

        if (!string.IsNullOrEmpty(locationTransformName))
        {
            GameObject obj3 = SceneUtils.FindChildBySubstring(parentObject, locationTransformName);
            if (obj3 != null)
            {
                return(obj3);
            }
        }
        return(parentObject);
    }