Example #1
0
    public void AddUpgradeEffect(DataHeroUpgrade upgrade, int level)
    {
//		int level_1 = level - 1;
        basicParam.damage *= (1 + upgrade.kAP * level);
        basicParam.ammo   *= (1 + upgrade.kDP * level);
        basicParam.hp     *= (1 + upgrade.kHP * level);
    }
    override protected void DisposeContent(ComposeHeroResponse content)
    {
        InstancePlayer.instance.model_User.model_heroGroup.AddHero(content.hero);

        DataHeroUpgrade dataHeroUpgrade = DataManager.instance.dataHeroGroup.GetHeroUpgrade(_request.heroId, content.hero.stage);
        int             itemCount       = InstancePlayer.instance.model_User.model_itemGroup.UseItem(dataHeroUpgrade.itemId, dataHeroUpgrade.itemCount);
    }
Example #3
0
    // =========================================
    // compose

    public bool HasEnoughItemToCompose(int id)
    {
        DataHeroUpgrade dataHeroUpgrade = DataManager.instance.dataHeroGroup.GetHeroUpgrade(id, 1);

        int count = InstancePlayer.instance.model_User.model_itemGroup.GetItemCount(dataHeroUpgrade.itemId);

        return(count >= dataHeroUpgrade.itemCount);
    }
Example #4
0
    public bool HasEnoughLevelToUpgrade(int id)
    {
        Hero            hero            = GetHero(id);
        DataHeroUpgrade dataHeroUpgrade = DataManager.instance.dataHeroGroup.GetHeroUpgrade(id, hero.stage + 1);

        int level = GetCurrentLevel(id);

        return(level >= dataHeroUpgrade.requireLevel);
    }
    override protected void DisposeContent(EvolveHeroResponse content)
    {
        int  heroId = _request.heroId;
        Hero hero   = InstancePlayer.instance.model_User.model_heroGroup.GetHero(heroId);

        hero.stage++;
        Assert.assert(hero.stage < DataHero.STAGE_MAX);

        DataHeroUpgrade dataHeroUpgrade = DataManager.instance.dataHeroGroup.GetHeroUpgrade(_request.heroId, hero.stage);
        int             itemCount       = InstancePlayer.instance.model_User.model_itemGroup.UseItem(dataHeroUpgrade.itemId, dataHeroUpgrade.itemCount);
    }
Example #6
0
    void UpdataUI()
    {
        if (_heroData != null)
        {
            Model_HeroGroup model_heroGroup  = InstancePlayer.instance.model_User.model_heroGroup;
            Hero            hero             = model_heroGroup.GetHero(_heroData.id);
            DataHeroUpgrade dataHeroUpgrade1 = DataManager.instance.dataHeroGroup.GetHeroUpgrade(_heroData.id, hero.stage);

            Item item = InstancePlayer.instance.model_User.model_itemGroup.QueryItem(dataHeroUpgrade1.itemId);
            _currentValue_Label.text = item.num.ToString();
            _needValue_Label.text    = dataHeroUpgrade1.itemCount.ToString();
        }
    }
Example #7
0
    public int GetHeroUnlockWithItem(int itemId)
    {
        foreach (Dictionary <int, DataHeroUpgrade> upgrades in heroesUpgradeMap.Values)
        {
            DataHeroUpgrade firstUpgrade = upgrades [1];

            foreach (DataHeroUpgrade upgrade in upgrades.Values)
            {
                Assert.assert(upgrade.itemId == firstUpgrade.itemId, "not all stage use same chip item");
            }

            if (firstUpgrade.itemId == itemId)
            {
                return(firstUpgrade.id);
            }
        }

        return(0);
    }
Example #8
0
    public void LoadHerosUpgrade(string name)
    {
        byte[] bin     = DynamicFileControl.QueryFileContent(name);
        string content = StringHelper.ReadFromBytes(bin);

        LitJson.JSONNode json = LitJson.JSON.Parse(content);

        foreach (LitJson.JSONNode subNode in json.Childs)
        {
            DataHeroUpgrade data = new DataHeroUpgrade();
            data.Load(subNode);

            if (!heroesUpgradeMap.ContainsKey(data.id))
            {
                Assert.assert(GetHeroUnlockWithItem(data.itemId) <= 0, "one item link to multi heroes");

                heroesUpgradeMap[data.id] = new Dictionary <int, DataHeroUpgrade>();
            }
            Dictionary <int, DataHeroUpgrade> stagesMap = heroesUpgradeMap[data.id];
            stagesMap[data.stage] = data;
        }
    }
Example #9
0
    public DataHero GetHero(int id, int exp, int stage)
    {
        DataHero dataHero = heroesMap [id];

        dataHero = dataHero.Clone() as DataHero;

        /*
         * SlgPB.Hero hero = InstancePlayer.instance.model_User.model_heroGroup.GetHero ();
         * int stage = hero.stage;
         */

        int             level       = GetHeroLevel(id, exp);
        DataHeroUpgrade dataUpgrade = GetHeroUpgrade(id, stage);

        dataHero.AddUpgradeEffect(dataUpgrade, level);

        return(dataHero);

        /*
         * Dictionary<int, DataHero> levels = heroesMap [id];
         * return levels [level];
         */
    }
Example #10
0
    public HeroData InitHeroData(DataHero data)
    {
        if (data != null)
        {
            DataHeroLeadership heroLeadershipData = heroGroupData.GetHeroLeadership(data.id);

            Model_HeroGroup model_heroGroup = InstancePlayer.instance.model_User.model_heroGroup;
            Model_ItemGroup model_itemGroup = InstancePlayer.instance.model_User.model_itemGroup;
            Model_Formation model_formation = InstancePlayer.instance.model_User.model_Formation;
            HeroData        heroData        = new HeroData();
            heroData.id       = data.id;
            heroData.heroType = (HeroType)data.type;
            heroData.quality  = heroLeadershipData.quality;
            heroData.IconName = UICommon.HERO_TEXTURE_ICON_PATH + data.id;
            heroData.skillId  = (int)heroLeadershipData.skill;
            heroData.data     = data;
            DataHeroUpgrade heroUpgradeData = heroGroupData.GetHeroUpgrade(data.id, 1);
            heroData.heroUpgradeData = heroUpgradeData;
            if (model_heroGroup.heroesMap.ContainsKey(data.id))
            {
                heroData.level       = model_heroGroup.GetCurrentLevel(data.id);
                heroData.recruitType = RecruitType.ALREADYRECRUIT;
                heroData.rank        = model_heroGroup.GetCurrentStage(data.id);
                heroData.rankName    = UICommon.HERO_RANK_ICON_PATH + model_heroGroup.GetCurrentStage(data.id);
                heroData.exp         = model_heroGroup.GetHero(data.id).exp;
            }
            else
            {
                heroData.level    = 1;
                heroData.rank     = 1;            //默认军衔为下士
                heroData.rankName = UICommon.HERO_RANK_ICON_PATH + "1";
                heroData.exp      = 0;

                //isCanUnlock 是否能解锁
                Item item = model_itemGroup.QueryItem(heroUpgradeData.itemId);
                if (item.num >= heroUpgradeData.itemCount)
                {
                    heroData.recruitType = RecruitType.CANRECRUIT;
                }
                else
                {
                    heroData.recruitType = RecruitType.UNABLERECRUIT;
                }
            }
            //英雄是否上阵
            for (int i = 1; i < 4; i++)
            {
                heroData.team = (TEAM)0;
                if (model_formation.IsTeamContaninHero(i, data.id))
                {
                    heroData.team = (TEAM)i;
                    break;
                }
            }

            switch ((int)heroLeadershipData.quality)
            {
            case 1:
                heroData.nameColor  = UICommon.UNIT_NAME_COLOR_0;
                heroData.IconBgName = UICommon.UNIT_ICON_BG + "0";
                break;

            case 2:
                heroData.nameColor  = UICommon.UNIT_NAME_COLOR_1;
                heroData.IconBgName = UICommon.UNIT_ICON_BG + "1";
                break;

            case 3:
                heroData.nameColor  = UICommon.UNIT_NAME_COLOR_2;
                heroData.IconBgName = UICommon.UNIT_ICON_BG + "2";
                break;

            case 4:
                heroData.nameColor  = UICommon.UNIT_NAME_COLOR_3;
                heroData.IconBgName = UICommon.UNIT_ICON_BG + "3";
                break;

            case 5:
                heroData.nameColor  = UICommon.UNIT_NAME_COLOR_4;
                heroData.IconBgName = UICommon.UNIT_ICON_BG + "4";
                break;

            default:
                heroData.nameColor  = UICommon.UNIT_NAME_COLOR_0;
                heroData.IconBgName = UICommon.UNIT_ICON_BG + "0";
                break;
            }

            return(heroData);
        }
        return(null);
    }
Example #11
0
    void UpdataUI()
    {
        if (_heroData != null)
        {
            _iconBg.spriteName = _heroData.IconBgName;
            _icon_Texture.SetHeroSmallTexture(_heroData.id);
            switch (_heroData.team)
            {
            case HeroDataManager.TEAM.NOTEAM:
                _formation_sprite.gameObject.SetActive(false);
                break;

            case HeroDataManager.TEAM.FIRSTTEAM:
                _formation_sprite.gameObject.SetActive(true);
                _formation_sprite.spriteName = "heroTeam_" + (int)_heroData.team;
                break;

            case HeroDataManager.TEAM.SECONDTEAM:
                _formation_sprite.gameObject.SetActive(true);
                _formation_sprite.spriteName = "heroTeam_" + (int)_heroData.team;
                break;

            case HeroDataManager.TEAM.THIRDTEAM:
                _formation_sprite.gameObject.SetActive(true);
                _formation_sprite.spriteName = "heroTeam_" + (int)_heroData.team;
                break;
            }

            _type_Sprite.spriteName = "arms_" + (int)_heroData.heroType;

            _heroName_Label.color = _heroData.nameColor;
            _heroName_Label.text  = _heroData.data.name;

            Model_HeroGroup model_heroGroup = InstancePlayer.instance.model_User.model_heroGroup;
            _rank_sprite.spriteName = UICommon.HERO_RANK_ICON_PATH + model_heroGroup.GetCurrentStage(_heroData.id);
            _heroLevel_Label.text   = model_heroGroup.GetCurrentLevel(_heroData.id).ToString();

            int  heroLevel = model_heroGroup.GetCurrentLevel(_heroData.id);
            Hero hero      = model_heroGroup.GetHero(_heroData.id);

            DataHero        dataHero1        = DataManager.instance.dataHeroGroup.GetHero(_heroData.id, hero.exp, hero.stage);
            DataHeroUpgrade dataHeroUpgrade1 = DataManager.instance.dataHeroGroup.GetHeroUpgrade(_heroData.id, hero.stage);
            if (dataHeroUpgrade1.requireLevel > heroLevel)
            {
                _LevelValue_Label.text = UIHelper.SetStringSixteenColor(heroLevel.ToString(), UICommon.SIXTEEN_RED) + UIHelper.SetStringSixteenColor("/" + dataHeroUpgrade1.requireLevel.ToString(), UICommon.SIXTEEN_GREEN);
            }
            else
            {
                _LevelValue_Label.text = UIHelper.SetStringSixteenColor(heroLevel.ToString(), UICommon.SIXTEEN_GREEN) + UIHelper.SetStringSixteenColor("/" + dataHeroUpgrade1.requireLevel.ToString(), UICommon.SIXTEEN_GREEN);
            }
            Item item = InstancePlayer.instance.model_User.model_itemGroup.QueryItem(dataHeroUpgrade1.itemId);
            if (item.num < dataHeroUpgrade1.itemCount)
            {
                _number_Label.text = UIHelper.SetStringSixteenColor(item.num.ToString(), UICommon.SIXTEEN_RED) + UIHelper.SetStringSixteenColor("/" + dataHeroUpgrade1.itemCount.ToString(), UICommon.SIXTEEN_GREEN);
            }
            else
            {
                _number_Label.text = UIHelper.SetStringSixteenColor(item.num.ToString(), UICommon.SIXTEEN_GREEN) + UIHelper.SetStringSixteenColor("/" + dataHeroUpgrade1.itemCount.ToString(), UICommon.SIXTEEN_GREEN);
            }
            //hp
            _current_Label_1.text = ((int)dataHero1.basicParam.hp).ToString();
            //ap
            _current_Label_2.text = ((int)dataHero1.basicParam.damage).ToString();
            //dp
            _current_Label_3.text   = ((int)dataHero1.basicParam.ammo).ToString();
            _UPcurrent_Label_1.text = dataHeroUpgrade1.kHP.ToString();
            _UPcurrent_Label_2.text = dataHeroUpgrade1.kAP.ToString();
            _UPcurrent_Label_3.text = dataHeroUpgrade1.kDP.ToString();

            if (hero.stage + 1 > MAXSTAGE)
            {
                _willbe_Label_1.gameObject.SetActive(false);
                _willbe_Label_2.gameObject.SetActive(false);
                _willbe_Label_3.gameObject.SetActive(false);
                _UPwillbe_Label_1.gameObject.SetActive(false);
                _UPwillbe_Label_2.gameObject.SetActive(false);
                _UPwillbe_Label_3.gameObject.SetActive(false);
            }
            else
            {
                DataHero        dataHero2        = DataManager.instance.dataHeroGroup.GetHero(_heroData.id, hero.exp, hero.stage + 1);
                DataHeroUpgrade dataHeroUpgrade2 = DataManager.instance.dataHeroGroup.GetHeroUpgrade(_heroData.id, hero.stage + 1);
                _willbe_Label_1.gameObject.SetActive(true);
                _willbe_Label_2.gameObject.SetActive(true);
                _willbe_Label_3.gameObject.SetActive(true);
                _UPwillbe_Label_1.gameObject.SetActive(true);
                _UPwillbe_Label_2.gameObject.SetActive(true);
                _UPwillbe_Label_3.gameObject.SetActive(true);
                _willbe_Label_1.text   = ((int)dataHero2.basicParam.hp).ToString();
                _willbe_Label_2.text   = ((int)dataHero2.basicParam.damage).ToString();
                _willbe_Label_3.text   = ((int)dataHero2.basicParam.ammo).ToString();
                _UPwillbe_Label_1.text = dataHeroUpgrade2.kHP.ToString();
                _UPwillbe_Label_2.text = dataHeroUpgrade2.kAP.ToString();
                _UPwillbe_Label_3.text = dataHeroUpgrade2.kDP.ToString();
            }

            //hitRate
            float  hitDodDou     = 0.0f;
            string hitDodDouDesc = "";
            if (dataHero1.basicParam.hitRate != 0.0f)
            {
                hitDodDouDesc = "命中";
                hitDodDou     = dataHero1.basicParam.hitRate;
            }
            if (dataHero1.basicParam.dodgeRate != 0.0f)
            {
                hitDodDouDesc = "闪避";
                hitDodDou     = dataHero1.basicParam.dodgeRate;
            }
            if (dataHero1.basicParam.doubleDamageRate != 0.0f)
            {
                hitDodDouDesc = "暴击";
                hitDodDou     = dataHero1.basicParam.doubleDamageRate;
            }
            if (hitDodDou != 0.0f)
            {
                _attribute_Label_4.gameObject.SetActive(true);
                _current_Label_4.text = hitDodDou.ToString();
            }
            else
            {
                _attribute_Label_4.gameObject.SetActive(false);
            }


            if (hero.stage + 1 > MAXSTAGE)
            {
                _willbe_Label_4.gameObject.SetActive(false);
            }
            else
            {
                _willbe_Label_4.gameObject.SetActive(true);
                DataHero dataHero2 = DataManager.instance.dataHeroGroup.GetHero(_heroData.id, hero.exp, hero.stage + 1);
                if (dataHero2.basicParam.hitRate != 0.0f)
                {
                    hitDodDouDesc = "命中";
                    hitDodDou     = dataHero2.basicParam.hitRate;
                }
                if (dataHero2.basicParam.dodgeRate != 0.0f)
                {
                    hitDodDouDesc = "闪避";
                    hitDodDou     = dataHero2.basicParam.dodgeRate;
                }
                if (dataHero2.basicParam.doubleDamageRate != 0.0f)
                {
                    hitDodDouDesc = "暴击";
                    hitDodDou     = dataHero2.basicParam.doubleDamageRate;
                }
                if (hitDodDou != 0.0f)
                {
                    _willbe_Label_4.gameObject.SetActive(true);
                    _willbe_Label_4.text = hitDodDou.ToString();
                }
                else
                {
                    _willbe_Label_4.gameObject.SetActive(false);
                }
            }
        }
    }