Exemplo n.º 1
0
    /// <summary>
    /// 钻石裂魂
    /// </summary>
    private void HuntStarSoulByRmb(int index, ErlArray arr)
    {
        StarSoulManager    manager   = StarSoulManager.Instance;
        StorageManagerment smanager  = StorageManagerment.Instance;
        ArrayList          starSouls = new ArrayList();
        int debrisNumber             = StringKit.toInt(arr.Value [index++].getValueString());

        if (debrisNumber > 0)
        {
            manager.addDebrisNumber(debrisNumber);
        }
        ErlArray starSoulArr = arr.Value [index++] as ErlArray;

        if (starSoulArr != null && starSoulArr.Value.Length > 0)
        {
            StarSoul starSoul;
            for (int i = 0; i < starSoulArr.Value.Length; i++)
            {
                starSoul = manager.createStarSoul(starSoulArr.Value[i] as ErlArray);
                smanager.addHuntStarSoulStorage(starSoul, true);
                starSoul.isNew = false;
                starSouls.Add(starSoul);
            }
            StorageManagerment.Instance.huntStarSoulStorageVersion++;
        }
        if (callback != null)
        {
            callback(starSouls, debrisNumber, 0);
            callback = null;
        }
    }
Exemplo n.º 2
0
    public override void read(ErlKVMessage message)
    {
        string str = (message.getValue("msg") as ErlType).getValueString();

        if (StringKit.isNum(str))
        {
            if (starSoulList != null && starSoulList.Count > 0)
            {
                StorageManagerment smanager = StorageManagerment.Instance;
                for (int i = 0; i < starSoulList.Count; i++)
                {
                    (starSoulList[i] as Card).delStarSoulBoreByAll();
                }
            }
            callback(StringKit.toInt(str));
        }
        else
        {
            if (str == "money_full")
            {
                MessageWindow.ShowAlert(LanguageConfigManager.Instance.getLanguage("goldLimit"));
            }
            else
            {
                MessageWindow.ShowAlert(str);
            }
            if (callback != null)
            {
                callback = null;
            }
        }
    }
Exemplo n.º 3
0
    /// <summary>
    /// 获取星魂槽上所有的星魂
    /// </summary>
    public StarSoul[] getStarSoulByAll()
    {
        if (bores == null || bores.Count == 0)
        {
            return(null);
        }
        List <StarSoul>    temList = new List <StarSoul>();
        StarSoul           starSoul;
        StorageManagerment manager = StorageManagerment.Instance;
        StarSoulBore       starSoulBore;

        for (int i = 0; i < bores.Count; i++)
        {
            starSoulBore = (StarSoulBore)bores[i];
            if (starSoulBore.getSid() != 0)
            {
                starSoul = new StarSoul("0", starSoulBore.getSid(), starSoulBore.getExp(), 0);
            }
            else
            {
                starSoul = manager.getStarSoul(starSoulBore.getUid());
            }

            if (starSoul == null)
            {
                continue;
            }
            temList.Add(starSoul);
        }

        return(temList.ToArray());
    }
Exemplo n.º 4
0
    public void setSoulStarState(string cardUid, int hole, string starsoulUid)
    {
        StorageManagerment smanager = StorageManagerment.Instance;
        Card card = smanager.getRole(cardUid);

        if (card != null)
        {
            // 设置被替换的星魂状态为未装备(如果是直接穿装备则不执行)
            StarSoulBore oldStarSoulBore = card.getStarSoulBoreByIndex(hole);
            if (oldStarSoulBore != null)
            {
                StarSoul oldStarSoul = smanager.getStarSoul(oldStarSoulBore.getUid());
                if (oldStarSoul != null)
                {
                    oldStarSoul.unState(EquipStateType.OCCUPY);
                    oldStarSoul.isNew = false;
                }
            }
            // 设置被穿的星魂状态为装备
            StarSoul starSoul = smanager.getStarSoul(starsoulUid);
            if (starSoul != null)
            {
                starSoul.setState(EquipStateType.OCCUPY);
                starSoul.isNew = false;
            }
            card.addStarSoulBore(starsoulUid, hole);
            activeCard = card;
        }
        StorageManagerment.Instance.starSoulStorageVersion++;
    }
Exemplo n.º 5
0
    /// <summary>
    /// 移除卡片星魂槽的星魂
    /// <param name="index">星魂槽位置</param>
    /// </summary>
    public bool delStarSoulBoreByIndex(int index)
    {
        if (bores == null)
        {
            return(false);
        }
        StorageManagerment smanager = StorageManagerment.Instance;
        StarSoulBore       starSoulBore;

        for (int i = 0; i < bores.Count; i++)
        {
            starSoulBore = (StarSoulBore)bores[i];
            if (starSoulBore.checkStarSoulBoreByIndex(index))
            {
                StarSoul starSoul = smanager.getStarSoul(starSoulBore.getUid());
                if (starSoul != null)
                {
                    starSoul.unState(EquipStateType.OCCUPY);
                    starSoul.isNew = false;
                }
                bores.RemoveAt(i);
                return(true);
            }
        }
        return(false);
    }
Exemplo n.º 6
0
    /// <summary>
    /// 强化星魂通讯读取处理
    /// </summary>
    /// <param name="message">Message.</param>
    private void doStrengStarSoul(ErlKVMessage message)
    {
        ErlType erlType = message.getValue("value") as ErlType;

        if (erlType is ErlArray)
        {
            ErlArray           arr      = erlType as ErlArray;
            int                index    = 0;
            string             uid      = arr.Value [index++].getValueString();
            long               exp      = StringKit.toLong(arr.Value [index++].getValueString());
            StorageManagerment smanager = StorageManagerment.Instance;
            StarSoulManager    manager  = StarSoulManager.Instance;
            StarSoul           starSoul = smanager.getStarSoul(uid);
            if (starSoul != null)
            {
                manager.delStarSoulExp(exp);
                starSoul.updateExp(starSoul.getEXP() + exp);
                starSoul.isNew = false;
            }
            StorageManagerment.Instance.starSoulStorageVersion++;
            if (callback != null)
            {
                callback();
                callback = null;
            }
        }
        else
        {
            UiManager.Instance.openDialogWindow <MessageWindow> ((win) => {
                win.initWindow(1, LanguageConfigManager.Instance.getLanguage("s0093"), null, erlType.getValueString(), null);
            });
        }
    }
Exemplo n.º 7
0
    /** 初始化物品 */
    private void initProp()
    {
        resetItems();
        Prop tmpProp = null;
        StorageManagerment  instance = StorageManagerment.Instance;
        MountsConfigManager config   = MountsConfigManager.Instance;

        int[] itemSids = config.getItemSids();
        for (int i = 0; i < itemSids.Length; i++)
        {
            items [i].gameObject.SetActive(true);
            items [i].fatherWindow = this;
            tmpProp = instance.getProp(itemSids [i]);
            if (tmpProp != null)
            {
                items [i].init(tmpProp, tmpProp.getNum());
            }
            else
            {
                tmpProp = new Prop(itemSids [i], 0);
                items [i].init(tmpProp);
            }
            items [i].rightBottomText.gameObject.SetActive(true);
        }
    }
Exemplo n.º 8
0
    /// <summary>
    /// 卸星魂通讯读取处理
    /// </summary>
    /// <param name="message">Message.</param>
    private void doPutoffStarSoul(ErlKVMessage message)
    {
        ErlType erlType = message.getValue("value") as ErlType;

        if (erlType is ErlArray)
        {
            ErlArray arr         = erlType as ErlArray;
            int      index       = 0;
            string   cardUid     = arr.Value [index++].getValueString();
            int      hole        = StringKit.toInt(arr.Value [index++].getValueString());
            string   starsoulUid = arr.Value [index++].getValueString();
            StarSoulManager.Instance.delSoulStarState(cardUid, hole);
            StorageManagerment smanager = StorageManagerment.Instance;
            Card card = smanager.getRole(cardUid);
            if (card != null)
            {
                card.delStarSoulBoreByIndex(hole);
            }
            StorageManagerment.Instance.starSoulStorageVersion++;
            if (callback != null)
            {
                callback();
                callback = null;
            }
        }
        else
        {
            UiManager.Instance.openDialogWindow <MessageWindow> ((win) => {
                win.initWindow(1, LanguageConfigManager.Instance.getLanguage("s0093"), null, erlType.getValueString(), null);
            });
        }
    }
Exemplo n.º 9
0
    /** 一键拾取按钮 */
    private void HandleOneKeyGet(GameObject gameObj)
    {
        //关闭碎片显示
        debrisGetDesc.SetActive(false);
        debrisGetValue.text = "0";
        StorageManagerment smanager = StorageManagerment.Instance;
        int starSoulNum             = smanager.getHuntStarSoulNum();

        if (starSoulNum == 0)           // 猎魂仓库没有东西
        {
            MaskWindow.UnlockUI();
            return;
        }
        // 非经验类星魂数量
        int popStorageNum = smanager.getHuntStarSoulNumByType();

        if (smanager.isStarSoulStorageFull(popStorageNum))            // 星魂仓库满
        // 转化经验的数量
        {
            int exchangeExpNum = smanager.getHuntStarSoulNum() - popStorageNum;
            if (exchangeExpNum == 0)
            {
                UiManager.Instance.openDialogWindow <MessageLineWindow>((win) => {
                    win.Initialize(LanguageConfigManager.Instance.getLanguage("StarSoulWindow_StarSoul_Storage_Full"));
                });
                return;
            }
        }
        // 与服务器通讯
        (FPortManager.Instance.getFPort("StarSoulPopStorageFPort") as StarSoulPopStorageFPort).autoPopStorageAccess(doChangeExpFinshedCall);
    }
Exemplo n.º 10
0
    /// <summary>
    /// 获取临时锁定状态字典的字符串数据
    /// </summary>
    public string getLockStateString()
    {
        StringBuilder      sb = new StringBuilder();
        string             sign;
        StorageManagerment smanager = StorageManagerment.Instance;
        StarSoul           starSoul;

        foreach (string key in lockStateDic.Keys)
        {
            starSoul = smanager.getStarSoul(key);
            if (starSoul == null)
            {
                continue;
            }
            bool isLock = lockStateDic [key];
            if (isLock && starSoul.checkState(EquipStateType.LOCKED))          // 选择锁定,本身也是锁定状态不发送
            {
                continue;
            }
            if (!isLock && !starSoul.checkState(EquipStateType.LOCKED))          // 非选择锁定,本身也是非锁定状态不发送
            {
                continue;
            }
            sb.Append(key + "," + (isLock?1:0) + ":");
        }
        string str = sb.ToString();

        if (sb.Length > 0)
        {
            str = str.Substring(0, sb.Length - 1);
        }
        return(str);
    }
Exemplo n.º 11
0
    /// <summary>
    /// 普通裂魂
    /// </summary>
    private void huntStarSoul(int index, ErlArray arr)
    {
        StarSoulManager    manager   = StarSoulManager.Instance;
        StorageManagerment smanager  = StorageManagerment.Instance;
        ArrayList          starSouls = new ArrayList();
        // 猎魂库sid
        int huntLibSid = StringKit.toInt(arr.Value [index++].getValueString());

        manager.setHuntQuality(huntLibSid);
        ErlArray starSoulArr = arr.Value [index++] as ErlArray;

        if (starSoulArr != null && starSoulArr.Value.Length > 0)
        {
            StarSoul starSoul;
            for (int i = 0; i < starSoulArr.Value.Length; i++)
            {
                starSoul = manager.createStarSoul(starSoulArr.Value[i] as ErlArray);
                smanager.addHuntStarSoulStorage(starSoul, true);
                starSoul.isNew = false;
                starSouls.Add(starSoul);
            }
            StorageManagerment.Instance.huntStarSoulStorageVersion++;
        }
        int num = StringKit.toInt(arr.Value[index++].getValueString());

        manager.setDebrisNumber(manager.getDebrisNumber() + num);
        if (callback != null)
        {
            callback(starSouls, num, huntLibSid);
            callback = null;
        }
    }
Exemplo n.º 12
0
    public override void read(ErlKVMessage message)
    {
        ErlType  arr = message.getValue("msg") as ErlType;
        ErlArray cur = null;

        if (arr is ErlArray)
        {
            cur = arr as ErlArray;
        }
        else
        {
            MessageWindow.ShowAlert(arr.getValueString());
            if (callback != null)
            {
                callback = null;
            }
            return;
        }
        ErlArray temp;

        ResolveWindow.resolveResult.Clear();
        for (int i = 0; i < cur.Value.Length; i++)
        {
            temp = cur.Value[i] as ErlArray;
            if (temp.Value[0].getValueString() == "money")
            {
                ResolveWindow.resolveResult.Add(new PrizeSample(PrizeType.PRIZE_MONEY, 0, StringKit.toInt(temp.Value[1].getValueString())));
            }
            else
            {
                ResolveWindow.resolveResult.Add(new PrizeSample(PrizeType.PRIZE_PROP, StringKit.toInt(temp.Value[0].getValueString()), StringKit.toInt(temp.Value[1].getValueString())));
            }
        }
        if (arr as ErlArray != null)
        {
            if (starSoulList != null && starSoulList.Count > 0)
            {
                StorageManagerment smanager = StorageManagerment.Instance;
                for (int i = 0; i < starSoulList.Count; i++)
                {
                    (starSoulList[i] as Card).delStarSoulBoreByAll();
                }
            }
            callback();
        }
        else
        {
            MessageWindow.ShowAlert(arr.getValueString());
            if (callback != null)
            {
                callback = null;
            }
        }
    }
Exemplo n.º 13
0
    /// <summary>
    /// 创建星魂条目
    /// </summary>
    /// <param name="starSoul">星魂</param>
    private GameObject CreateStarSoulItem(StarSoul starSoul)
    {
        Transform trans = awardContent.transform.FindChild(starSoul.uid);

        if (trans != null)           // 避免出现相同uid的星魂
        {
            GameObject.Destroy(trans.gameObject);
        }
        GameObject obj = NGUITools.AddChild(awardContent, goodsViewProfab) as GameObject;

        obj.transform.localScale = new Vector3(0.85f, 0.85f, 1);
        GoodsView view = obj.transform.GetComponent <GoodsView> ();

        view.LockOnClick = false;
        view.init(starSoul, GoodsView.BOTTOM_TEXT_NAME);
        view.fatherWindow    = tapContent.fatherwindow;
        view.onClickCallback = () => {
            StorageManagerment smanager = StorageManagerment.Instance;
            if (starSoul.getStarSoulType() == 0)            // 经验类星魂
            {
                bool isQuality = starSoul.getQualityId() >= QualityType.EPIC?true:false;
                if (isQuality)
                {
                    UiManager.Instance.openDialogWindow <MessageWindow> ((win) => {
                        win.msg.msgInfo = starSoul.uid;
                        win.initWindow(2, LanguageConfigManager.Instance.getLanguage("s0094"), LanguageConfigManager.Instance.getLanguage("s0093"), LanguageConfigManager.Instance.getLanguage("StarSoulWindow_storeContent_changeQuality"), doOnClickCallback);
                    });
                    return;
                }
            }
            else                                       // 非经验类星魂
            {
                if (smanager.isStarSoulStorageFull(1)) // 星魂仓库满
                {
                    UiManager.Instance.openDialogWindow <MessageLineWindow>((win) => {
                        win.Initialize(LanguageConfigManager.Instance.getLanguage("StarSoulWindow_StarSoul_Storage_Full"));
                    });
                    return;
                }
            }
            MessageHandle msg = new MessageHandle();
            msg.buttonID = MessageHandle.BUTTON_RIGHT;
            msg.msgInfo  = starSoul.uid;
            doOnClickCallback(msg);
        };
        view.longPassCallback = () => {
            UiManager.Instance.openDialogWindow <StarSoulAttrWindow> (
                (win) => {
                win.Initialize(starSoul, StarSoulAttrWindow.AttrWindowType.None);
            });
        };
        return(obj);
    }
Exemplo n.º 14
0
    public void delSoulStarState(string cardUid, int hole)
    {
        StorageManagerment smanager = StorageManagerment.Instance;
        Card card = smanager.getRole(cardUid);

        if (card != null)
        {
            card.delStarSoulBoreByIndex(hole);
            activeCard = card;
        }
        StorageManagerment.Instance.starSoulStorageVersion++;
        uid   = "";
        _hole = 0;
    }
Exemplo n.º 15
0
    /// <summary>
    /// 猎魂条件
    /// </summary>
    /// <param name="huntType">裂魂类型(0=普通,1=钻石)</param>
    /// <param name="huntCount">裂魂次数</param>
    /// <param name="isAuto">是否一键猎魂(true=是)</param>
    public bool checkHuntCondition(int huntType, int huntCount, bool isAuto)
    {
        if (huntType == HUNT_MONEY_TYPE)
        {
            if (!isEnoughByHuntMoney(huntCount, StarSoulManager.Instance.getHuntQuality()))              // 游戏币不足
//				UiManager.Instance.openDialogWindow<MessageLineWindow>((win)=>{
//					win.Initialize (LanguageConfigManager.Instance.getLanguage ("guild_851"));
//				});
            {
                UiManager.Instance.openDialogWindow <MessageWindow>((win) => {
                    win.initWindow(2, LanguageConfigManager.Instance.getLanguage("go_get_money"), LanguageConfigManager.Instance.getLanguage("s0094"), LanguageConfigManager.Instance.getLanguage("StarSoulWindow_Hunt_noMoney"), getMoney);
                });
                return(false);
            }
        }
        else if (huntType == HUNT_RMB_TYPE)
        {
            if (!isEnoughByHuntRMB(huntCount))               // 钻石不足
            {
                UiManager.Instance.openDialogWindow <MessageLineWindow>((win) => {
                    win.Initialize(LanguageConfigManager.Instance.getLanguage("Guild_4"));
                });
                return(false);
            }
        }
        if (isAuto)
        {
            if (huntType == HUNT_RMB_TYPE)
            {
                if (!isEnoughByHuntRmbOneKeyVipLevel())                   // 钻石一键猎魂vip等级不足
                {
                    UiManager.Instance.openDialogWindow <MessageLineWindow>((win) => {
                        win.Initialize(LanguageConfigManager.Instance.getLanguage("StarSoulWindow_Hunt_VIPInfo", Convert.ToString(StarSoulConfigManager.Instance.getRmbOneKeyVipLevel())));
                    });
                    return(false);
                }
            }
        }
        StorageManagerment manager = StorageManagerment.Instance;

        if (manager.isHuntSoulStorageFull(huntCount))           //裂魂仓库已满
        {
            UiManager.Instance.openDialogWindow <MessageLineWindow>((win) => {
                win.Initialize(LanguageConfigManager.Instance.getLanguage("StarSoulWindow_HuntStarSoul_Storage_Full"));
            });
            return(false);
        }
        return(true);
    }
    public void starSoulIndefity()
    {
        StorageManagerment smanager = StorageManagerment.Instance;
        StarSoulManager    manager  = StarSoulManager.Instance;
        StarSoul           starSoul = smanager.getStarSoul(indetify_uid);

        if (starSoul != null)
        {
            manager.delStarSoulExp(exp);
            starSoul.updateExp(starSoul.getEXP());
            starSoul.isNew = false;
        }
        StorageManagerment.Instance.starSoulStorageVersion++;
        init(starSoul);
    }
Exemplo n.º 17
0
    /** 更新button文本 */
    public void updateLabelTextUI()
    {
        incItem.gameObject.SetActive(false);
        StarSoulConfigManager configManager = StarSoulConfigManager.Instance;
        StarSoulManager       manager       = StarSoulManager.Instance;

        buttonHunt.textLabel.text = LanguageConfigManager.Instance.getLanguage("StarSoulWindow_button_Hunt", Convert.ToString(1));
        UserManager        userManger = UserManager.Instance;
        StorageManagerment smanager   = StorageManagerment.Instance;

        moneyLabel.text   = Convert.ToString(userManger.self.getMoney());
        rmbLabel.text     = Convert.ToString(userManger.self.getRMB());
        suipianLabel.text = Convert.ToString(manager.getDebrisNumber());
        int maxCount  = smanager.getHuntStarSoulStorageMaxSpace();
        int remainNum = smanager.getFreeSize();

        maxCount   = remainNum >= maxCount ? maxCount : remainNum;
        huntNumber = maxCount;
        if (currentTapIndex == StarSoulConfigManager.HUNT_MONEY_TYPE)
        {
            huntNumber = userManger.self.getMoney() / configManager.getHuntConsumeMoney(currentNebulaIndex);
            if (huntNumber > maxCount)
            {
                huntNumber = maxCount;
            }
            string moneyColorText = configManager.isEnoughByHuntMoney(1, currentNebulaIndex)?"[FFFFFF]":"[FF0000]";
            consumeLabel.text      = moneyColorText + LanguageConfigManager.Instance.getLanguage("s0449", Convert.ToString(configManager.getHuntConsumeMoney(currentNebulaIndex)));
            consumeIcon.spriteName = "icon_money";
        }
        else if (currentTapIndex == StarSoulConfigManager.HUNT_RMB_TYPE)
        {
            huntNumber = userManger.self.getRMB() / configManager.getHuntConsumeRmb();
            if (huntNumber > maxCount)
            {
                huntNumber = maxCount;
            }
            string rmbColorText = configManager.isEnoughByHuntRMB(1)?"[FFFFFF]":"[FF0000]";
            consumeLabel.text      = rmbColorText + LanguageConfigManager.Instance.getLanguage("s0449", Convert.ToString(configManager.getHuntConsumeRmb()));
            consumeIcon.spriteName = "rmb";
        }
        if (huntNumber <= 1)
        {
            huntNumber = maxCount;
        }
        starSoulExp.text = manager.getStarSoulExp().ToString();
    }
Exemplo n.º 18
0
    /** 校验道具 */
    bool checkProp()
    {
        Prop tmpProp = null;
        StorageManagerment  instance = StorageManagerment.Instance;
        MountsConfigManager config   = MountsConfigManager.Instance;

        int[] itemSids = config.getItemSids();
        for (int i = 0; i < itemSids.Length; i++)
        {
            tmpProp = instance.getProp(itemSids [i]);
            if (tmpProp != null && tmpProp.getNum() > 0 && tmpProp.getUseLv() <= UserManager.Instance.self.getUserLevel())
            {
                return(true);
            }
        }
        return(false);
    }
Exemplo n.º 19
0
    /// <summary>
    /// 移除卡片星魂槽的星魂
    /// <param name="index">星魂槽位置</param>
    /// </summary>
    public void delStarSoulBoreByAll()
    {
        if (bores == null || bores.Count < 1)
        {
            return;
        }
        StorageManagerment smanager = StorageManagerment.Instance;
        StarSoulBore       starSoulBore;

        for (int i = 0; i < bores.Count; i++)
        {
            starSoulBore = (StarSoulBore)bores[i];
            StarSoul starSoul = smanager.getStarSoul(starSoulBore.getUid());
            if (starSoul != null)
            {
                starSoul.unState(EquipStateType.OCCUPY);
                starSoul.isNew = false;
            }
            bores.RemoveAt(i--);
        }
    }
Exemplo n.º 20
0
    public bool isEnoughPropForMountsPractice()
    {
        Prop tmpProp = null;
        StorageManagerment  instance = StorageManagerment.Instance;
        MountsConfigManager config   = MountsConfigManager.Instance;

        int[] itemSids = config.getItemSids();
        int   num      = 0;

        for (int i = 0; i < itemSids.Length; i++)
        {
            tmpProp = instance.getProp(itemSids [i]);
            if (tmpProp != null)
            {
                num += tmpProp.getNum();
            }
            if (num > 10)
            {
                return(true);
            }
        }
        return(false);
    }
Exemplo n.º 21
0
    /// <summary>
    /// 更新星魂锁状态
    /// </summary>
    public void updateStarSoulLockState()
    {
        StorageManagerment smanager = StorageManagerment.Instance;
        StarSoul           starSoul;

        foreach (string key in lockStateDic.Keys)
        {
            starSoul = smanager.getStarSoul(key);
            if (starSoul == null)
            {
                continue;
            }
            bool isLock = lockStateDic [key];
            if (isLock)              // 加锁
            {
                starSoul.setState(EquipStateType.LOCKED);
            }
            else                 // 解锁
            {
                starSoul.unState(EquipStateType.LOCKED);
            }
            starSoul.isNew = false;
        }
    }
Exemplo n.º 22
0
    /// <summary>
    /// 校验临时转换经验字典列表中是否存在指定state的星魂
    /// </summary>
    /// <param name="state">状态</param>
    public bool isStarSoulStateByChangeDic(int state)
    {
        StarSoul           starSoul;
        StorageManagerment manager = StorageManagerment.Instance;

        foreach (string key in changeExpStateDic.Keys)
        {
            bool isLock = changeExpStateDic [key];
            if (!isLock)
            {
                continue;
            }
            starSoul = manager.getStarSoul(key);
            if (starSoul == null)
            {
                continue;
            }
            if (starSoul.checkState(state))
            {
                return(true);
            }
        }
        return(false);
    }
Exemplo n.º 23
0
//	/// <summary>
//	/// 一键转化经验通讯
//	/// </summary>
//	/// <param name="storageType">仓库类型(star_soul_storage=星魂仓库,star_soul_draw_storage=猎魂仓库)</param>
//	/// <param name="callback">Callback.</param>
//	public void autoExchangeAccess(string storageType,CallBack<int,StarSoul[]> callback) {
//		this.callback = callback;
//		ErlKVMessage message = new ErlKVMessage (FrontPort.STARSOUL_AUTO_CONVERT_EXP);
//		message.addValue ("storage_type", new ErlString (storageType));
//		access (message);
//	}

    /// <summary>
    /// 回调读取通讯
    /// </summary>
    /// <param name="message">Message.</param>
    public override void read(ErlKVMessage message)
    {
        int     index   = 0;
        ErlType erlType = message.getValue("msg") as ErlType;

        if (erlType is ErlArray)
        {
            ErlArray           arr      = erlType as ErlArray;
            StarSoulManager    manager  = StarSoulManager.Instance;
            StorageManagerment smanager = StorageManagerment.Instance;
            // 仓库类型
            string storageType = arr.Value [index++].getValueString();
            // 转化的经验
            int exchangeExp = StringKit.toInt(arr.Value [index++].getValueString());
            if (exchangeExp > 0)
            {
                manager.addStarSoulExp(exchangeExp);
            }
            StarSoul[] exchangeStarSouls          = null;
            StarSoul[] popStorageStarSouls        = null;
            bool       isUpdateStorageVersion     = false;
            bool       isUpdateHuntStorageVersion = false;
            // 转换经验的星魂
            ErlType exchangeStarSoulType = arr.Value [index++];
            if (exchangeStarSoulType is ErlArray)
            {
                ErlArray exchangeStarSoulArr = exchangeStarSoulType as ErlArray;
                if (exchangeStarSoulArr.Value.Length > 0)
                {
                    exchangeStarSouls = new StarSoul[exchangeStarSoulArr.Value.Length];
                    StarSoul starSoul = null;
                    for (int i = 0; i < exchangeStarSoulArr.Value.Length; i++)
                    {
                        if (storageType == "star_soul_storage")                          // 清理星魂仓库
                        {
                            starSoul = smanager.getStarSoul(exchangeStarSoulArr.Value[i].getValueString());
                            if (starSoul == null)
                            {
                                continue;
                            }
                            smanager.delStarSoulStorage(starSoul.uid);
                            isUpdateStorageVersion = true;
                        }
                        else if (storageType == "star_soul_draw_storage")                            // 清理猎魂仓库
                        {
                            starSoul = smanager.getHuntStarSoul(exchangeStarSoulArr.Value[i].getValueString());
                            if (starSoul == null)
                            {
                                continue;
                            }
                            smanager.delHuntStarSoulStorage(starSoul.uid);
                            isUpdateHuntStorageVersion = true;
                        }
                        exchangeStarSouls[i] = starSoul;
                    }
                }
            }
            if (isUpdateStorageVersion)
            {
                StorageManagerment.Instance.starSoulStorageVersion++;
            }
            if (isUpdateHuntStorageVersion)
            {
                StorageManagerment.Instance.huntStarSoulStorageVersion++;
            }
            if (callback != null)
            {
                callback(exchangeExp, exchangeStarSouls);
                callback = null;
            }
        }
        else
        {
            UiManager.Instance.openDialogWindow <MessageWindow> ((win) => {
                win.initWindow(1, LanguageConfigManager.Instance.getLanguage("s0093"), null, erlType.getValueString(), null);
            });
        }
    }
Exemplo n.º 24
0
    /// <summary>
    /// 回调读取通讯
    /// </summary>
    /// <param name="message">Message.</param>
    public override void read(ErlKVMessage message)
    {
        int     index   = 0;
        ErlType erlType = message.getValue("msg") as ErlType;

        if (erlType is ErlArray)
        {
            ErlArray           arr      = erlType as ErlArray;
            StarSoulManager    manager  = StarSoulManager.Instance;
            StorageManagerment smanager = StorageManagerment.Instance;
            // 转化的经验
            int exchangeExp = StringKit.toInt(arr.Value [index++].getValueString());
            if (exchangeExp > 0)
            {
                StarSoulManager.Instance.addStarSoulExp(exchangeExp);
            }
            StarSoul[] exchangeStarSouls   = null;
            StarSoul[] popStorageStarSouls = null;
            // 转换经验的星魂
            ErlType exchangeStarSoulType = arr.Value [index++];
            if (exchangeStarSoulType is ErlArray)
            {
                ErlArray exchangeStarSoulArr = exchangeStarSoulType as ErlArray;
                if (exchangeStarSoulArr.Value.Length > 0)
                {
                    exchangeStarSouls = new StarSoul[exchangeStarSoulArr.Value.Length];
                    StarSoul starSoul;
                    for (int i = 0; i < exchangeStarSoulArr.Value.Length; i++)
                    {
                        starSoul = smanager.getHuntStarSoul(exchangeStarSoulArr.Value[i].getValueString());
                        if (starSoul == null)
                        {
                            continue;
                        }
                        // 清理猎魂仓库
                        smanager.delHuntStarSoulStorage(starSoul.uid);
                        // 构建显示数据
                        exchangeStarSouls[i] = starSoul;
                    }
                    StorageManagerment.Instance.huntStarSoulStorageVersion++;
                }
            }
            // 放入星魂仓库的星魂
            ErlType popStorageStarSoulType = arr.Value [index++];
            if (popStorageStarSoulType is ErlArray)
            {
                ErlArray popStorageStarSoulArr = popStorageStarSoulType as ErlArray;
                if (popStorageStarSoulArr.Value.Length > 0)
                {
                    popStorageStarSouls = new StarSoul[popStorageStarSoulArr.Value.Length];
                    StarSoul starSoul;
                    for (int i = 0; i < popStorageStarSoulArr.Value.Length; i++)
                    {
                        starSoul = smanager.getHuntStarSoul(popStorageStarSoulArr.Value[i].getValueString());
                        if (starSoul == null)
                        {
                            continue;
                        }
                        // 清理猎魂仓库
                        smanager.delHuntStarSoulStorage(starSoul.uid);
                        // 添加星魂仓库
                        smanager.addStarSoulStorage(starSoul, true);
                        // 构建显示数据
                        popStorageStarSouls[i] = starSoul;
                    }
                    StorageManagerment.Instance.starSoulStorageVersion++;
                    StorageManagerment.Instance.huntStarSoulStorageVersion++;
                }
            }
            if (callback != null)
            {
                callback(exchangeExp, exchangeStarSouls, popStorageStarSouls);
                callback = null;
            }
        }
        else
        {
            UiManager.Instance.openDialogWindow <MessageWindow> ((win) => {
                win.initWindow(1, LanguageConfigManager.Instance.getLanguage("s0093"), null, erlType.getValueString(), null);
            });
        }
    }