Exemplo n.º 1
0
    //获得新装备
    public bool AddEquip(Equip equip)
    {
        Equip curEquip = equips[equip.equipType];

        if (curEquip != null)
        {
            //curEquip.UnLoad(this);
            if (curEquip.level > equip.level)
            {
                WndTips.ShowTips("不可替换为低等级的装备!");
                return(false);
            }
            else
            {
                AudioManager.instance.PlayEffect(ConstConfig.UpEquip);

                EquipModel equipModel = ModelManager.Get <EquipModel>("EquipModel");

                curEquip.UnLoad(this);

                equipModel.AddEquip(curEquip);

                equips[equip.equipType] = equip;

                equip.Load(this);

                OnUpdateEquip?.Invoke();

                return(true);
            }
        }
        else if (equip.level > cost && isLevelEffect == true)
        {
            WndTips.ShowTips("装备等级不能低于角色品质.");
            return(false);
        }
        else
        {
            AudioManager.instance.PlayEffect(ConstConfig.UpEquip);

            equips[equip.equipType] = equip;

            equip.Load(this);

            OnUpdateEquip?.Invoke();

            return(true);
        }
        //return curEquip;
    }
Exemplo n.º 2
0
    //获得关卡奖励(不包括金币,金币奖励在 playerData类中处理)
    void GetReward(dynamic dy)
    {
        GameLevelModel gameLevel  = ModelManager.Get <GameLevelModel>("GameLevelModel");
        EquipModel     equipModel = ModelManager.Get <EquipModel>("EquipModel");
        int            curLevel   = gameLevel.GetLevel();

        if (curLevel % ConstConfig.equipRewardLevel == 0)
        {
            //获得装备奖励
            //第一个装备的id为1,随机直接int里随机

            //获得随机3件装备
            List <Equip> equipIds = new List <Equip>(MaxEquipReward);

            //概率 30 30 20 10 10
            int gailv1 = 30;  //1-30
            int gailv2 = 60;  //31-60
            int gailv3 = 80;  //61-80
            int gailv4 = 90;  //81-90
            int gailv5 = 100; //91-100

            for (int i = 0; i < MaxEquipReward; i++)
            {
                int randomRes = Random.Range(1, 101);

                int resLevel = 0;

                if (randomRes >= 1 && randomRes <= gailv1)
                {
                    resLevel = 1;
                }
                else if (randomRes >= gailv1 + 1 && randomRes <= gailv2)
                {
                    resLevel = 2;
                }
                else if (randomRes >= gailv2 + 1 && randomRes <= gailv3)
                {
                    resLevel = 3;
                }
                else if (randomRes >= gailv3 + 1 && randomRes <= gailv4)
                {
                    resLevel = 4;
                }
                else if (randomRes >= gailv4 + 1 && randomRes <= gailv5)
                {
                    resLevel = 5;
                }
                var targetIds = EquipModel.equipIds[resLevel];

                int id = targetIds[Random.Range(0, targetIds.Count)];

                Equip e = new Equip(id);
                equipIds.Add(e);
                equipModel.AddEquip(e);
            }

            ViewManager.Get <WndFightOver>("WndFightOver").ShowEquipReward(equipIds);
        }
        if (curLevel % ConstConfig.talentRewardLevel == 0)
        {
            if (ModelManager.Get <TalentModel>("TalentModel").canUseTalent.Count > 0)
            {
                ViewManager.Get("WndTalent").SetVisible(true);
            }
        }
    }