示例#1
0
    public UiProfileBallItem Setup(int ballId)
    {
        id = ballId;
        ballImage.sprite = GlobalFactory.Balls.GetSprite(ballId);
        UpdateState();

        button.onClick.AddListener(() =>
        {
            switch (currState)
            {
            case State.Owned:
                {
                    Profile.Avatar.BallId = ballId;
                    transform.root.Broadcast(Messages.Type.AvatarChanged, Profile.Avatar.Current);
                }
                break;

            case State.Enabled:
                {
                    var price = GlobalFactory.Balls.GetPrice(ballId);
                    Game.SpendGems(price, () =>
                    {
                        Profile.AddBall(ballId);
                        Profile.Avatar.BallId = ballId;
                        Game.Instance.OpenPopup <Popup_Rewards>().Setup(ballId, 0, 0, 0, 0, true, false, () =>
                        {
                            transform.parent.Broadcast(Messages.Type.BallPurchased);
                            transform.root.Broadcast(Messages.Type.AvatarChanged, Profile.Avatar.Current);
                        });
                        GlobalAnalytics.SinkGem(price, "profile", "ball");
                    });
                }
                break;

            case State.Disabled:
                break;
            }
        });
        return(this);
    }