Ejemplo n.º 1
0
    /// <summary>
    /// 获取堡垒信息
    /// </summary>
    /// <param name="level"></param>
    /// <returns></returns>
    public List <StrongholdInfo> GetStrongholdInfo(int level)
    {
        if (m_StrongholdInfoList == null)
        {
            m_StrongholdInfoList = new List <StrongholdInfo>();
        }
        m_StrongholdInfoList.Clear();
        GameLevelEntity entity = m_List.Find(x => x.Level == level);

        if (entity == null || string.IsNullOrEmpty(entity.Stronghold))
        {
            return(null);
        }
        string[] strongholdArr = entity.Stronghold.Split('|');
        for (int i = 0; i < strongholdArr.Length; i++)
        {
            string[]       strArr = strongholdArr[i].Split('_');
            StrongholdInfo info   = new StrongholdInfo();
            info.Type   = strArr[0].ToInt();
            info.Row    = strArr[1].ToInt();
            info.Column = strArr[2].ToInt();
            info.Range  = strArr[3].ToInt();
            m_StrongholdInfoList.Add(info);
        }
        return(m_StrongholdInfoList);
    }
    public List <List <int> > GetMapData(int level)
    {
        if (m_MapData == null)
        {
            m_MapData = new List <List <int> >();
        }
        m_MapData.Clear();
        GameLevelEntity entity = m_List.Find(x => x.Level == level);

        if (entity == null)
        {
            return(null);
        }
        string[] strArr = entity.Map.Split('|');
        for (int i = 0; i < strArr.Length; i++)
        {
            List <int> lst = new List <int>();
            string[]   map = strArr[i].Split(',');
            for (int j = 0; j < map.Length; j++)
            {
                lst.Add(map[j].ToInt());
            }
            m_MapData.Add(lst);
        }
        return(m_MapData);
    }
Ejemplo n.º 3
0
    public List <RoleInfo> GetMonsterInfoList(int level)
    {
        if (m_RoleInfoList == null)
        {
            m_RoleInfoList = new List <RoleInfo>();
        }
        m_RoleInfoList.Clear();
        GameLevelEntity entity = m_List.Find(x => x.Level == level);

        if (string.IsNullOrEmpty(entity.Monster))
        {
            return(null);
        }
        string[] strArr = entity.Monster.Split('|');
        for (int i = 0; i < strArr.Length; i++)
        {
            string[] posArr = strArr[i].Split('_');
            float    x      = posArr[0].ToFloat();
            float    y      = posArr[1].ToFloat();
            int      range  = posArr[2].ToInt();
            m_RoleInfoList.Add(new RoleInfo()
            {
                Pos = new Vector2(x, y), Range = range
            });
        }
        return(m_RoleInfoList);
    }
Ejemplo n.º 4
0
    public List <ObstacleInfo> GetObstaclesInfoList(int level)
    {
        if (m_ObstaclesInfoList == null)
        {
            m_ObstaclesInfoList = new List <ObstacleInfo>();
        }
        m_ObstaclesInfoList.Clear();
        GameLevelEntity entity = m_List.Find(x => x.Level == level);

        if (string.IsNullOrEmpty(entity.Obstacle))
        {
            return(null);
        }
        string[] strArr = entity.Obstacle.Split('|');
        for (int i = 0; i < strArr.Length; i++)
        {
            string[] posArr = strArr[i].Split('_');
            float    x      = posArr[0].ToFloat();
            float    y      = posArr[1].ToFloat();
            int      type   = posArr[2].ToInt();
            m_ObstaclesInfoList.Add(new ObstacleInfo()
            {
                Pos = new Vector2(x, y), ObstacleType = type
            });
        }
        return(m_ObstaclesInfoList);
    }
    public Vector2 GetRowAndColumn(int level)
    {
        Vector2         t      = Vector2.one;
        GameLevelEntity entity = m_List.Find(x => x.Level == level);

        string[] strArr = entity.Map.Split('|');
        int      row    = strArr.Length;
        int      column = strArr[0].Split(',').Length;

        t = new Vector2(row, column);
        return(t);
    }
Ejemplo n.º 6
0
    public Vector2 GetOverPoint(int level)
    {
        Vector2         pos    = Vector2.zero;
        GameLevelEntity entity = m_List.Find(i => i.Level == level);
        string          str    = entity.OverPoint;

        string[] posArr = str.Split('_');
        float    x      = posArr[0].ToFloat();
        float    y      = posArr[1].ToFloat();

        pos = new Vector2(x, y);
        return(pos);
    }
Ejemplo n.º 7
0
    public Vector2 GetMonsterRowAndColunm(int level)
    {
        GameLevelEntity entity = m_List.Find(x => x.Level == level);

        if (entity == null || string.IsNullOrEmpty(entity.Monster))
        {
            return(-Vector2.one);
        }
        string[] strArr = entity.Monster.Split('_');
        Vector2  pos    = new Vector2();

        pos.x = strArr[0].ToInt();
        pos.y = strArr[1].ToInt();
        return(pos);
    }
    private void SetLinePointInteralGameLevel(Vector3 startPos, Vector3 endPos, GameLevelEntity gameLevelEntity)
    {
        Vector3 dis   = endPos - startPos;
        int     count = 10; //关卡之间点的个数
        Vector3 pointPos;

        for (int i = 0; i < count; i++)
        {
            pointPos = startPos + i * 1.0f / 10 * dis;
            GameObject @object = ResourcesMgr.Instance.Load(ResourcesMgr.ResourceType.UIWindowsChild, @"GameLevel\GameLevelMapPoint");
            @object.transform.SetParent(m_mapImage.transform.GetChild(0));
            @object.SetGameObjNormalTransfor();
            @object.transform.localPosition = pointPos;
            @object.GetComponent <UIGameLevelMapPointView>().SetPoint(gameLevelEntity.isBoss >= 1?true:false);
        }
    }
Ejemplo n.º 9
0
    private void SetGameLevelDetailDes(int gameLevelId, GameLevelGrade grade)
    {
        //1.读取游戏关卡表
        GameLevelEntity gameLevelEntity = GameLevelDBModel.GetInstance.GetEntityById(gameLevelId);

        //2.读取游戏关卡难度等级表
        GameLevelGradeEntity gameLevelGradeEntity = GameLevelGradeDBModel.GetInstance.GetEntityByGameLevelIdAndGrade(gameLevelId, grade);

        data = new TransferData();
        data.SetValue <string>("GameLevelDesc", gameLevelGradeEntity.Desc);
        data.SetValue <string>("GameLevelConditionDesc", gameLevelGradeEntity.ConditionDesc);
        data.SetValue <string>("GameLevelDlgPic", gameLevelEntity.DlgPic);
        data.SetValue <int>("GameLevelExp", gameLevelGradeEntity.Exp);
        data.SetValue <int>("GameLevelGold", gameLevelGradeEntity.Gold);
        data.SetValue <int>("GameLevelCommentFighting", gameLevelGradeEntity.CommendFighting);
        data.SetValue <string>("GameLevelName", gameLevelEntity.Name);
        data.SetValue <string>("GameLevelName", gameLevelEntity.Name);
        data.SetValue <int>("GameLevelId", gameLevelEntity.Id);

        m_levelDetailView.SetUI(data, SetGameLevelDetailDes);
    }
Ejemplo n.º 10
0
    private void SetGameLevelDetails(int gameLevelId, GameLevelGrade grade)
    {
        m_GameLevelSceneId = gameLevelId;
        m_Garade           = grade;
        GameLevelEntity      levelEnitiy = GameLevelDBModel.Instance.Get(gameLevelId);
        GameLevelGradeEntity gradeEnitiy = GameLevelGradeDBModel.Instance.GetEnityByLevelIdAndGrade(gameLevelId, grade);

        if (levelEnitiy == null || gradeEnitiy == null)
        {
            return;
        }
        DataTransfer data = new DataTransfer();

        data.SetData(ConstDefine.GameLevelId, levelEnitiy.Id);
        data.SetData(ConstDefine.GameLevelName, levelEnitiy.Name);
        data.SetData(ConstDefine.GameLevelSceneName, levelEnitiy.SceneName);
        data.SetData(ConstDefine.GameLevelDlgPic, levelEnitiy.DlgPic);

        //装备
        List <DataTransfer> equipDatas  = new List <DataTransfer>();
        List <GoodsEntity>  equipEnitys = gradeEnitiy.RewardEquipList;

        if (equipEnitys != null && equipEnitys.Count > 0)
        {
            equipEnitys.Sort((GoodsEntity entity1, GoodsEntity entity2) =>
            {
                if (entity1.GoodsProbability > entity2.GoodsProbability)
                {
                    return(1);
                }
                else if (entity1.GoodsProbability == entity2.GoodsProbability)
                {
                    return(0);
                }
                else
                {
                    return(-1);
                }
            });
            for (int i = 0; i < equipEnitys.Count; i++)
            {
                DataTransfer equipData = new DataTransfer();
                equipData.SetData(ConstDefine.GameLevelGoodsId, equipEnitys[i].GoodsId);
                equipData.SetData(ConstDefine.GameLevelGoodsName, equipEnitys[i].GoodsName);
                equipData.SetData(ConstDefine.GameLevelGoodsProbability, equipEnitys[i].GoodsProbability);
                equipData.SetData(ConstDefine.GameLevelGoodsCount, equipEnitys[i].GoodsCount);
                equipDatas.Add(equipData);
            }
        }

        //道具
        List <DataTransfer> itemDatas  = new List <DataTransfer>();
        List <GoodsEntity>  itemEnitys = gradeEnitiy.RewardItemList;

        if (itemEnitys != null && itemEnitys.Count > 0)
        {
            itemEnitys.Sort((GoodsEntity entity1, GoodsEntity entity2) =>
            {
                if (entity1.GoodsProbability > entity2.GoodsProbability)
                {
                    return(-1);
                }
                else if (entity1.GoodsProbability == entity2.GoodsProbability)
                {
                    return(0);
                }
                else
                {
                    return(1);
                }
            });
            for (int i = 0; i < itemEnitys.Count; i++)
            {
                DataTransfer itemData = new DataTransfer();
                itemData.SetData(ConstDefine.GameLevelGoodsId, itemEnitys[i].GoodsId);
                itemData.SetData(ConstDefine.GameLevelGoodsName, itemEnitys[i].GoodsName);
                itemData.SetData(ConstDefine.GameLevelGoodsProbability, itemEnitys[i].GoodsProbability);
                itemData.SetData(ConstDefine.GameLevelGoodsCount, itemEnitys[i].GoodsCount);
                itemDatas.Add(itemData);
            }
        }
        //材料
        List <DataTransfer> materiaDatas  = new List <DataTransfer>();
        List <GoodsEntity>  materiaEnitys = gradeEnitiy.RewardMateriaList;

        if (materiaEnitys != null && materiaEnitys.Count > 0)
        {
            materiaEnitys.Sort((GoodsEntity entity1, GoodsEntity entity2) =>
            {
                if (entity1.GoodsProbability > entity2.GoodsProbability)
                {
                    return(-1);
                }
                else if (entity1.GoodsProbability == entity2.GoodsProbability)
                {
                    return(0);
                }
                else
                {
                    return(1);
                }
            });
            for (int i = 0; i < materiaEnitys.Count; i++)
            {
                DataTransfer materiaData = new DataTransfer();
                materiaData.SetData(ConstDefine.GameLevelGoodsId, materiaEnitys[i].GoodsId);
                materiaData.SetData(ConstDefine.GameLevelGoodsName, materiaEnitys[i].GoodsName);
                materiaData.SetData(ConstDefine.GameLevelGoodsProbability, materiaEnitys[i].GoodsProbability);
                materiaData.SetData(ConstDefine.GameLevelGoodsCount, materiaEnitys[i].GoodsCount);
                materiaDatas.Add(materiaData);
            }
        }

        data.SetData(ConstDefine.GameLevelRewardEquip, equipDatas);
        data.SetData(ConstDefine.GameLevelRewardItem, itemDatas);
        data.SetData(ConstDefine.GameLevelRewardMaterial, materiaDatas);

        data.SetData(ConstDefine.GameLevelRewardGold, gradeEnitiy.Gold);
        data.SetData(ConstDefine.GameLevelRewardExp, gradeEnitiy.Exp);
        data.SetData(ConstDefine.GameLevelDesc, gradeEnitiy.Desc);
        data.SetData(ConstDefine.GameLevelConditionDesc, gradeEnitiy.ConditionDesc);
        data.SetData(ConstDefine.GameLevelCommendFighting, gradeEnitiy.CommendFighting);
        m_GameLevelDetailsView.SetUI(data);
    }
Ejemplo n.º 11
0
    /// <summary>
    /// 打开关卡胜利页面
    /// </summary>
    private void OpenGameLevelVictoryView()
    {
        m_GameLevelVictoryView = UIViewUtil.Instance.OpenWindow(UIViewType.GameLevelVictory).GetComponent <UIGameLevelVictoryView>();
        m_GameLevelVictoryView.OnReturnWorldScene = OnClickGameLevelVictoryViewReturnWorldSceneButton;
        GameLevelEntity      levelEnitiy = GameLevelDBModel.Instance.Get(m_GameLevelSceneId);
        GameLevelGradeEntity gradeEnitiy = GameLevelGradeDBModel.Instance.GetEnityByLevelIdAndGrade(m_GameLevelSceneId, m_Garade);

        if (levelEnitiy == null || gradeEnitiy == null)
        {
            return;
        }
        DataTransfer data = new DataTransfer();

        data.SetData(ConstDefine.GameLevelRewardGold, gradeEnitiy.Gold);
        data.SetData(ConstDefine.GameLevelRewardExp, gradeEnitiy.Exp);
        data.SetData(ConstDefine.GameLevelPassTime, CurPassTime);
        int star = 1;

        if (CurPassTime < gradeEnitiy.Star2)
        {
            star = 3;
        }
        else if (CurPassTime < gradeEnitiy.Star1)
        {
            star = 2;
        }
        data.SetData(ConstDefine.GameLevelStarCount, star);

        List <GoodsEntity> rewards = new List <GoodsEntity>();

        //可以放在服务器里面计算,为了简单就直接在这计算了
        //装备
        rewards.Clear();
        int                ranmdom01   = UnityEngine.Random.Range(0, 100);
        DataTransfer       equipData   = new DataTransfer();
        List <GoodsEntity> equipEnitys = gradeEnitiy.RewardEquipList;

        for (int i = 0; i < equipEnitys.Count; i++)
        {
            if (ranmdom01 < equipEnitys[i].GoodsProbability)
            {
                rewards.Add(equipEnitys[i]);
            }
        }
        GoodsEntity equipEnity = equipEnitys[UnityEngine.Random.Range(0, rewards.Count)];

        if (equipEnity != null)
        {
            equipData.SetData(ConstDefine.GameLevelGoodsId, equipEnity.GoodsId);
            equipData.SetData(ConstDefine.GameLevelGoodsName, equipEnity.GoodsName);
            equipData.SetData(ConstDefine.GameLevelGoodsProbability, equipEnity.GoodsProbability);
            equipData.SetData(ConstDefine.GameLevelGoodsCount, equipEnity.GoodsCount);
            data.SetData(ConstDefine.GameLevelRewardEquip, equipData);
            CurGameLevelGetGoodsList.Add(new GetGoodsEntity()
            {
                GoodsId = equipEnity.GoodsId, GoodsCount = 1, GoodsType = 0
            });
        }


        //道具
        rewards.Clear();
        int                ranmdom02  = UnityEngine.Random.Range(0, 100);
        DataTransfer       itemData   = new DataTransfer();
        List <GoodsEntity> itemEnitys = gradeEnitiy.RewardItemList;

        for (int i = 0; i < itemEnitys.Count; i++)
        {
            if (ranmdom02 < itemEnitys[i].GoodsProbability)
            {
                rewards.Add(itemEnitys[i]);
            }
        }
        GoodsEntity itemEnity = itemEnitys[UnityEngine.Random.Range(0, rewards.Count)];

        if (itemEnity != null)
        {
            itemData.SetData(ConstDefine.GameLevelGoodsId, itemEnity.GoodsId);
            itemData.SetData(ConstDefine.GameLevelGoodsName, itemEnity.GoodsName);
            itemData.SetData(ConstDefine.GameLevelGoodsProbability, itemEnity.GoodsProbability);
            itemData.SetData(ConstDefine.GameLevelGoodsCount, itemEnity.GoodsCount);
            data.SetData(ConstDefine.GameLevelRewardItem, itemData);
            CurGameLevelGetGoodsList.Add(new GetGoodsEntity()
            {
                GoodsId = itemEnity.GoodsId, GoodsCount = 1, GoodsType = 1
            });
        }
        //材料
        rewards.Clear();
        int                ranmdom03     = UnityEngine.Random.Range(0, 100);
        DataTransfer       materiaData   = new DataTransfer();
        List <GoodsEntity> materiaEnitys = gradeEnitiy.RewardMateriaList;

        for (int i = 0; i < materiaEnitys.Count; i++)
        {
            if (ranmdom03 < materiaEnitys[i].GoodsProbability)
            {
                rewards.Add(materiaEnitys[i]);
            }
        }
        GoodsEntity materiaEnity = materiaEnitys[UnityEngine.Random.Range(0, rewards.Count)];

        if (materiaEnity != null)
        {
            materiaData.SetData(ConstDefine.GameLevelGoodsId, materiaEnity.GoodsId);
            materiaData.SetData(ConstDefine.GameLevelGoodsName, materiaEnity.GoodsName);
            materiaData.SetData(ConstDefine.GameLevelGoodsProbability, materiaEnity.GoodsProbability);
            materiaData.SetData(ConstDefine.GameLevelGoodsCount, materiaEnity.GoodsCount);
            data.SetData(ConstDefine.GameLevelRewardMaterial, materiaData);
            CurGameLevelGetGoodsList.Add(new GetGoodsEntity()
            {
                GoodsId = materiaEnity.GoodsId, GoodsCount = 1, GoodsType = 2
            });
        }
        m_GameLevelVictoryView.SetUI(data);

        CurGameLevelTotalExp  += gradeEnitiy.Exp;
        CurGameLevelTotalGold += gradeEnitiy.Gold;
        GameLevel_VictoryProto proto = new GameLevel_VictoryProto();

        proto.GameLevelId = m_GameLevelSceneId;
        proto.Grade       = (byte)m_Garade;
        proto.Star        = (byte)star;
        proto.Exp         = CurGameLevelTotalExp;
        proto.Gold        = CurGameLevelTotalGold;
        foreach (var item in CurGameLevelKillMonsterDic)
        {
            GameLevel_VictoryProto.MonsterItem monster = new GameLevel_VictoryProto.MonsterItem();
            monster.MonsterId    = item.Key;
            monster.MonsterCount = item.Value;
            proto.KillMonsterList.Add(monster);
        }
        foreach (var item in CurGameLevelGetGoodsList)
        {
            GameLevel_VictoryProto.ReceiveGoodsItem goods = new GameLevel_VictoryProto.ReceiveGoodsItem();
            goods.GoodsType  = item.GoodsType;
            goods.GoodsId    = item.GoodsId;
            goods.GoodsCount = item.GoodsCount;
            proto.ReceiveGoodsList.Add(goods);
        }
        NetWorkSocket.Instance.SendMsg(proto.ToArray());
    }