Esempio n. 1
0
    /// <summary>
    /// 创建战斗角色模型
    /// </summary>
    private void CreateBattleModel()
    {
        _heroObject = new List <LYXHeroObject>();

        for (int i = 0, len = _heroEntityList.Count; i < len; i++)
        {
            LYXHeroEntity own       = _heroEntityList[i];
            LYXHeroObject ownObject = LCSCompHelper.LoadResource <LYXHeroObject>("RoleModel/" + own.HeroModel);
            if (ownObject == null)
            {
                continue;
            }
            ownObject.mHeroEnity  = own;
            ownObject.mMoveEndPos = mEndMovePos;
            string parPath = own.FriendAndFoe == 1 ? "own" : "enemy";
            InitHeroObjectPosition(ownObject.transform, parPath + "/" + own.HeroPos);
            if (own.FriendAndFoe == 1)
            {
                ownObject.transform.localScale = new Vector3(-1, 1, 1);
            }
            ownObject.mBatManage = this;
            _heroObject.Add(ownObject);
        }

        _isIntoBattle = true;
    }
Esempio n. 2
0
 /// <summary>
 /// 移出死亡的侠客
 /// </summary>
 /// <param name="hobj">死亡的侠客</param>
 public void RemoveDieHero(LYXHeroObject hobj)
 {
     if (_heroObject == null || _heroObject.Count <= 0)
     {
         return;
     }
     _heroObject.Remove(hobj);
 }
Esempio n. 3
0
 /// <summary>
 /// 清理特效
 /// </summary>
 public void ClearEffect()
 {
     mHeroObj.RemoveEffect(this);
     mHeroObj     = null;
     mTargetObj   = null;
     mOffset      = Vector3.zero;
     mTweenPos    = null;
     mSkillEntity = null;
     mDestroy     = null;
     GameObject.DestroyObject(gameObject);
 }
Esempio n. 4
0
 /// <summary>
 /// 播放怒气技
 /// </summary>
 /// <param name="heroId">侠客id</param>
 public void OnPlayAngerSkill(string heroId)
 {
     for (int i = 0, len = _heroObject.Count; i < len; i++)
     {
         LYXHeroObject item = _heroObject[i];
         if (item.mHeroEnity.HeroId == heroId)
         {
             item.OnPlayAngerSkill();
             return;
         }
     }
 }
Esempio n. 5
0
 /// <summary>
 /// 处理技能函数参数
 /// </summary>
 /// <param name="args"></param>
 public void VerifySkillFunArgs(params object[] args)
 {
     if (args.Length > 1)
     {
         mHeroObj = (LYXHeroObject)args[1];
     }
     if (args.Length > 2)
     {
         mTargetObj = (LYXHeroObject)args[2];
     }
     if (args.Length > 3)
     {
         mOffset = (Vector3)args[3];
     }
 }
Esempio n. 6
0
    /// <summary>
    /// 寻找目标
    /// </summary>
    /// <returns></returns>
    public bool MoveAction()
    {
        mTargetHero = mBatManage.GetNearHero(this);
        if (mTargetHero == null)
        {
            return(true);
        }
        transform.LookAt(mTargetHero.transform);
        if (Vector3.Distance(mTargetHero.transform.position, transform.position) <= mHeroEnity.AttackDistance)
        {
            return(true);
        }
        // 向目标对象移动
        Vector3 dirVect = (mTargetHero.transform.position - transform.position).normalized;

        transform.position = transform.position + dirVect * mHeroEnity.HeroMoveSpeed * Time.deltaTime;
        return(false);
    }
Esempio n. 7
0
    /// <summary>
    /// 得到最近的侠客
    /// </summary>
    /// <returns></returns>
    public LYXHeroObject GetNearHero(LYXHeroObject sourceHero)
    {
        List <LYXHeroObject> objs = _heroObject.FindAll(x => x.mHeroEnity.FriendAndFoe != sourceHero.mHeroEnity.FriendAndFoe && !x.mHeroEnity.IsHeroDie);

        if (objs.Count <= 0)
        {
            return(null);
        }
        LYXHeroObject retObj = objs[0];
        float         dis    = Vector3.Distance(transform.position, retObj.transform.position);

        for (int i = 0, len = objs.Count; i < len; i++)
        {
            float temp = Vector3.Distance(transform.position, objs[i].transform.position);
            if (dis > temp)
            {
                retObj = objs[i];
                dis    = temp;
            }
        }
        return(retObj);
    }
Esempio n. 8
0
 /// <summary>
 /// 清理特效
 /// </summary>
 public void ClearEffect()
 {
     mHeroObj.RemoveEffect(this);
     mHeroObj = null;
     mTargetObj = null;
     mOffset = Vector3.zero;
     mTweenPos = null;
     mSkillEntity = null;
     mDestroy = null;
     GameObject.DestroyObject(gameObject);
 }
Esempio n. 9
0
 /// <summary>
 /// 处理技能函数参数
 /// </summary>
 /// <param name="args"></param>
 public void VerifySkillFunArgs(params object[] args)
 {
     if (args.Length > 1)
         mHeroObj = (LYXHeroObject)args[1];
     if (args.Length > 2)
         mTargetObj = (LYXHeroObject)args[2];
     if (args.Length > 3)
         mOffset = (Vector3)args[3];
 }
Esempio n. 10
0
 /// <summary>
 /// 寻找目标
 /// </summary>
 /// <returns></returns>
 public bool MoveAction()
 {
     mTargetHero = mBatManage.GetNearHero(this);
     if (mTargetHero == null) return true;
     transform.LookAt(mTargetHero.transform);
     if (Vector3.Distance(mTargetHero.transform.position, transform.position) <= mHeroEnity.AttackDistance) return true;
     // 向目标对象移动
     Vector3 dirVect = (mTargetHero.transform.position - transform.position).normalized;
     transform.position = transform.position + dirVect * mHeroEnity.HeroMoveSpeed * Time.deltaTime;
     return false;
 }
Esempio n. 11
0
 /// <summary>
 /// 移出死亡的侠客
 /// </summary>
 /// <param name="hobj">死亡的侠客</param>
 public void RemoveDieHero(LYXHeroObject hobj)
 {
     if (_heroObject == null || _heroObject.Count <= 0) return;
     _heroObject.Remove(hobj);
 }
Esempio n. 12
0
 /// <summary>
 /// 得到最近的侠客
 /// </summary>
 /// <returns></returns>
 public LYXHeroObject GetNearHero(LYXHeroObject sourceHero)
 {
     List<LYXHeroObject> objs = _heroObject.FindAll(x => x.mHeroEnity.FriendAndFoe != sourceHero.mHeroEnity.FriendAndFoe && !x.mHeroEnity.IsHeroDie);
     if (objs.Count <= 0) return null;
     LYXHeroObject retObj = objs[0];
     float dis = Vector3.Distance(transform.position, retObj.transform.position);
     for (int i = 0, len = objs.Count; i < len; i++)
     {
         float temp = Vector3.Distance(transform.position, objs[i].transform.position);
         if (dis > temp)
         {
             retObj = objs[i];
             dis = temp;
         }
     }
     return retObj;
 }