Esempio n. 1
0
        /// <summary>
        /// 调整攻击者的方向
        /// </summary>
        /// <param name="param"></param>
        /// <param name="masteBeast"></param>
        public virtual void AdjustAttackDirection(CastSkillParam param, Beast masteBeast)
        {
            Vector2 forward = Vector2.zero;

            if (null == param)
            {
                return;
            }
            if (param.listTargetRoleID.Count > 0)
            {
                if (param.listTargetRoleID[0] != masteBeast.Id)
                {
                    Beast beAttacker = Singleton <BeastManager> .singleton.GetBeastById(param.listTargetRoleID[0]);

                    if (beAttacker != null)
                    {
                        forward            = beAttacker.RealPos2D - masteBeast.RealPos2D;
                        masteBeast.Forward = forward;
                    }
                }
            }
            else
            {
                Vector2 targetPos = Hexagon.GetHexPosByIndex(param.vec3TargetPos.nRow, param.vec3TargetPos.nCol, Space.World);
                forward            = targetPos - masteBeast.RealPos2D;
                masteBeast.Forward = forward;
            }
        }
Esempio n. 2
0
        public virtual void OnCastSkillEffect(CastSkillParam castSkillParam)
        {
            if (castSkillParam != null)
            {
                Beast beast = Singleton <BeastManager> .singleton.GetBeastById(castSkillParam.m_unMasterBeastId);

                if (beast != null)
                {
                    DataSkillShow data             = beast.GetSkillShow(this.m_unskillId);
                    int           attackEffectId   = 0;
                    int           beAttackEffectId = 0;
                    this.GetEffectId(beast.Id, ref attackEffectId, ref beAttackEffectId);
                    if (castSkillParam.listTargetRoleID.Count == 1)
                    {
                        this.m_nEffectId = EffectManager.Instance.PlayEffect(attackEffectId, beast.Id,
                                                                             Hexagon.GetHex3DPos(this.GetHeroPosByCastSkillParam(castSkillParam), Space.World)
                                                                             , null, castSkillParam.listTargetRoleID[0],
                                                                             Hexagon.GetHex3DPos(castSkillParam.vec3TargetPos, Space.World), null, Vector3.zero);
                    }
                    if (data != null && data.IsEffectForward)
                    {
                        this.AdjustAttackDirection(castSkillParam, beast);
                    }
                }
            }
        }
Esempio n. 3
0
    /// <summary>
    /// 神兽释放技能
    /// </summary>
    /// <param name="beastId"></param>
    /// <param name="skillId"></param>
    /// <param name="param"></param>
    public void OnBeastCastSkill(long beastId, int skillId, CastSkillParam param)
    {
        Beast beast = this.GetBeastById(beastId);

        if (beast != null)
        {
        }
    }
Esempio n. 4
0
    /// <summary>
    /// 技能释放特效表现
    /// </summary>
    /// <param name="beastId"></param>
    /// <param name="unSkillId"></param>
    /// <param name="castSkillParam"></param>
    public void OnBeastCastSkillEffect(long beastId, int unSkillId, CastSkillParam castSkillParam)
    {
        Beast beast = this.GetBeastById(beastId);

        if (beast != null)
        {
            //beast.OnCastSkillEffect(unSkillId, castSkillParam);
        }
    }
Esempio n. 5
0
    /// <summary>
    /// 神兽释放技能表现
    /// </summary>
    /// <param name="beastId"></param>
    /// <param name="skillId"></param>
    /// <param name="param"></param>
    public void OnBeastCastSkillAction(long beastId, int skillId, CastSkillParam param)
    {
        Beast beast = this.GetBeastById(beastId);

        if (beast != null)
        {
            beast.OnCastSkillAction(beastId, skillId, param);
        }
    }
Esempio n. 6
0
 /// <summary>
 /// 技能释放特效
 /// </summary>
 /// <param name="unSkillId"></param>
 /// <param name="castSkillParam"></param>
 public void OnCastSkillEffect(int unSkillId, CastSkillParam castSkillParam)
 {
     try
     {
         SkillBase skillStrategy = SkillGameManager.GetSkillBase(unSkillId);
         if (null != skillStrategy)
         {
             skillStrategy.OnCastSkillEffect(castSkillParam);
         }
     }
     catch (Exception ex)
     {
         this.m_log.Fatal(ex.ToString());
     }
 }
Esempio n. 7
0
 /// <summary>
 /// 神兽释放技能表现
 /// </summary>
 /// <param name="skillId"></param>
 /// <param name="param"></param>
 public void OnCastSkillAction(int skillId, CastSkillParam param)
 {
     try
     {
         SkillBase skill = SkillGameManager.GetSkillBase(skillId);
         if (skill != null)
         {
             skill.OnCastAction(param);
         }
     }
     catch (Exception e)
     {
         this.m_log.Fatal(e.ToString());
     }
 }
Esempio n. 8
0
        /// <summary>
        /// 取得技能特效的位置,如果神兽存在的话,就神兽位置,否则就是目标位置
        /// </summary>
        /// <param name="castSkill"></param>
        /// <returns></returns>
        private CVector3 GetHeroPosByCastSkillParam(CastSkillParam castSkill)
        {
            Beast heroById = Singleton <BeastManager> .singleton.GetBeastById(castSkill.m_unMasterBeastId);

            CVector3 result;

            if (heroById != null)
            {
                result = heroById.Pos;
            }
            else
            {
                result = castSkill.vec3TargetPos;
            }
            return(result);
        }
Esempio n. 9
0
 public override void Trigger()
 {
     if (this.SkillId > 0)
     {
         CastSkillParam param = new CastSkillParam();
         param.m_unMasterBeastId = this.AttackerId;
         param.listTargetRoleID  = new List <long>();
         param.listTargetRoleID.AddRange(this.BeAttackerId);
         param.unTargetSkillID = this.SkillId;
         if (this.BeAttackerId.Count > 0)
         {
             param.vec3TargetPos = new CVector3(this.BeAttackerPos[0]);
         }
         Singleton <BeastManager> .singleton.OnBeastCastSkillAction(this.AttackerId, this.SkillId, param);
     }
 }
Esempio n. 10
0
 public override void Trigger()
 {
     if (this.SkillID > 0u)
     {
         CastSkillParam castSkillParam = new CastSkillParam();
         castSkillParam.m_unMasterBeastId = this.AttackerId;
         castSkillParam.listTargetRoleID  = new List <long>();
         castSkillParam.listTargetRoleID.AddRange(this.ListBeAttackerId);
         castSkillParam.unTargetSkillID = this.SkillID;
         if (this.ListBeAttackPos.Count > 0)
         {
             castSkillParam.vec3TargetPos = new CVector3(this.ListBeAttackPos[0]);
         }
         Singleton <BeastManager> .singleton.OnBeastCastSkillEffect(this.AttackerId, this.SkillID, castSkillParam);
     }
 }
Esempio n. 11
0
        /// <summary>
        /// 调整被攻击者的方向
        /// </summary>
        /// <param name="param"></param>
        /// <param name="masteBeast"></param>
        public virtual void AdjustBeAttackerDirection(CastSkillParam param, Beast masteBeast)
        {
            Vector2 forward = Vector2.zero;

            if (param != null)
            {
                foreach (var current in param.listTargetRoleID)
                {
                    Beast beast = Singleton <BeastManager> .singleton.GetBeastById(current);

                    if (beast != null)
                    {
                        forward       = masteBeast.RealPos2D - beast.RealPos2D;
                        beast.Forward = forward;
                    }
                }
            }
        }
Esempio n. 12
0
        /// <summary>
        /// 技能释放表现
        /// </summary>
        /// <param name="param"></param>
        public virtual void OnCastAction(CastSkillParam param)
        {
            if (param != null)
            {
                long masterBeastId = param.m_unMasterBeastId;
                XLog.Log.Debug("OnCast:" + this.m_unskillId);
                Beast beast = Singleton <BeastManager> .singleton.GetBeastById(masterBeastId);

                if (beast != null)
                {
                    DataSkillShow data = beast.GetSkillShow(this.m_unskillId);
                    if (data != null)
                    {
                        if (this.IsActive)
                        {
                            if (!data.IsEffectForward)
                            {
                                this.AdjustAttackDirection(param, beast);
                            }
                            this.AdjustBeAttackerDirection(param, beast);
                        }
                        if (data.SkillAction == 1)
                        {
                            if (string.IsNullOrEmpty(data.AttackAction))
                            {
                                beast.PlayAnim(this.GetSkillAnimName(masterBeastId));
                            }
                            else
                            {
                                beast.PlayAnim(data.AttackAction);
                            }
                        }
                    }
                }
            }
        }
Esempio n. 13
0
 /// <summary>
 /// 释放技能
 /// </summary>
 /// <param name="skillId"></param>
 /// <param name="param"></param>
 public void OnCastSkill(int skillId, CastSkillParam param)
 {
     try
     {
         SkillGameData skillData = this.GetSkillById(skillId);
         if (skillData != null && !skillData.IsError)
         {
             foreach (var current in this.m_listSkillData)
             {
                 SkillBase skillBegin = SkillGameManager.GetSkillBase(current.Id);
                 if (skillBegin != null)
                 {
                     skillBegin.OnCastSkillBegin(this.m_unMasterBeastId, skillId);
                 }
             }
             SkillBase skill = SkillGameManager.GetSkillBase(skillData.Id);
             if (skill != null)
             {
                 param.unTargetSkillID = skillId;
                 skill.Cast(param);
             }
             foreach (var current in this.m_listSkillData)
             {
                 SkillBase skillEnd = SkillGameManager.GetSkillBase(current.Id);
                 if (skillEnd != null)
                 {
                     skillEnd.OnCastSkillBegin(this.m_unMasterBeastId, skillId);
                 }
             }
         }
     }
     catch (Exception e)
     {
         this.m_log.Fatal(e);
     }
 }
Esempio n. 14
0
 /// <summary>
 /// 技能释放中
 /// </summary>
 /// <param name="castSkillParam"></param>
 public virtual void Cast(CastSkillParam castSkillParam)
 {
     DataSkill skillData = GameData <DataSkill> .dataMap[castSkillParam.unTargetSkillID];
     Beast     beast     = Singleton <BeastManager> .singleton.GetBeastById(castSkillParam.m_unMasterBeastId);
 }
Esempio n. 15
0
 /// <summary>
 /// 技能释放特效表现
 /// </summary>
 /// <param name="unSkillId"></param>
 /// <param name="castSkillParam"></param>
 public void OnCastSkillEffect(int unSkillId, CastSkillParam castSkillParam)
 {
     this.m_skillManager.OnCastSkillEffect(unSkillId, castSkillParam);
 }
Esempio n. 16
0
 /// <summary>
 /// 神兽释放技能表现
 /// </summary>
 /// <param name="beastId"></param>
 /// <param name="skillId"></param>
 /// <param name="param"></param>
 public void OnCastSkillAction(long beastId, int skillId, CastSkillParam param)
 {
     this.m_skillManager.OnCastSkillAction(skillId, param);
 }