Exemplo n.º 1
0
    //---------------------------------------------------------------------------
    public void Init(MapStageDifficulty stage_info, MapCreatureInfo info)
    {
        short level = info.Level;
        short grade = info.Grade;

        if (info.CreatureType == eMapCreatureType.Boss && stage_info.MapInfo.MapType == "boss")
        {
            level = Boss.CalculateLevel(level, stage_info);
            grade = Boss.CalculateGrade(level);
        }

        CreatureInfo = info;
        for (int i = 0; i < m_Stars.Length; ++i)
        {
            m_Stars[i].gameObject.SetActive(i < grade);
        }
        m_Grid.Reposition();

        InitCreatureInfo(info.CreatureInfo);

        m_level.text = level.ToString();
        m_Elite.gameObject.SetActive(info.CreatureType == eMapCreatureType.Elite);
        m_Boss.gameObject.SetActive(info.CreatureType == eMapCreatureType.Boss);
        gameObject.SetActive(true);
    }
Exemplo n.º 2
0
    void Init()
    {
        MapCreatureInfo map_creature = m_StageInfo.Waves[0].Creatures.Find(c => c.CreatureType == eMapCreatureType.Boss || c.CreatureType == eMapCreatureType.WorldBoss);

        LabelTitle.text = string.Format("Lv.{0} {1}", BossSpot.CalculateLevel(map_creature.Level, m_StageInfo), map_creature.CreatureInfo.Name);

        CharacterContainer.Init(AssetManager.GetCharacterAsset(map_creature.CreatureInfo.ID, "default"), UICharacterContainer.Mode.UI_Normal);
        CharacterContainer.transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
        CharacterContainer.SetPlay(UICharacterContainer.ePlayType.Social);

        foreach (RewardLoot reward in m_StageInfo.DropItems)
        {
            var reward_item = RewardPrefabManager.GetNewObject <RewardItem>(GridReward.transform, Vector3.zero);
            if (reward.ItemInfo.ItemType == eItemType.SoulStone)
            {
                reward_item.InitSoulStone(reward.ItemInfo as SoulStoneInfo, reward.Value);
            }
            else
            {
                reward_item.InitReward(reward);
            }
        }

        GridReward.Reposition();
    }
Exemplo n.º 3
0
    public void Init(MapStageDifficulty info)
    {
        StageInfo = info;

        MapCreatureInfo creature = StageInfo.Waves[0].Creatures.Find(c => c.CreatureType == eMapCreatureType.Boss);

        short level = CalculateLevel(creature.Level, StageInfo);

        m_LevelText.text          = level.ToString();
        m_ProfileImage.spriteName = string.Format("profile_{0}", creature.CreatureInfo.ID);

        m_Condition = StageInfo.CheckCondition;
        bool is_lock = m_Condition != null;

        m_Level.gameObject.SetActive(!is_lock);
        m_Lock.gameObject.SetActive(is_lock);

        m_ToggleAvailable.SetSpriteActive(!is_lock);

        foreach (UISprite sprite in m_DisableSprite)
        {
            if (is_lock)
            {
                sprite.color = m_DisableColor;
            }
            else
            {
                sprite.color = Color.white;
            }
        }

        gameObject.SetActive(true);
    }
Exemplo n.º 4
0
    void Init()
    {
        MapCreatureInfo map_creature = m_StageInfo.Waves[0].Creatures.Find(c => c.CreatureType == eMapCreatureType.Boss || c.CreatureType == eMapCreatureType.WorldBoss);

        TitleLabel.text = map_creature.CreatureInfo.Name;
        DescLabel.text  = map_creature.CreatureInfo.Desc;
        DescLabel.gameObject.GetComponent <BoxCollider2D>().size   = DescLabel.printedSize;
        DescLabel.gameObject.GetComponent <BoxCollider2D>().offset = new Vector2(0, -DescLabel.printedSize.y / 2);

        foreach (SkillInfo skill in map_creature.CreatureInfo.Skills)
        {
            if (skill.Name.Equals("-"))
            {
                continue;
            }
            var item = SkillItemPrefabmMnager.GetNewObject <SkillMidItem>(SkillGrid.transform, Vector3.zero);
            item.Init(skill);
        }

        foreach (CreatureInfo hero in m_StageInfo.Recommends)
        {
            var item = RecommendPrefabManager.GetNewObject <DungeonHeroRecommend>(Recommend.transform, Vector3.zero);
            item.Init(hero);
        }


        SkillGrid.Reposition();

        Recommend.Reposition();
    }
Exemplo n.º 5
0
    public BattleCreature(MapCreatureInfo map_creature_info, CharacterContainer character_container, float attack_next_time, GameObject hpBarPrefab, GameObject skillPrefab)
    {
        MapStageDifficulty stage_info = Network.BattleStageInfo;

        IsTeam      = false;
        Info        = map_creature_info.CreatureInfo;
        SkinName    = map_creature_info.SkinName;
        MapCreature = map_creature_info;

        Grade        = map_creature_info.Grade;
        Level        = map_creature_info.Level;
        GradePercent = map_creature_info.GradePercent;
        Enchant      = map_creature_info.Enchant;

        if (map_creature_info.UseLeaderSkillType != pe_UseLeaderSkillType.Manual && Info.TeamSkill != null)
        {
            SetLeader(map_creature_info.UseLeaderSkillType, BattleStage.Instance.OnUseEnemyLeaderSkill);
        }

        switch (map_creature_info.CreatureType)
        {
        case eMapCreatureType.Elite:
            Scale = 1.2f;
            break;

        case eMapCreatureType.Boss:
            Scale = 1.4f;

            if (stage_info.MapInfo.MapType == "boss")
            {
                Level        = Boss.CalculateLevel(Level, stage_info);
                Grade        = Boss.CalculateGrade(Level);
                Enchant      = Boss.CalculateEnchant(Level);
                GradePercent = CreatureInfoManager.Instance.Grades[Grade].enchants[Enchant].stat_percent * GameConfig.Get <float>("boss_grade_percent");
            }
            Battle.Instance.m_BossHP.Init(this);

            break;

        case eMapCreatureType.WorldBoss:
            Scale = 2.5f;
            BattleWorldboss.Instance.m_BossHP.Init(this, true);
            IgnoreTween = true;
            TextOffset  = -20f;
//                IsShowText = false;
            break;
        }
        Stat = new CreatureStat(map_creature_info.GetStat(Level, GradePercent, Enchant));

        AutoSkillIndex = map_creature_info.AutoSkillIndex;
        InitCommon(character_container, attack_next_time, hpBarPrefab, skillPrefab);

        if (map_creature_info.CreatureType == eMapCreatureType.WorldBoss)
        {
            HPBar.gameObject.SetActive(false);
        }

        foreach (SkillInfo skill_info in Info.Skills)
        {
            if (skill_info.Type != eSkillType.active)
            {
                continue;
            }
            Skills.Add(new BattleSkill(skill_info, this, map_creature_info.Level));
        }

        if (map_creature_info.PassiveInfos.Count > 0)
        {
            foreach (var passive_info in map_creature_info.PassiveInfos)
            {
                bool first        = true;
                var  battle_skill = new BattleSkill(passive_info.SkillInfo, this, map_creature_info.Level);
                foreach (var action in passive_info.SkillInfo.Actions)
                {
                    ISkillBuff buff = SkillTarget.DoBuff(action, this, this, battle_skill, 0, null);
                    if (first == true && string.IsNullOrEmpty(passive_info.SkillInfo.ActionName) == false)
                    {
                        first = false;
                        var comp = AssetManager.GetCharacterPrefab("PassiveEtc_" + passive_info.SkillInfo.ActionName).GetComponent <CharacterActionBuffComponent>();
//                         comp.data.InitEffect();
                        CharacterActionBuff new_action = comp.data.CreateAction(comp, PlaybackTime, Character, 999f, false, 1f);
                        buff.Action = new_action;
                    }
                }
            }
            var buff_worldboss = Buffs.Find(b => b.ActionInfo.actionType == eActionType.worldboss);
            if (buff_worldboss != null)
            {
                Stat.HP = Stat.MaxHP = buff_worldboss.ActionInfo.value;
            }
            else
            {
                Stat.HP = Stat.MaxHP = Stat.Stat.MaxHP;
            }
            Stat.MP = Stat.Stat.ManaInit;
        }
    }