예제 #1
0
 public override void Init(GameObject player, Wave wave, EZ.Data.MonsterItem monster)
 {
     base.Init(player, wave, monster);
     m_PursureAct.Init(player, wave, this);
     m_BeatBackAct.Init(player, wave, this);
     m_BeatBackAct.SetWeight(Weight);
 }
예제 #2
0
 private void InitNormalInfo(GameObject player, EZ.Data.MonsterItem monsterItem)
 {
     //PassItem passData = m_Wave.GetPassData();
     //if ((PassType)passData.passType == PassType.MainPass)
     //{
     m_MaxHp = monsterItem.baseHp * Game.PlayerDataMgr.singleton.StageHpParam;
     //m_Damage = 25 * (1 + 0.25f) ^ (怪攻击等级 - 1);
     //m_Damage = Mathf.Ceil(25 * Mathf.Pow((1 + 0.25f), (Game.PlayerDataMgr.singleton.StageAtkLevel - 1)));
     //}
     //else
     //{
     //    PassItem passItem = Global.gApp.gSystemMgr.GetPassMgr().GetPassItem();
     //    if (passItem != null)
     //    {
     //        m_MaxHp = monsterItem.baseHp * passItem.hpParam * passData.hpParam;
     //    }
     //    else
     //    {
     //        m_MaxHp = monsterItem.baseHp * passData.hpParam;
     //    }
     //    if ((SceneType)passData.sceneType == SceneType.BreakOutSene)
     //    {
     //        transform.localScale = m_OriScale * 1.6f;
     //    }
     //    else
     //    {
     //        transform.localScale = m_OriScale;
     //    }
     //}
     //m_MaxHp *= m_Wave.GetHpParam();
 }
예제 #3
0
        public override void Init(GameObject player, Wave wave, EZ.Data.MonsterItem monster)
        {
            base.Init(player, wave, monster);
            if (m_DeadHideNode != null)
            {
                m_DeadHideNode.SetActive(true);
            }
            m_UseRightBodyVec      = true;
            m_Collider2D.isTrigger = false;
            gameObject.layer       = GameConstVal.MonsterLayer;
            m_BaseSpeed            = monster.baseSpeed;
            if (Global.gApp.CurScene.GetSceneType() == SceneType.BreakOutSene)
            {
                m_DeadThSpeed = new Vector2(0, -m_BaseSpeed * 0.7f);
                m_BaseSpeed  *= 0.7f;
            }
            else
            {
                m_DeadThSpeed = new Vector2(0, -m_BaseSpeed * 0.8f);
            }
            m_Speed = new Vector2(0, -m_BaseSpeed);

            transform.localEulerAngles = new Vector3(0, 0, 180);
            if (CtlParticle != null)
            {
                CtlParticle.Play();
            }
        }
예제 #4
0
파일: Wave.cs 프로젝트: howelllucas/Project
        public void CreateFassionMonster(int monsterId, Vector3 position)
        {
            EZ.Data.MonsterItem monsterItem = Global.gApp.gGameData.MosterData.Get(monsterId);
            Monster             monster     = m_WaveMgr.CreateMonster(monsterItem, true);

            monster.transform.position = position;
            m_Monsters.Add(monster);
            monster.Init(m_MainPlayer, this, monsterItem);
            m_MonsterCount++;
        }
예제 #5
0
 public virtual void InitForCache(GameObject player, Wave wave, EZ.Data.MonsterItem monsterItem)
 {
     m_UsingSkill  = false;
     enabled       = true;
     InDeath       = false;
     m_Wave        = wave;
     m_CurDeadTime = 0;
     InitOnceInfo(player, monsterItem);
     SetCollisionEnable(false);
     PlayAnim(GameConstVal.Run, -1, Random.Range(0.0f, 1.0f));
     RecycleSelf();
 }
예제 #6
0
        public virtual void Init(GameObject player, Wave wave, EZ.Data.MonsterItem monsterItem)
        {
            m_UsingSkill    = false;
            enabled         = true;
            InDeath         = false;
            m_Wave          = wave;
            m_CurDeadTime   = 0;
            m_CurEffectTime = m_EffectDtTime;
            if (m_AiBuffMgr != null)
            {
                m_AiBuffMgr.ClearBuff();
            }
            InitOnceInfo(player, monsterItem);
            if (SkinePlayerAnim != null)
            {
                SkinePlayerAnim.enabled = true;
            }
            PlayAnim(GameConstVal.Run, -1, Random.Range(0.0f, 1.0f));
            SetAnimSpeed(1);

            InitNormalInfo(player, monsterItem);
            SetCollisionEnable(true);
            SetRightBodyType(RigidbodyType2D.Dynamic);
            m_Hp = m_MaxHp;

            Debug.Log("m_Hp " + m_Hp);
            if (monsterItem.hasHpSlider > 0)
            {
                Global.gApp.gMsgDispatcher.Broadcast <int, Transform>(MsgIds.AddMonsterHpUi, m_Guid, m_HpNode);
            }
            if (monsterItem.hasShowAct > 0)
            {
                AIBossShow3001 show = gameObject.AddComponent <AIBossShow3001>();
                show.Init(player);
                show.AddApperaEffect();
            }
            if (m_AiPauseAct != null)
            {
                m_AiPauseAct.Init(this);
            }
            else
            {
                SetActEnable(true);
            }
        }
예제 #7
0
 private void InitOnceInfo(GameObject player, EZ.Data.MonsterItem monsterItem)
 {
     if (m_PlayerGo != null)
     {
         return;
     }
     if (SkinePlayerAnim != null)
     {
         SkinePlayerAnim.Init();
     }
     m_OriLayer    = gameObject.layer;
     m_BodyNode    = transform.Find(GameConstVal.BodyNode);
     m_HpNode      = transform.Find(GameConstVal.HpNode);
     m_AiBase      = GetComponents <AiBase>();
     m_MonsterId   = monsterItem.tag;
     m_PlayerGo    = player;
     m_Player      = player.GetComponent <Player>();
     m_MonsterItem = monsterItem;
     m_Rigidbody2D = GetComponent <Rigidbody2D>();
     m_OriMass     = m_Rigidbody2D.mass;
     m_Collider2D  = GetComponent <Collider2D>();
     m_AiPauseAct  = GetComponentInChildren <AIPauseAct>();
     m_OriScale    = transform.localScale;
     m_OriSpeed    = monsterItem.aniSpeed;
     if (monsterItem.type == (int)MonsterType.Boss)
     {
         int            skillLevel     = Global.gApp.gSystemMgr.GetSkillMgr().GetSkillLevel(GameConstVal.SExBossHarm);
         Skill_dataItem skillLevelData = Global.gApp.gGameData.SkillDataConfig.Get(skillLevel);
         m_DamageParam   = (skillLevelData == null) ? 1f : skillLevelData.skill_exbossharm[0];
         m_DeadthBackAct = false;
     }
     if (monsterItem.type == (int)MonsterType.Normal)
     {
         m_IsNormalMonster = true;
     }
     else
     {
         m_IsNormalMonster = false;
     }
 }
예제 #8
0
        public MonsterItem Get(int tag)
        {
            int min = 0;
            int max = items.Length;

            while (min < max)
            {
                int         index = (min + max) >> 1;
                MonsterItem item  = _Items[index];
                if (item.tag == tag)
                {
                    return(item);
                }
                if (tag < item.tag)
                {
                    max = index;
                }
                else
                {
                    min = index + 1;
                }
            }
            return(null);
        }
예제 #9
0
파일: Wave.cs 프로젝트: howelllucas/Project
 public float GetDeadTime(Animator animator, EZ.Data.MonsterItem monster)
 {
     return(m_WaveMgr.GetDeadTime(animator, monster.path));
 }