Exemplo n.º 1
0
    public static void init(SCBaseInfo baseInfo)
    {
        gold = baseInfo.Gold;
        foreach (PBItemTable it in baseInfo.ItemTable)
        {
            ItemTable itemTable = new ItemTable();
            itemTable.Id       = it.Id;
            itemTable.ItemType = it.ItemType;
            itemTable.Para1    = it.Para1;
            itemTable.Para2    = it.Para2;
            itemTable.Price    = it.Price;
            itemTables.Add(itemTable.Id, itemTable);
        }

        foreach (PBUnitTable ut in baseInfo.UnitTable)
        {
            UnitTable unitTable = new UnitTable();
            unitTable.Id = ut.Id;
            string[] itemStrs = ut.Items.Split('|');
            unitTable.Items = new Dictionary <int, int> ();
            foreach (string itemStr in itemStrs)
            {
                if (itemStr.Length == 0)
                {
                    continue;
                }
                string[] strs = itemStr.Split(';');
                unitTable.Items.Add(int.Parse(strs[0]), int.Parse(strs[1]));
            }
            unitTable.Price = ut.Price;
            unitTables.Add(unitTable.Id, unitTable);
        }

        foreach (PBPeckTable pt in baseInfo.PeckTable)
        {
            PeckTable peckTable = new PeckTable();
            peckTable.Id      = pt.Id;
            peckTable.gold    = pt.Gold;
            peckTable.goldNum = pt.Gold;
            if (pt.Items != null && pt.Items.Length > 0)
            {
                peckTable.Items = new Dictionary <int, int> ();
                string[] itemStrs = pt.Items.Split('|');
                peckTable.Items = new Dictionary <int, int> ();
                foreach (string itemStr in itemStrs)
                {
                    if (itemStr.Length == 0)
                    {
                        continue;
                    }
                    string[] strs = itemStr.Split(';');
                    peckTable.Items.Add(int.Parse(strs[0]), int.Parse(strs[1]));
                }
            }
            peckTable.Price = pt.Price;

            peckTables.Add(peckTable.Id, peckTable);
        }
    }
Exemplo n.º 2
0
    void Start()
    {
        show(uiMain);
        // 给主界面按钮加事件
        string canvasPath = "main/ui/uiMain/Canvas/buttons/";

        levelButton = GameObject.Find(canvasPath + "level2").GetComponent <Button>();
        levelButton.onClick.AddListener(delegate() {
            // 打开level 界面
//			Debug.Log("open level window");
            Sound.playSound(SoundType.Click);
            openLevelWindow();
        });
        unlimitButton = GameObject.Find(canvasPath + "unlimit2").GetComponent <Button>();
        unlimitButton.onClick.AddListener(delegate() {
            // 打开unlimit 界面
            Debug.Log("open unlimit window");
            Sound.playSound(SoundType.Click);
            openUnlimitWindow();
        });
        onlineButton = GameObject.Find(canvasPath + "online2").GetComponent <Button>();
        onlineButton.onClick.AddListener(delegate() {
            //Job.startJob(Params.energyJobKey, delegate() {
            //	Debug.Log("sdfsdfsdfs");
            //},10);
            // 打开online 界面
            Debug.Log("open online window");
            Sound.playSound(SoundType.Click);
            openOnlineWindow();
        });
        // uiLevel 关闭按钮
        GameObject closeGo     = GameObject.Find("main/ui/uiLevel/Canvas/close");
        Button     closeButton = closeGo.GetComponent <Button> ();

        closeButton.onClick.AddListener(delegate() {
            Sound.playSound(SoundType.Click);
            show(uiMain);
        });
        // uiUnlimit 关闭按钮和进入按钮
        Button go = GameObject.Find("main/ui/uiUnlimit/Canvas/go").GetComponent <Button>();

        go.onClick.AddListener(delegate() {
            Sound.playSound(SoundType.Click);
            CSUnlimitedGo unlimitedGo = new CSUnlimitedGo();
            SocketManager.SendMessageAsyc((int)MiGongOpcode.CSUnlimitedGo, CSUnlimitedGo.SerializeToBytes(unlimitedGo), delegate(int opcode, byte[] data) {
                ui.SetActive(false);
                SCUnlimitedGo ret = SCUnlimitedGo.Deserialize(data);
                // 剩余精力
                Params.startEnergySchedule(ret.Energy.Energy, ret.Energy.RefreshTime);
                int[] stars = { ret.Star1, ret.Star2, ret.Star3, ret.Star4 };
                createMap(MapMode.Unlimited, ret.Map.ToArray(), ret.Beans, ret.Time, ret.Speed, ret.Start, ret.End, ret.Pass, ret.EnemyCount, null, stars, null, null);
            });
        });
        closeButton = GameObject.Find("main/ui/uiUnlimit/Canvas/close").GetComponent <Button>();
        closeButton.onClick.AddListener(delegate() {
            Sound.playSound(SoundType.Click);
            show(uiMain);
        });
        // uiOnline 关闭按钮和进入按钮
        go = GameObject.Find("main/ui/uiOnline/Canvas/go").GetComponent <Button>();
        go.onClick.AddListener(delegate() {
            Sound.playSound(SoundType.Click);
            OnPvpClick();
        });
        closeButton = GameObject.Find("main/ui/uiOnline/Canvas/close").GetComponent <Button>();
        closeButton.onClick.AddListener(delegate() {
            Sound.playSound(SoundType.Click);
            show(uiMain);
        });
        // 获取登陆基本信息
        CSBaseInfo baseInfo = new CSBaseInfo();

        SocketManager.SendMessageAsyc((int)MiGongOpcode.CSBaseInfo, CSBaseInfo.SerializeToBytes(baseInfo), delegate(int opcode, byte[] data) {
            SCBaseInfo ret = SCBaseInfo.Deserialize(data);
            // TODO 显示精力
            // 系统参数
            foreach (PBSysPara sp in ret.SysParas)
            {
                sysParas.Add(sp.Key, sp.Value);
            }
            Params.sysParas = sysParas;

            Params.energyRecoverTime = int.Parse(sysParas["energyRecoverTime"]);
            // 精力相关
            Params.startEnergySchedule(ret.Energy.Energy, ret.Energy.RefreshTime);

            foreach (PBNewGuide newGuide in ret.NewGuide)
            {
                guideStep.Add(newGuide.Id, newGuide.Step);
            }
            this.openPass = ret.OpenPass;
            // 道具表
            Params.init(ret);
            // 无尽版和pvp是否开启
            doShowLock();
            // 初始化无尽版的每日星数奖励
            //string para = sysParas["unlimitedAwardStar"];
            //string[] paras = para.Split(';');
            Slider slider       = unlimitedAwardGo.transform.Find("starSlider").GetComponent <Slider>();
            RectTransform buRec = unlimitedAwardGo.transform.Find("starSlider").GetComponent <RectTransform> ();
            int len             = ret.UnlimitedRewardTable.Count;
            slider.maxValue     = ret.UnlimitedRewardTable[len - 1].Star;
            Object ob           = Resources.Load("chest");

            unlimitedAwardSegs = new UnlimitedAwardSeg[len];
            for (int i = 0; i < len; i++)
            {
                GameObject chestGo = Instantiate(ob) as GameObject;
                chestGo.transform.localPosition = new Vector3(
                    buRec.rect.width / slider.maxValue * ret.UnlimitedRewardTable[i].Star - buRec.rect.width / 2, 0, 0);
                chestGo.transform.SetParent(unlimitedAwardGo.transform, false);
                UnlimitedAwardSeg unlimitedAward = unlimitedAwardSegs[i] = new UnlimitedAwardSeg();
                unlimitedAward.star          = ret.UnlimitedRewardTable[i].Star;
                unlimitedAward.image         = chestGo.GetComponent <Image>();
                Button bt                    = chestGo.GetComponent <Button>();
                int index                    = i;
                PBUnlimitedRewardTable table = ret.UnlimitedRewardTable[i];
                bt.onClick.AddListener(delegate
                {
                    Sound.playSound(SoundType.Click);
                    // 如果达到了,就直接领取了,然后就是确定,否则就是显示,然后是确定
                    if (unlimitedAward.state == 1)
                    {
                        // 领取
                        Sound.playSound(SoundType.Click);
                        CSUnlimitedAward award = new CSUnlimitedAward();
                        award.Index            = index;
                        SocketManager.SendMessageAsyc((int)MiGongOpcode.CSUnlimitedAward, CSUnlimitedAward.SerializeToBytes(award), (opcode2, data2) => {
                            SCUnlimitedAward retAward   = SCUnlimitedAward.Deserialize(data2);
                            unlimitedAward.image.sprite = SpriteCache.getSprite("box/open");
                            unlimitedAward.state        = 2;
                            // 显示
                            WarnDialog.reward(Message.getText("gainReward"), Message.getText("ok"), table.Gold, table.Reward, null);
                        });
                    }
                    else
                    {
                        // 显示
                        WarnDialog.reward(Message.getText("dailyReward"), Message.getText("ok"), table.Gold, table.Reward, null);
                    }
                });
            }
        });

        // 账号,分享,帮助

        Button accountButton = GameObject.Find(canvasPath + "more/account").GetComponent <Button>();

        accountButton.onClick.AddListener(delegate() {
            Debug.Log("account");
            Sound.playSound(SoundType.Click);
            closeMorePanel();
            doAccount();
        });
        ssdk.showUserHandler = GetUserInfoResultHandler;
        Button shareButton = GameObject.Find(canvasPath + "more/share").GetComponent <Button>();

        shareButton.onClick.AddListener(delegate() {
            Debug.Log("share");
//			doShare();
            Sound.playSound(SoundType.Click);
            closeMorePanel();
            shareWeChat1.transform.parent.gameObject.SetActive(true);
        });
        ssdk.shareHandler = ShareResultHandler;
        // 分享的三个按钮就
        shareWeChat1.onClick.AddListener(delegate() {
            Debug.Log("share WeChat");
            Sound.playSound(SoundType.Click);
            doShare(PlatformType.WeChat);
        });
        shareWeChat2.onClick.AddListener(delegate() {
            Debug.Log("share WeChatMoments");
            Sound.playSound(SoundType.Click);
            doShare(PlatformType.WeChatMoments);
        });
        closeShare.onClick.AddListener(delegate() {
            Sound.playSound(SoundType.Click);
            shareWeChat1.transform.parent.gameObject.SetActive(false);
        });

        exit.onClick.AddListener(delegate() {
            Sound.playSound(SoundType.Click);
            Application.Quit();
        });

        // show more
        Button moreButton = GameObject.Find(canvasPath + "moreBt").GetComponent <Button>();

        moreButton.onClick.AddListener(delegate() {
            GameObject moreGo = GameObject.Find(canvasPath + "more");
            moreGo.SetActive(!moreGo.activeSelf);
        });
        // hide more
        Button hideMoreButton = GameObject.Find(canvasPath + "more/clickPanel").GetComponent <Button>();

        hideMoreButton.onClick.AddListener(delegate() {
            closeMorePanel();
        });
        //
        Button helpButton = GameObject.Find(canvasPath + "more/help").GetComponent <Button>();

        helpButton.onClick.AddListener(delegate() {
            Debug.Log("help");
//			WarnDialog.showWarnDialog("test",null,false,10,20);
            Sound.playSound(SoundType.Click);
            closeMorePanel();
            Help guideControl = uiHelp.GetComponent <Help>();
            guideControl.showHelp();
        });

        // 背包,商店
        Button packetButton = GameObject.Find(canvasPath + "packet").GetComponent <Button>();

        packetButton.onClick.AddListener(delegate() {
            Debug.Log("backet");
            Sound.playSound(SoundType.Click);
            uiPacket.GetComponent <Packet>().showPacket();
        });
        Button shopButton = GameObject.Find(canvasPath + "shop").GetComponent <Button>();

        shopButton.onClick.AddListener(delegate() {
            Debug.Log("shop");
            Sound.playSound(SoundType.Click);
            uiShop.GetComponent <Shop>().showShop();
        });

        // 对战中显示奖励界面的进入地图按钮
        Button showRewardOk = uiLevel.transform.Find("Canvas/showReward/dialog/ok").GetComponent <Button>();

        showRewardOk.onClick.AddListener(delegate() {
            Sound.playSound(SoundType.Click);
            onIntoPassClick();
        });
        Button showRewardClose = uiLevel.transform.Find("Canvas/showReward/dialog/close").GetComponent <Button>();

        showRewardClose.onClick.AddListener(delegate() {
            Sound.playSound(SoundType.Click);
            uiLevel.transform.Find("Canvas/showReward").gameObject.SetActive(false);
        });

        // 联网对战按钮
        //
        SocketManager.AddServerSendReceive((int)MiGongOpcode.SCMatchingSuccess, matchSuccess);
        SocketManager.AddServerSendReceive((int)MiGongOpcode.SCMatchingFail, delegate(int opcode, byte[] receiveData) {
            Debug.Log("");
            matching.matchFail();
        });
        SocketManager.AddServerSendReceive((int)MiGongOpcode.SCBegin, delegate(int opcode, byte[] receiveData) {
            Debug.Log("");
        });
        SocketManager.AddServerSendReceive((int)AccountOpcode.SCBeTakePlace, delegate(int opcode, byte[] receiveData) {
            WarnDialog.showWarnDialog("你的账号在其它地方登录!", delegate() {
                Application.Quit();
            }, true);
        });
    }