Exemplo n.º 1
0
    public override void Execute(INotification notification)
    {
        //生成随机奖励
        //获取Proxy,可以定义出来,不需要每次都获取
        BonusProxy bonus = Facade.RetrieveProxy(BonusProxy.NAME) as BonusProxy;

        if (bonus != null)
        {
            //生成随机奖励
            bonus.Clear();
            //bonus.RandomCreate();
            bonus.CreateRewardPool(12);

            Debug.Log("start REFRESH_BONUS_UI");

            MainPanelMediator mediator = Facade.RetrieveMediator(MainPanelMediator.NAME) as MainPanelMediator;

            //先清除已有的BonusItem
            //mediator.DestroyAll ();
            bool newCreate = mediator.BonusItemCount == 0;

            GameObject obj = null;
            for (int i = 0; i < bonus.BonusLists.Count; ++i)
            {
                if (newCreate)
                {
                    obj = mediator.InstanceBonusItem();
                    obj.SetActive(true);
                }
                else
                {
                    obj = mediator.BonusItem(i);
                }


                BonusIem item = obj.GetComponent <BonusIem> ();
                if (item != null)
                {
                    //更新Item
                    item.UpdateItem(bonus.BonusLists[i]);
                }
                //mediator.BonusItemLists.Add (obj);
                mediator.AddItems(obj);
            }

            //更新UI,并显示MainPanelView面板
            SendNotification(MyFacade04.REFRESH_BONUS_UI);

            Debug.Log("==============RefreshRewardPoolCommand done");
        }
    }
Exemplo n.º 2
0
    public override void Execute(INotification notification)
    {
        //开始随机
        BonusProxy bonus = MyFacade.Instance.RetrieveProxy(BonusProxy.NAME) as BonusProxy;
        int        id    = Random.Range(0, bonus.BonusLists.Count);

        Debug.Log("result:" + bonus.BonusLists[id].Name + "," + bonus.BonusLists[id].Reward);

        //改变数值 并发送消息
        PlayerDataProxy playerData = Facade.RetrieveProxy(PlayerDataProxy.NAME) as PlayerDataProxy;

        if (playerData != null)
        {
            playerData.GetReward(bonus.BonusLists[id].Reward, bonus.BonusLists[id].Name);
            Debug.Log("================PlayCommand");
        }
    }