Пример #1
0
 public void InvokeEvent(string name, NDictionary data)
 {
     if (mEventHandlerMap.ContainsKey(name))
     {
         mEventHandlerMap[name](data);
     }
 }
Пример #2
0
    void GetGroupRanking(int index)
    {
        NDictionary args = new NDictionary();

        args.Add("pagecount", index);
        FacadeSingleton.Instance.InvokeService("RPCGetGroupRanking", ConstVal.Service_Sanctuary, args);
    }
Пример #3
0
    void OnBuildingUpgrade(NetMsgDef msg)
    {
        TSCUpgrade upgrade = TSCUpgrade.ParseFrom(msg.mBtsData);

        if (!upgrade.IsState && upgrade.IsGroup && upgrade.IsResource && upgrade.IsProduction)
        {
            sanctuaryPackage.StartUpgrade(upgrade); FacadeSingleton.Instance.InvokeService("RPCGetResourceInfo", ConstVal.Service_Sanctuary);
        }
        else
        {
            NDictionary data = new NDictionary();
            data.Add("title", "升级失败");
            string content = "";
            if (upgrade.IsState)
            {
                content = "建筑正在升级中";
            }
            else if (!upgrade.IsGroup)
            {
                content = "庄园等级低于要求\n解锁/升级建筑以提升等级";
            }
            else if (!upgrade.IsResource)
            {
                content = "资源数量不足\n可至交易所中购买";
            }
            else if (!upgrade.IsProduction)
            {
                content = "其他建筑正在升级或解锁中";
            }
            data.Add("content", content);
            data.Add("method", 1);
            FacadeSingleton.Instance.OpenUtilityPanel("UIMsgBoxPanel");
            SendEvent("OpenMsgBox", data);
        }
    }
Пример #4
0
    public void Initialize(NDictionary args)
    {
        SanctuaryPackage sanctuaryPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Sanctuary) as SanctuaryPackage;
        int      configID = args.Value <int>("id");
        bool     isUnlock = args.Value <bool>("isunlock");
        UILabel  label    = transform.Find("label").GetComponent <UILabel>();
        BUILDING config   = ConfigDataStatic.GetConfigDataTable("BUILDING")[configID] as BUILDING;

        if (isUnlock == true)
        {
            label.text = string.Format("{0} Lv.{1}", config.BldgName, sanctuaryPackage.GetBulidingLevelByConfigID(configID));
        }
        else
        {
            UserPackage userPackage  = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_User) as UserPackage;
            int         curLevel     = userPackage.GetManorLevel();
            int         requireLevel = config.BldgLvLim;
            if (curLevel >= requireLevel)
            {
                label.text = string.Format("[90FF15]可解锁[-]");
            }
            else
            {
                label.text = string.Format("庄园Lv.{0} 解锁", requireLevel);
            }
        }
        name = config.BldgName;
    }
Пример #5
0
    void GetPageCount()
    {
        NDictionary args = new NDictionary();

        args.Add("groupid", userPackage.GroupID);
        FacadeSingleton.Instance.InvokeService("RPCGetMailCount", ConstVal.Service_Sanctuary, args);
    }
Пример #6
0
    public void Initialize(NDictionary data)
    {
        args = data;
        int id = args.Value <int>("id");

        SetIcon(id);
    }
Пример #7
0
    void RefreshPlayerLevel(NDictionary data = null)
    {
        float progres = 0f;

        levelLabel.text      = string.Format("Lv.{0}", userPackage.GetPlayerLevel(out progres).ToString());
        expProgressBar.value = progres;
    }
Пример #8
0
 void RefreshStoreHouse(NDictionary data = null)
 {
     //update cap label
     capLabel.text = string.Format("仓库容量:{0}/{1}", itemPackage.GetRousourceTotalCap(), sanctuaryPackage.GetStoreHouseCap());
     //refresh tableview
     tableView.TableChange();
 }
Пример #9
0
    public List <NItemInfo> GetBuildingUpgradeCost(NDictionary args)
    {
        if (args == null)
        {
            return(null);
        }
        int fromConfigID = args.Value <int>("configID");
        List <NItemInfo> costInfoList  = new List <NItemInfo>();
        var      buildingConfigDataMap = ConfigDataStatic.GetConfigDataTable("BUILDING");
        BUILDING buildingConfigData    = buildingConfigDataMap[fromConfigID] as BUILDING;

        for (int i = 0; i < buildingConfigData.CostTableCount; i++)
        {
            var costData = buildingConfigData.GetCostTable(i);
            int configID = costData.CostId;
            if (configID == 0)
            {
                continue;
            }
            int       number = costData.CostQty;
            NItemInfo info   = new NItemInfo();
            info.configID = configID;
            info.number   = number;
            costInfoList.Add(info);
        }
        return(costInfoList);
    }
Пример #10
0
    void OnCollect()
    {
        NDictionary args = new NDictionary();

        args.Add("buildingID", selectionBuilding.BuildingID);
        FacadeSingleton.Instance.InvokeService("RPCReceive", ConstVal.Service_Sanctuary, args);
    }
Пример #11
0
    void CreateCallback(UIInput input)
    {
        NDictionary args = new NDictionary();

        args.Add("name", input.value);
        FacadeSingleton.Instance.InvokeService("RPCCreateGroup", ConstVal.Service_Common, args);
    }
Пример #12
0
    void OnGetJoinGroupResult(NetMsgDef msg)
    {
        TSCApplyGroup res     = TSCApplyGroup.ParseFrom(msg.mBtsData);
        string        title   = "加入失败";
        string        content = "";

        if (!res.Exist)
        {
            FacadeSingleton.Instance.OverlayerPanel("UIMsgBoxPanel");
            NDictionary args = new NDictionary();
            content = "该ID不存在";
            args.Add("title", title);
            args.Add("content", content);
            SendEvent("OpenMsgBox", args);
            return;
        }
        if (res.Full)
        {
            FacadeSingleton.Instance.OverlayerPanel("UIMsgBoxPanel");
            NDictionary args = new NDictionary();
            content = "该庄园人员上限已满";
            args.Add("title", title);
            args.Add("content", content);
            SendEvent("OpenMsgBox", args);
            return;
        }
        UserPackage userPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_User) as UserPackage;

        userPackage.SetGroupID(res.GroupId);
        SceneLoader.LoadScene("SLoading");
    }
Пример #13
0
    void InitView()
    {
        NBuildingInfo info            = sanctuarytPackage.GetBuildingInfo(selecttionBuilding.BuildingID);
        var           buildingDataMap = ConfigDataStatic.GetConfigDataTable("BUILDING");
        BUILDING      buildingData    = buildingDataMap[info.configID] as BUILDING;
        int           level           = sanctuarytPackage.GetBulidingLevelByConfigID(info.configID);

        titleLabel.text   = string.Format("{0} Lv.{1}", buildingData.BldgName, level);
        contentLable.text = buildingData.BldgInfo;
        //render 3d model
        string prefabName = buildingData.PrefabName;

        if (!string.IsNullOrEmpty(prefabName))
        {
            NDictionary data = new NDictionary();
            prefabName = prefabName.Substring(0, prefabName.IndexOf("."));
            GameObject prefab = Resources.Load <GameObject>("Prefabs/Building/" + prefabName);
            if (prefab != null)
            {
                data.Add("model", prefab);
                modelGo = FacadeSingleton.Instance.InvokeService("OpenSubRenderer", ConstVal.Service_Sanctuary, data) as GameObject;
            }
        }
        //get attribute data
        int count = sanctuarytPackage.GetBuildingAttribute(selecttionBuilding, level);

        tableView.DataCount = count;
        tableView.TableChange();
    }
 void Close(NDictionary data = null)
 {
     if (isOpen)
     {
         FacadeSingleton.Instance.BackPanel();
     }
 }
Пример #15
0
 public void UpgradeBuilding(NDictionary args)
 {
     if (args == null)
     {
         return;
     }
 }
Пример #16
0
    void OnReceive(NetMsgDef msg)
    {
        TSCReceive receive    = TSCReceive.ParseFrom(msg.mBtsData);
        long       buildingID = receive.BuildingId;
        int        configID   = receive.ConfigId;
        int        num        = receive.Number;

        sanctuaryPackage.Receive(buildingID, receive);
        NBuildingInfo info = sanctuaryPackage.GetBuildingInfo(buildingID);

        if (sanctuaryPackage.GetBuildingFuncByConfigID(info.configID) == BuildingFunc.Craft)
        {
            SendEvent("RefreshCraftPanel");
        }
        NDictionary data = new NDictionary();

        if (configID == 0)   //elec
        {
            string content = string.Format("获得电力 x {0}", num);
            data.Add("content", content);
        }
        else
        {
            ITEM_RES itemConfig = itemPackage.GetItemDataByConfigID(configID);
            string   content    = string.Format("获得{0} x {1}", itemConfig.MinName, num);
            data.Add("content", content);
        }
        //info.number = Mathf.Max(0, info.number - num);
        //info.building.SetCollect(false);
        info.building.RefreshHud();
        FacadeSingleton.Instance.OpenUtilityPanel("UITipsPanel");
        FacadeSingleton.Instance.SendEvent("OpenTips", data);
        FacadeSingleton.Instance.InvokeService("RPCGetResourceInfo", ConstVal.Service_Sanctuary);
    }
Пример #17
0
 void HideNameBoard(NDictionary args = null)
 {
     if (hudBinder != null)
     {
         hudBinder.RemoveHud(HudType.NameBoard);
     }
 }
Пример #18
0
    void CheckIfCanUnlockOrUpgrade(NDictionary data = null)
    {
        if (hudBinder == null)
        {
            return;
        }
        hudBinder.RemoveHud(HudType.Exmind);
        int configID = 0;

        if (buildingID != 0)     // if can upgrade
        {
            NBuildingInfo info = sanctuaryPackage.GetBuildingInfo(buildingID);
            configID = info.configID + 1;
            if (sanctuaryPackage.GetBulidingLevelByConfigID(configID) >= 20)
            {
                return;
            }
        }
        else
        {
            configID = sanctuaryPackage.GetConfigIDByBuildingType(buildingType);
        }

        if (sanctuaryPackage.IsAbleToUnlockOrUpgrade(configID))
        {
            CanUnlockOrUpgrade = true;
            hudBinder.AddHud(HudType.Exmind);
        }
        else
        {
            CanUnlockOrUpgrade = false;
        }
    }
Пример #19
0
    void BuyItemResponce(NetMsgDef msg)
    {
        TSCBuyGoods res = TSCBuyGoods.ParseFrom(msg.mBtsData);
        string      content;

        if (res.IsChange)
        {
            content = "价格已改变, 请重新操作";
            FacadeSingleton.Instance.InvokeService("RPCGetItemTradeInfo", ConstVal.Service_Sanctuary);
        }
        else if (res.IsLimit)
        {
            content = "购买达到上限";
            FacadeSingleton.Instance.InvokeService("RPCGetPurchase", ConstVal.Service_Sanctuary);
        }
        else
        {
            ITEM_RES config = itemPackage.GetItemDataByConfigID(res.ConfigId);
            double   price  = itemPackage.GetItemPrice(res.ConfigId);
            content = string.Format("购买{0} x {1}单位\n消耗黄金{2}", config.MinName, res.Number, price * res.Number);
            FacadeSingleton.Instance.InvokeService("RPCGetPurchase", ConstVal.Service_Sanctuary);
            FacadeSingleton.Instance.InvokeService("RPCGetResourceInfo", ConstVal.Service_Sanctuary);
        }
        FacadeSingleton.Instance.OpenUtilityPanel("UIMsgBoxPanel");
        NDictionary args = new NDictionary();

        args.Add("content", content);
        args.Add("method", 1);
        SendEvent("OpenMsgBox", args);
    }
Пример #20
0
    void OnUpgrade()
    {
        NDictionary args = new NDictionary();

        args.Add("buildingID", sanctuaryPackage.GetSelectionBuilding().BuildingID);
        FacadeSingleton.Instance.InvokeService("RPCUpgradeBuliding", ConstVal.Service_Sanctuary, args);
        FacadeSingleton.Instance.BackPanel();
    }
Пример #21
0
    void ShowEventIcon(NDictionary data = null)
    {
        DynamicPackage dynamicPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Dynamic) as DynamicPackage;

        dynamicPackage.CalculateBuff();
        tableView.DataCount = dynamicPackage.GetBuffList().Count;
        tableView.TableChange();
    }
Пример #22
0
    void OnStartCraft()
    {
        NDictionary args = new NDictionary();

        args.Add("buildingID", selectionBuilding.BuildingID);
        args.Add("num", craftNum);
        FacadeSingleton.Instance.InvokeService("RPCCraft", ConstVal.Service_Sanctuary, args);
    }
Пример #23
0
    public void AddHud(HudType type, NDictionary args = null)
    {
        HudInfo info = new HudInfo();

        info.type = type;
        info.args = args;
        hudInfoList.Add(info);
    }
Пример #24
0
    void OnUnlock()
    {
        NDictionary data = new NDictionary();

        data.Add("configID", sanctuaryPackage.GetConfigIDByBuildingType(sanctuaryPackage.GetSelectionBuilding().buildingType));
        FacadeSingleton.Instance.InvokeService("RPCUnlockBuilding", ConstVal.Service_Sanctuary, data);
        FacadeSingleton.Instance.BackPanel();
    }
Пример #25
0
    void OnBuyItem()
    {
        FacadeSingleton.Instance.OverlayerPanel("UIItemValuePanel");
        NDictionary args = new NDictionary();

        args.Add("isbuy", true);
        FacadeSingleton.Instance.SendEvent("OpenItemValue", args);
    }
Пример #26
0
    protected void OnClick()
    {
        NDictionary data = new NDictionary();
        NTradeInfo  info = dynamicPackage.GetFilteredTradeInfoList()[mIndex];

        data.Add("id", info.configID);
        FacadeSingleton.Instance.SendEvent("TradeSelecItem", data);
    }
Пример #27
0
    void GetPageList(int index)
    {
        NDictionary args = new NDictionary();

        args.Add("pageidx", index);
        args.Add("groupid", userPackage.GroupID);
        FacadeSingleton.Instance.InvokeService("RPCGetMailPageList", ConstVal.Service_Sanctuary, args);
    }
Пример #28
0
    void OnChat()
    {
        FacadeSingleton.Instance.OpenUtilityPanel("UITipsPanel");
        NDictionary data    = new NDictionary();
        string      content = string.Format("此功能尚未完成,请期待后续版本");

        data.Add("content", content);
        FacadeSingleton.Instance.SendEvent("OpenTips", data);
    }
Пример #29
0
 void OnLogin()
 {
     if (CheckString(userName.value))
     {
         NDictionary data = new NDictionary();
         data.Add("username", userName.value);
         FacadeSingleton.Instance.InvokeService("Login", ConstVal.Service_Common, data);
     }
 }
Пример #30
0
    public void RPCGetGroupRanking(NDictionary args)
    {
        var builder = TCSGetGroupRanking.CreateBuilder();

        builder.CurrentPage = args.Value <int>("pagecount");
        TCSGetGroupRanking msg = builder.Build();

        NetSingleton.Instance.SendNetMsg(NetType.Netty, (short)Cmd.GETGROUPRANKING, msg.ToByteArray());
    }