Esempio n. 1
0
        //释放技能
        public virtual void OnEntityReleaseSkill()
        {
            SkillManagerConfig skillManagerConfig = ConfigReader.GetSkillManagerCfg(EntitySkillID);

            if (skillManagerConfig == null)
            {
                return;
            }
            //吸附技能   实际上是配置文件中的  bIsConsumeSkill
            if (skillManagerConfig.isAbsorb == 1)
            {
                //删除已有的相同特效
                foreach (Transform child in RealEntity.objAttackPoint)
                {
                    if (child.name.Contains(skillManagerConfig.absorbRes))
                    {
                        int offset = child.name.IndexOf('_');
                        if (offset != 0)
                        {
                            string name = child.name.Substring(offset + 1);
                            int    id   = Convert.ToInt32(name);
                            EffectManager.Instance.DestroyEffect(id);
                        }
                    }
                }

                //创建吸附技能效果
                string       absortActPath     = "effect/soul_act/" + skillManagerConfig.absorbRes;
                NormalEffect absortSkillEffect = EffectManager.Instance.CreateNormalEffect(absortActPath, RealEntity.objAttackPoint.gameObject);

                if (absortSkillEffect != null)
                {
                    Quaternion rt = Quaternion.LookRotation(EntityFSMDirection);
                }
                objTransform.rotation = Quaternion.LookRotation(EntityFSMDirection);
            }
            else
            {
                if (skillManagerConfig.isNormalAttack == 1) //判断是否是普通攻击
                {
                    RealEntity.PlayeAttackAnimation();      //播放攻击动画
                }
                else//技能攻击
                {
                    RealEntity.PlayerAnimation(skillManagerConfig.rAnimation);//播放释放技能动画
                    //如果此动画不是循环模式
                    if (RealEntity.GetComponent <Animation>()[skillManagerConfig.rAnimation] != null && RealEntity.GetComponent <Animation>()[skillManagerConfig.rAnimation].wrapMode != WrapMode.Loop)
                    {
                        RealEntity.CrossFadeSqu("free");                                      //淡入free动画
                    }
                    HolyTech.Effect.EffectManager.playSkillReleaseSound(this, EntitySkillID); //播放技能释放的声音
                }

                float distance = GetDistanceToPos(EntityFSMPosition);//有什么用?
                if (entityType != EntityType.Building)
                {
                    objTransform.rotation = Quaternion.LookRotation(EntityFSMDirection);
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 爆炸特效
        /// </summary>
        /// <param name="entity"></param>
        public static void SetLoadJianTaBaoZha(Ientity entity, bool Replace = true)
        {
            if (entity.NPCCateChild != ENPCCateChild.eNPCChild_BUILD_Summon && Replace)
            {
                BuildReplaceObject(entity);
            }
            GameObject root = null;
            //Vector3 pos = entity.EntityFSMPosition;
            Vector3 pos = entity.realObject.transform.position;

            //if (entity.NpcGUIDType != Ientity.JIDI_A && entity.NpcGUIDType != Ientity.JIDI_B)
            if (!EntityManager.GetHomeBaseList().Contains(entity))
            {
                string jianTaBaoZha = ConfigReader.GetNpcInfo(entity.NpcGUIDType).NpcJianTaDeath;
                if (jianTaBaoZha == "0" || jianTaBaoZha == null || entity.deadSpot == false)
                {
                    return;
                }

                //GameObject CreateEffect = Resources.Load(GameConstDefine.LoadGameBuildingEffectPath + jianTaBaoZha) as GameObject;
                //ResourceUnit CreateEffectUnit = ResourcesManager.Instance.loadImmediate(GameConstDefine.LoadGameBuildingEffectPath + jianTaBaoZha, ResourceType.PREFAB);
                //GameObject CreateEffect = CreateEffectUnit.Asset as GameObject;


                NormalEffect normalEffect = EffectManager.Instance.CreateNormalEffect(GameConstDefine.LoadGameBuildingEffectPath + jianTaBaoZha, null);
                if (normalEffect == null)
                {
                    return;
                }
                //root = GameObject.Instantiate(CreateEffect) as GameObject;
                //if (root != null)
                //    root.transform.position = new Vector3(pos.x, pos.y + 6, pos.z);
                normalEffect.obj.transform.position = new Vector3(pos.x, pos.y + 6, pos.z);
            }
            else
            {
                if (entity.IsSameCamp(EntityCampType.CampTypeA))
                {
                    pos.y += 6f;
                    LoadBaseDate.Instance().BaseA.gameObject.SetActive(true);
                    LoadBaseDate.Instance().BaseA.transform.position = new Vector3(pos.x, pos.y, pos.z);
                    return;
                }
                LoadBaseDate.Instance().BaseB.gameObject.SetActive(true);
                LoadBaseDate.Instance().BaseB.transform.position = new Vector3(pos.x, pos.y, pos.z);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 爆炸特效
        /// </summary>
        /// <param name="entity"></param>
        public static void SetLoadJianTaBaoZha(IEntity entity, bool Replace = true)
        {
            if (entity.NPCCateChild != NPCCateChildEnum.BUILD_Summon && Replace)
            {
                BuildReplaceObject(entity);
            }
            GameObject root = null;

            Vector3 pos = entity.realObject.transform.position;

            if (!EntityManager.GetHomeBaseList().Contains(entity))
            {
                string jianTaBaoZha = ConfigReader.GetNpcInfo(entity.NpcGUIDType).NpcJianTaDeath;
                if (jianTaBaoZha == "0" || jianTaBaoZha == null || entity.deadSpot == false)
                {
                    return;
                }

                NormalEffect normalEffect = EffectManager.Instance.CreateNormalEffect(GameConstDefine.LoadGameBuildingEffectPath + jianTaBaoZha, null);
                if (normalEffect == null)
                {
                    return;
                }
                //root = GameObject.Instantiate(CreateEffect) as GameObject;
                //if (root != null)
                //    root.transform.position = new Vector3(pos.x, pos.y + 6, pos.z);
                normalEffect.obj.transform.position = new Vector3(pos.x, pos.y + 6, pos.z);
            }
            else
            {
                if (entity.IsSameCamp(EntityCampTypeEnum.A))
                {
                    pos.y += 6f;
                    LoadBaseDate.Instance().BaseA.gameObject.SetActive(true);
                    LoadBaseDate.Instance().BaseA.transform.position = new Vector3(pos.x, pos.y, pos.z);
                    return;
                }
                LoadBaseDate.Instance().BaseB.gameObject.SetActive(true);
                LoadBaseDate.Instance().BaseB.transform.position = new Vector3(pos.x, pos.y, pos.z);
            }
        }
Esempio n. 4
0
        public virtual void OnEntityReleaseSkill()
        {
            //////////////////////////////////////////////////////////////////////////////////////////
            //
            SkillManagerConfig skillManagerConfig = ConfigReader.GetSkillManagerCfg(EntitySkillID);

            if (skillManagerConfig == null)
            {
                return;
            }
            //吸附技能
            if (skillManagerConfig.isAbsorb == 1)
            {
                //删除已有的相同特效
                foreach (Transform child in RealEntity.objAttackPoint)
                {
                    if (child.name.Contains(skillManagerConfig.absorbRes))
                    {
                        int offset = child.name.IndexOf('_');
                        if (offset != 0)
                        {
                            string name = child.name.Substring(offset + 1);
                            int    id   = Convert.ToInt32(name);
                            EffectManager.Instance.DestroyEffect(id);
                        }
                    }
                }

                //创建吸附技能效果
                string       absortActPath     = "effect/soul_act/" + skillManagerConfig.absorbRes;
                NormalEffect absortSkillEffect = EffectManager.Instance.CreateNormalEffect(absortActPath, RealEntity.objAttackPoint.gameObject);
                if (absortSkillEffect != null)
                {
                    Quaternion rt = Quaternion.LookRotation(EntityFSMDirection);
                    //absortSkillEffect.obj.transform.rotation = rt;
                }
                objTransform.rotation = Quaternion.LookRotation(EntityFSMDirection);
            }
            else
            {
                if (skillManagerConfig.isNormalAttack == 1)
                {
                    RealEntity.PlayeAttackAnimation();
                }
                else
                {
                    {
                        RealEntity.PlayerAnimation(skillManagerConfig.rAnimation);
                        if (RealEntity.animation[skillManagerConfig.rAnimation] != null && RealEntity.animation[skillManagerConfig.rAnimation].wrapMode != WrapMode.Loop)
                        {
                            RealEntity.CrossFadeSqu("free");
                        }
                        BlGame.Effect.EffectManager.playSkillReleaseSound(this, EntitySkillID);
                    }
                }
                float distance = GetDistanceToPos(EntityFSMPosition);
                if (entityType != EntityType.Building)
                {
                    objTransform.rotation = Quaternion.LookRotation(EntityFSMDirection);
                }
            }
        }