yyl
6 天以前 c124d98bdf9659cf764bebb799bee42c30eb152f
Main/System/Team/TeamBase.cs
@@ -53,8 +53,8 @@
            {
                var fightObj = lineUp.ObjList[i];
                TeamHero hero = new TeamHero(fightObj, this);
                tempHeroes[fightObj.PosNum] = hero;
                serverHeroes[fightObj.PosNum] = hero;
                tempHeroes[hero.positionNum] = hero;
                serverHeroes[hero.positionNum] = hero;
            }
            else
            {
@@ -187,9 +187,10 @@
        }
        return null;
    }
    public TeamHero GetHeroByHeroID(int heroId)
    {
    {
        foreach (var hero in tempHeroes)
        {
            if (hero != null && hero.heroId == heroId)
@@ -226,6 +227,76 @@
        return false;
    }
    public bool HasHeroInServer(string guid)
    {
        foreach (var hero in serverHeroes)
        {
            if (hero != null && hero.guid == guid)
            {
                return true;
            }
        }
        return false;
    }
    public TeamHero GetServerHeroByIndex(int index)
    {
        if (index < 0 || index >= serverHeroes.Length)
        {
            return null;
        }
        return serverHeroes[index];
    }
    //获取所有上阵的武将
    public List<TeamHero> GetHerosOnTeam()
    {
        List<TeamHero> tmpHeros = new List<TeamHero>();
        foreach (var hero in tempHeroes)
        {
            if (hero != null)
            {
                tmpHeros.Add(hero);
            }
        }
        return tmpHeros;
    }
    public TeamHero GetNextServerHero(string guid)
    {
        if (string.IsNullOrEmpty(guid))
        {
            //取第一个
            foreach (var hero in serverHeroes)
            {
                if (hero != null)
                {
                    return hero;
                }
            }
            return null;
        }
        else
        {
            //取下一个
            bool findNext = false;
            foreach (var hero in serverHeroes)
            {
                if (hero != null && hero.guid == guid)
                {
                    findNext = true;
                }
                else if (findNext && hero != null)
                {
                    return hero;
                }
            }
            //没找到 取第一个
            return GetNextServerHero("");
        }
    }
    //客户端从0开始,服务端从1开始
    public int GetEmptyPosition()
    {
@@ -237,6 +308,18 @@
            }
        }
        return -1; // No empty position
    }
    public int GetPosition(string guid)
    {
        foreach (var hero in serverHeroes)
        {
            if (hero != null && hero.guid == guid)
            {
                return hero.positionNum;
            }
        }
        return  -1;
    }
    //  布阵接口
@@ -252,7 +335,17 @@
        tempHeroes[posNum] = hero;
    }
    public void AddHero(HeroInfo heroInfo, int targetPosition)
    //  布阵接口: 恢复阵容
    public void RestoreTeam()
    {
        for (int i = 0; i < tempHeroes.Length; i++)
        {
            tempHeroes[i] = serverHeroes[i];
        }
    }
    //checkLock :是否验证上阵人数限制
    public void AddHero(HeroInfo heroInfo, int targetPosition, bool checkLock)
    {
        if (targetPosition < 0 || targetPosition >= tempHeroes.Length)
        {
@@ -260,32 +353,43 @@
            return;
        }
        TeamHero targetHero = tempHeroes[targetPosition];
        if (checkLock)
        {
            var lockCnt = HeroUIManager.Instance.lockIndexList.Count;
            if (lockCnt > 0 && TeamConst.MaxTeamHeroCount - GetHerosOnTeam().Count <= lockCnt)
            {
                HeroUIManager.Instance.ShowUnLockTip(HeroUIManager.Instance.lockIndexList[0]);
                return;
            }
        }
        if (null == targetHero)
        {
            TeamHero newHero = new TeamHero(heroInfo, targetPosition, this);
            SetTeamHero(targetPosition, newHero);
        }
        else
        {
            SetTeamHero(targetPosition, new TeamHero(heroInfo, targetPosition, this));
        }
        SetTeamHero(targetPosition, new TeamHero(heroInfo, targetPosition, this));
    }
    //checkLock :是否验证上阵人数限制
    //  add只可能是点下面卡牌
    public bool AddHero(HeroInfo heroInfo, out int pos)
    public bool AddHero(HeroInfo heroInfo, out int pos, bool checkLock)
    {
        pos = -1;
        if (heroInfo == null || heroInfo.itemHero == null) return false;
        if (checkLock)
        {
            var lockCnt = HeroUIManager.Instance.lockIndexList.Count;
            if (lockCnt > 0 && TeamConst.MaxTeamHeroCount - GetHerosOnTeam().Count <= lockCnt)
            {
                HeroUIManager.Instance.ShowUnLockTip(HeroUIManager.Instance.lockIndexList[0]);
                return false;
            }
        }
        // 同一英雄 只能上阵一个
        if (GetHeroByHeroID(heroInfo.heroId) != null)
        {
            SysNotifyMgr.Instance.ShowTip("HeroFunc2");
            return false;
            return false;
        }
        else
        {