Example #1
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++;
    }
Example #2
0
    private int flagChange;    //是不是可以点按钮 只有自己的可以点

    /* methods */
    /// <summary>
    /// 初始化
    /// </summary>
    public void init(int currentStarBroeIndex, Card card, WindowBase win, int flag)
    {
        currentcard  = card;
        fatherWindow = win;
        flagChange   = flag;
        this.currentStarBroeIndex = currentStarBroeIndex;
        //得到指定位置的星魂(包括位置)
        StarSoulBore starSoulBore = currentcard.getStarSoulBoreByIndex(currentStarBroeIndex);

        if (starSoulBore != null)
        {
            if (starSoulBore.getSid() != 0)
            {
                starSoul = new StarSoul("0", starSoulBore.getSid(), starSoulBore.getExp(), 1);
            }
            else
            {
                starSoul = StorageManagerment.Instance.getStarSoul(starSoulBore.getUid());// 自己的
            }
        }
        else
        {
            starSoul = null;
        }
        this.onClickEvent = grooveButtonClickHander;
        UpdateUI();
    }
    /***/
    public override void DoClickEvent()
    {
        base.DoClickEvent();
        if (stateType == ButtonStoreStarSoul.ButtonStateType.Power)           // 强化
        {
            UiManager.Instance.openWindow <StarSoulStoreStrengWindow>((win) => {
                win.init(starSoul);
            });
        }
        else if (stateType == ButtonStoreStarSoul.ButtonStateType.Replace)             // 替换
        {
            StarSoulManager manager         = StarSoulManager.Instance;
            Card            activeCard      = manager.getActiveCard();
            int             activeBoreIndex = manager.getActiveBoreIndex();
            tempStarSoul = manager.getActiveStarSoulDese();
            if (activeCard == null || activeBoreIndex == -1)
            {
                MaskWindow.UnlockUI();
                return;
            }
            StarSoulBore starBore = activeCard.getStarSoulBoreByIndex(activeBoreIndex);
            StarSoul     ss       = null;
            if (starBore != null)
            {
                ss = StorageManagerment.Instance.getStarSoul(starBore.getUid());
            }

            StarSoulManager.Instance.setState(1);
            StarSoulManager.Instance.setActiveSoulStarInfo(activeCard.uid, starSoul.uid, activeBoreIndex);
            // 与服务器通讯
            (FPortManager.Instance.getFPort("StarSoulEquipFPort") as StarSoulEquipFPort).putOnEquipStarSoulAccess(activeCard.uid, starSoul.uid, activeBoreIndex, () => {
                putOnFinished();
            });
        }
        else if (stateType == ButtonStoreStarSoul.ButtonStateType.PutOn)             // 穿戴
        {
            StarSoulManager manager         = StarSoulManager.Instance;
            Card            activeCard      = manager.getActiveCard();
            int             activeBoreIndex = manager.getActiveBoreIndex();
            tempStarSoul = manager.getActiveStarSoulDese();
            if (activeCard == null || activeBoreIndex == -1)
            {
                MaskWindow.UnlockUI();
                return;
            }
            StarSoulManager.Instance.setState(2);
            StarSoulManager.Instance.setActiveSoulStarInfo(activeCard.uid, starSoul.uid, activeBoreIndex);
            // 与服务器通讯
            (FPortManager.Instance.getFPort("StarSoulEquipFPort") as StarSoulEquipFPort).putOnEquipStarSoulAccess(activeCard.uid, starSoul.uid, activeBoreIndex, () => {
                putOnFinished();
            });
        }
    }
    /// <summary>
    ///  更新星魂显示节点
    /// </summary>
    private void updateEqItem()
    {
        //获取星魂槽上的所有星魂

        foreach (Transform each in eqPerfbatPoint.transform)
        {
            Destroy(each.gameObject);
        }
        ResonanceSampleManager.Instance.showNum(showTypeNum == CardBookWindow.CLICKCHATSHOW);
        ArrayList arrayList = selectCard.getStarSoulArrayList();

        for (int i = 0; i < 6; i++)
        {
            GameObject item = NGUITools.AddChild(eqPerfbatPoint, soulIndyPerfab.gameObject);
            item.transform.localPosition = new Vector3(i % 2 == 0 ? -128f : 140f, i < 2 ? 0 : (i < 4 ? -98f : -196f), 0);
            SoulIndyPerfab sif = item.GetComponent <SoulIndyPerfab>();
            if (arrayList == null || arrayList.Count <= 0)
            {
                sif.init(fatherWindow, null, selectCard, showTypeNum, i);
            }
            else
            {
                bool falg = false;
                for (int j = 0; j < arrayList.Count; j++)
                {
                    StarSoulBore ssb = (StarSoulBore)arrayList[j];
                    if (ssb.getIndex() == i + 1)
                    {
                        falg = true;
                        if (showTypeNum == CardBookWindow.CLICKCHATSHOW)
                        {
                            sif.init(fatherWindow, new StarSoul("0", ssb.getSid(), ssb.getExp(), 0), selectCard,
                                     showTypeNum, i + 1);
                        }
                        else
                        {
                            sif.init(fatherWindow, StorageManagerment.Instance.getStarSoul(ssb.getUid()), selectCard,
                                     showTypeNum, i + 1);
                        }
                    }
                    if (!falg)
                    {
                        sif.init(fatherWindow, null, selectCard, showTypeNum, i);
                    }
                }
            }
        }
    }
Example #5
0
    /// <summary>
    /// 得到活动的星魂的描述
    /// </summary>
    /// <returns>The active star soul dese.</returns>
    public string getActiveStarSoulDese()
    {
        Card         card     = getActiveCard();
        int          index    = getActiveBoreIndex();
        StarSoulBore starBore = card.getStarSoulBoreByIndex(index);

        if (starBore != null)
        {
            StarSoul ss = StorageManagerment.Instance.getStarSoul(starBore.getUid());
            if (ss != null)
            {
                return(getStarSoulDese(ss));
            }
        }
        return(null);
    }
Example #6
0
    /// <summary>
    /// 添加卡片上的星魂槽
    /// </summary>
    public void addStarSoulBore(string uid, int hole)
    {
        if (bores == null)
        {
            bores = new ArrayList();
        }
        StarSoulBore starSoulBore = getStarSoulBoreByIndex(hole);

        if (starSoulBore == null)
        {
            starSoulBore = new StarSoulBore(uid, hole);
            bores.Add(starSoulBore);
        }
        else
        {
            starSoulBore.setUid(uid);
        }
    }
Example #7
0
    public override void bytesRead(int j, ErlArray ea)
    {
        tempExp            = 0;
        this.uid           = ea.Value [j++].getValueString();
        this.sid           = StringKit.toInt(ea.Value [j++].getValueString());
        tempExp            = StringKit.toLong(ea.Value [j++].getValueString());
        this.hpExp         = StringKit.toInt(ea.Value [j++].getValueString());
        this.attExp        = StringKit.toInt(ea.Value [j++].getValueString());
        this.magicExp      = StringKit.toInt(ea.Value [j++].getValueString());
        this.defExp        = StringKit.toInt(ea.Value [j++].getValueString());
        this.agileExp      = StringKit.toInt(ea.Value [j++].getValueString());
        this.attrskills    = SkillManagerment.Instance.createSkills(ea.Value [j++] as ErlArray, SkillStateType.ATTR);
        this.buffskills    = SkillManagerment.Instance.createSkills(ea.Value [j++] as ErlArray, SkillStateType.BUFF);
        this.skills        = SkillManagerment.Instance.createSkills(ea.Value [j++] as ErlArray, SkillStateType.ACTIVE);
        this.equips        = EquipManagerment.Instance.getEquipId(ea.Value [j++] as ErlArray);
        this.state         = StringKit.toInt(ea.Value [j++].getValueString());
        this.evoLevel      = StringKit.toInt(ea.Value [j++].getValueString());
        this.surLevel      = StringKit.toInt(ea.Value [j++].getValueString());
        this.mainSkillSlot = StringKit.toInt(ea.Value [j++].getValueString());
        this.attrSkillSlot = StringKit.toInt(ea.Value [j++].getValueString());
        this.buffSkillSlot = StringKit.toInt(ea.Value [j++].getValueString());
        ErlArray erlArray = ea.Value [j++] as ErlArray;

        if (erlArray.Value.Length > 0)
        {
            bores = new ArrayList();
            StarSoulBore starSoulBore;
            for (int m = 0, count = erlArray.Value.Length; m < count; m++)
            {
                starSoulBore = new StarSoulBore();
                starSoulBore.bytesRead(0, erlArray.Value [m] as ErlArray);
                bores.Add(starSoulBore);
            }
        }
        this.magicWeaponUID = ea.Value[j++].getValueString();
        this.cardBloodLevel = StringKit.toInt(ea.Value[j++].getValueString());
        updateExp(tempExp);
    }
    public List <ResonanceSample> getrssList(int type, Card card, long exp, int ii)
    {
        List <ResonanceSample> rssList = new List <ResonanceSample>();

        // ResonanceSample[] teS = new ResonanceSample[2];
        if (type == 1)
        {
            string[] eqStrings = card.getEquips();

            if (eqStrings == null || eqStrings.Length <= 4)//没有产生共鸣
            {
                for (int i = 0; i < eqQHlist.Count; i++)
                {
                    if (eqQHlist[i].needLv < 0)
                    {
                        continue;                        //理论上不存在
                    }
                    if (ii == 0)
                    {
                        rssList.Add(eqQHlist[i]);
                        return(rssList);
                    }
                    rssList.Add(eqQHlist[i < eqQHlist.Count - 1 ? i + 1 : eqQHlist.Count - 1]);
                    return(rssList);
                }
            }
            int templv = -1;
            for (int j = 0; j < eqStrings.Length; j++)
            {
                if (!showTypeNum)
                {
                    Equip eq = StorageManagerment.Instance.getEquip(eqStrings[j]);
                    if (templv == -1 || templv > eq.getLevel())
                    {
                        templv = eq.getLevel();
                    }
                }
                else
                {
                    if (templv == -1 || templv > showChatEquips[j].getLevel())
                    {
                        templv = showChatEquips[j].getLevel();
                    }
                }
            }
            for (int i = 0; i < eqQHlist.Count; i++)
            {
                if (ii == 0) //当前等级
                {
                    if (eqQHlist[i].needLv > templv)
                    {
                        rssList.Add(eqQHlist[i == 0?0:i - 1]);
                        return(rssList);
                    }
                    if (i != eqQHlist.Count - 1 || eqQHlist[i].needLv > templv)
                    {
                        continue;
                    }
                    rssList.Add(eqQHlist[eqQHlist.Count - 1]);
                    return(rssList);
                }
                if (eqQHlist[i].needLv > templv)
                {
                    rssList.Add(eqQHlist[i]);
                    return(rssList);
                }
                if (i != eqQHlist.Count - 1 || eqQHlist[i].needLv > templv)
                {
                    continue;
                }
                rssList.Add(eqQHlist[eqQHlist.Count - 1]);
                return(rssList);
            }
        }
        if (type == 2)
        {
            string[] eqStrings = card.getEquips();
            if (eqStrings == null || eqStrings.Length <= 4)
            {
                for (int i = 0; i < eqJLlist.Count; i++)
                {
                    if (eqJLlist[i].needLv < 0)
                    {
                        continue;
                    }
                    if (ii == 0)
                    {
                        rssList.Add(eqJLlist[i]);
                        return(rssList);
                    }
                    rssList.Add(eqJLlist[i < eqJLlist.Count - 1 ? i + 1 : eqJLlist.Count - 1]);
                    return(rssList);
                }
            }
            int templv = -1;
            for (int j = 0; j < eqStrings.Length; j++)
            {
                if (!showTypeNum)
                {
                    Equip eq = StorageManagerment.Instance.getEquip(eqStrings[j]);
                    if (templv == -1 || templv > eq.getrefineLevel())
                    {
                        templv = eq.getrefineLevel();
                    }
                }
                else
                {
                    if (templv == -1 || templv > showChatEquips[j].getrefineLevel())
                    {
                        templv = showChatEquips[j].getrefineLevel();
                    }
                }
            }
            for (int i = 0; i < eqJLlist.Count; i++)
            {
                if (ii == 0) //当前等级
                {
                    if (eqJLlist[i].needLv > templv)
                    {
                        rssList.Add(eqJLlist[i == 0 ? 0 : i - 1]);
                        showTypeNum = false;
                        return(rssList);
                    }
                    if (i != eqJLlist.Count - 1 || eqJLlist[i].needLv > templv)
                    {
                        continue;
                    }
                    rssList.Add(eqJLlist[eqJLlist.Count - 1]);
                    return(rssList);
                }
                if (eqJLlist[i].needLv > templv)
                {
                    rssList.Add(eqJLlist[i]);
                    showTypeNum = false;
                    return(rssList);
                }
                if (i != eqJLlist.Count - 1 || eqJLlist[i].needLv > templv)
                {
                    continue;
                }
                rssList.Add(eqJLlist[eqJLlist.Count - 1]);
                showTypeNum = false;
                return(rssList);
            }
        }
        ArrayList bores = card.getStarSoulBores();

        if (bores == null || bores.Count <= 0)
        {
            for (int i = 0; i < starList.Count; i++)
            {
                if (starList[i].needLv >= 0)
                {
                    if (ii == 0)
                    {
                        rssList.Add(starList[i]);
                        return(rssList);
                    }
                    rssList.Add(starList[i < starList.Count - 1 ? i + 1 : starList.Count - 1]);
                    return(rssList);
                }
            }
        }
        int kk = 0;

        if (!showTypeNum)
        {
            for (int i = 0; i < 6; i++)//检查几个没有开
            {
                if (!StarSoulManager.Instance.checkBroeOpenLev(card, i + 1))
                {
                    kk++;
                }
            }
            if (bores.Count + kk < 6)
            {
                if (ii == 0)
                {
                    rssList.Add(starList[0]);
                    return(rssList);
                }
                rssList.Add(starList[1]);
                return(rssList);
            }
        }
        else
        {
            for (int i = 0; i < 6; i++)
            {
                if (EXPSampleManager.Instance.getLevel(EXPSampleManager.SID_USER_EXP, exp, 0) >= StarSoulConfigManager.Instance.getGrooveOpen()[i])
                {
                    kk++;
                }
            }
            if (bores.Count + kk < 6)
            {
                if (ii == 0)
                {
                    rssList.Add(starList[0]);
                    return(rssList);
                }
                rssList.Add(starList[1]);
                return(rssList);
            }
        }
        int temppp = -1;

        for (int t = 0; t < bores.Count; t++)
        {
            if (showTypeNum)
            {
//                List<Card> teamData = new List<Card>();
//                teamData = StarSoulManager.Instance.getTeamCardData(1, card);
//                int lv = teamData[t].getLevel();
                StarSoulBore starSoulBore = bores[t] as StarSoulBore;
                StarSoul     soul         = new StarSoul("0", starSoulBore.getSid(), starSoulBore.getExp(), 0);
                int          lv           = soul.getLevel();
                if (temppp == -1 || temppp > lv)
                {
                    temppp = lv;
                }
            }
            else
            {
                StarSoulBore starSoulBore = bores[t] as StarSoulBore;
                int          lv           = StorageManagerment.Instance.getStarSoul(starSoulBore.getUid()).getLevel();
                if (temppp == -1 || temppp > lv)
                {
                    temppp = lv;
                }
            }
        }
        for (int i = 0; i < starList.Count; i++)
        {
            if (ii == 0) //当前等级
            {
                if (starList[i].needLv > temppp)
                {
                    rssList.Add(starList[i == 0 ? 0 : i - 1]);
                    showTypeNum = false;
                    return(rssList);
                }
                if (i != starList.Count - 1 || starList[i].needLv > temppp)
                {
                    continue;
                }
                rssList.Add(starList[starList.Count - 1]);
                return(rssList);
            }
            if (starList[i].needLv > temppp)
            {
                rssList.Add(starList[i]);
                showTypeNum = false;
                return(rssList);
            }
            if (i != starList.Count - 1 || starList[i].needLv > temppp)
            {
                continue;
            }
            rssList.Add(starList[starList.Count - 1]);
            showTypeNum = false;
            return(rssList);
        }
        return(null);
    }