void FirstFormatData() { firstGetData = false; // map = GameObject.Find("smallMapContainer").GetComponent <RectTransform>(); // skillManager = GetComponent <SkillBase>(); clickPointPos = GameObject.Find("clickPointPos"); nav = GetComponent <NavMeshAgent>(); deadManager = GetComponent <isDead>(); nav.updateRotation = false; MyCreatPoints = GetComponent <CreatPoints>(); myAudio = GetComponent <AudioSource>(); ani = GetComponent <Animator>(); AniControll = GetComponent <PlayerAni>(); if (photonView.isMine) { if (leftTopPowerBar == null) { leftTopPowerBar = GameObject.Find("mpBar_0020").GetComponent <Image>(); } myMainCamera = Camera.main; } originalData = PlayerData.instance.getPlayerData(meIs); }
void FirstformatData() { firstGetData = false; if (deadManager == null) { deadManager = GetComponent <isDead>(); } Net = GetComponent <PhotonView>(); ani = GetComponent <Animator>(); myCollider = GetComponent <CapsuleCollider>(); nav = GetComponent <NavMeshAgent>(); myCreatPoints = GetComponent <CreatPoints>(); if (photonView.isMine) { // nav.obstacleAvoidanceType = ObstacleAvoidanceType.NoObstacleAvoidance; originalData = MyEnemyData.instance.getMySoldierData(DataName); myCreatPoints.enabled = false; checkCurrentPlay(); nav.updateRotation = false; } else { originalData = MyEnemyData.instance.getEnemySoldierData(DataName); myCreatPoints.ProdecePoints(); nav.enabled = false; this.enabled = false; } }
public void goAtkPos(CreatPoints _tmpPoint, Transform firstPos, isDead _isdaed) { if (deadManager.checkDead) { return; } if (points != null) { points.RemoveThisPoint(correctPos); } points = _tmpPoint; targetDeadScript = _isdaed; currentTarget = _isdaed.gameObject; //前往找到的點 points.AddWillGo_P(firstPos, correctPos); correctPos = firstPos; lastTmpPos = correctPos.position; resetChaseTime(); //在距離內可直接攻擊 if (IFRightNowAtk()) { return; } nowState = states.AtkMove; getTatgetPoint(correctPos.position); }
protected void FirstformatData() { firstGetData = false; Net = GetComponent <PhotonView>(); myCachedTransform = this.transform; MyCreatPoints = GetComponent <CreatPoints>(); if (deadManager == null) { deadManager = GetComponent <isDead>(); } if (photonView.isMine) { MyCreatPoints.enabled = false; originalTurretData = TurretData.instance.getTowerData(DataName); checkCurrentPlay(); } else { MyCreatPoints.ProdecePoints(myCachedTransform); originalTurretData = TurretData.instance.getEnemyTowerData(DataName); this.enabled = false; } }
public void takeDamage(int _id, float _damage) { if (deadManager.checkDead) { return; } #region 反擊判斷 if (photonView.isMine && _id != 0) { if (!firstAtk && !ifFirstAtkTarget()) { isDead _isdead = PhotonView.Find(_id).GetComponent <isDead>(); if (_isdead.myAttributes != GameManager.NowTarget.Tower) { if (points != null && correctPos != null) { points.RemoveThisPoint(correctPos); } firstAtk = true; resetChaseTime(); if (!NowCC) { nowState = states.BeAtk; nav.ResetPath(); if (!ani.GetBool(aniHashValue[1])) { Net.RPC("TP_stopAni", PhotonTargets.All, true); } currentTarget = _isdead.gameObject; points = _isdead.gameObject.GetComponent <CreatPoints>(); targetDeadScript = _isdead; beAttackStop(); } else { currentTarget = _isdead.gameObject; points = _isdead.gameObject.GetComponent <CreatPoints>(); targetDeadScript = _isdead; } } } } #endregion MyHelath(CalculatorDamage(_damage)); }
public void cancelSelectTarget(bool _now) { OtherSoldierNeedCancel(); if (correctPos != null) { points.RemoveThisPoint(correctPos); } correctPos = null; points = null; targetDeadScript = null; currentTarget = null; chaseTime = 0; nowTarget = GameManager.NowTarget.Null; firstAtk = false; if (!_now) { chaseTime = 1.5f; nowState = states.Wait_TargetDie; stopDetect = false; } }
//優先攻擊士兵(可選擇打不打玩家) public myCorrectTarget CalculationDis_Soldier(EnemyControl _soldierScript, bool canAtkPlay) { tmpTargetStruct.myTarget = null; tmpTargetStruct.goPos = null; //核心 ?? //人 if (canAtkPlay && enemy_Player != null) { if (!enemy_Player.GetComponent <isDead>().checkDead)//player不會被移出去,所以要判斷死了沒 { if (Vector3.SqrMagnitude(enemy_Player.transform.position - _soldierScript.transform.position) < _soldierScript.viewRadius * _soldierScript.viewRadius) { tmpPointScript = enemy_Player.MyCreatPoints; if (!tmpPointScript.CheckFull(_soldierScript.enemyData.atk_Range)) { tmpTransform = tmpPointScript.FindClosePoint(_soldierScript.enemyData.atk_Range, _soldierScript.transform, _soldierScript.enemyData.width); if (tmpTransform != null) { tmpTargetStruct.nowPointScript = tmpPointScript; tmpTargetStruct.myTarget = enemy_Player.gameObject; tmpTargetStruct.goPos = tmpTransform; return(tmpTargetStruct); } } } } } //士兵 if (soldierAmount != 0) { for (int i = 0; i < soldierAmount; i++) { if (Vector3.SqrMagnitude(enemySoldierObjs[i].transform.position - _soldierScript.transform.position) < _soldierScript.viewRadius * _soldierScript.viewRadius) { tmpPointScript = enemySoldierObjs[i].myCreatPoints; if (!tmpPointScript.CheckFull(_soldierScript.enemyData.atk_Range)) { tmpTransform = tmpPointScript.FindClosePoint(_soldierScript.enemyData.atk_Range, _soldierScript.transform, _soldierScript.enemyData.width); if (tmpTransform != null) { if (tmpTargetStruct.myTarget != null) { if (Vector3.SqrMagnitude(enemySoldierObjs[i].transform.position - _soldierScript.transform.position) < Vector3.SqrMagnitude(tmpTargetStruct.myTarget.transform.position - _soldierScript.transform.position)) { tmpTargetStruct.nowPointScript = tmpPointScript; tmpTargetStruct.myTarget = enemySoldierObjs[i].gameObject; tmpTargetStruct.goPos = tmpTransform; } } else { tmpTargetStruct.nowPointScript = tmpPointScript; tmpTargetStruct.myTarget = enemySoldierObjs[i].gameObject; tmpTargetStruct.goPos = tmpTransform; } } } } } if (tmpTargetStruct.myTarget != null) { return(tmpTargetStruct); } } //塔 if (towerAmount != 0) { for (int i = 0; i < towerAmount; i++) { if (Vector3.SqrMagnitude(enemyTowerObjs[i].transform.position - _soldierScript.transform.position) < _soldierScript.viewRadius * _soldierScript.viewRadius) { tmpPointScript = enemyTowerObjs[i].MyCreatPoints; if (!tmpPointScript.CheckFull(_soldierScript.enemyData.atk_Range)) { tmpTransform = tmpPointScript.FindClosePoint(_soldierScript.enemyData.atk_Range, _soldierScript.transform, _soldierScript.enemyData.width); if (tmpTransform != null) { if (tmpTargetStruct.myTarget != null) { if (Vector3.SqrMagnitude(enemyTowerObjs[i].transform.position - _soldierScript.transform.position) < Vector3.SqrMagnitude(tmpTargetStruct.myTarget.transform.position - _soldierScript.transform.position)) { tmpTargetStruct.nowPointScript = tmpPointScript; tmpTargetStruct.myTarget = enemyTowerObjs[i].gameObject; tmpTargetStruct.goPos = tmpTransform; } } else { tmpTargetStruct.nowPointScript = tmpPointScript; tmpTargetStruct.myTarget = enemyTowerObjs[i].gameObject; tmpTargetStruct.goPos = tmpTransform; } } } } } if (tmpTargetStruct.myTarget != null) { return(tmpTargetStruct); } } return(tmpTargetStruct); }
//優先攻擊塔(除了反擊不會打玩家) public myCorrectTarget CalculationDis_Tower(EnemyControl _soldierScript) { tmpTargetStruct.myTarget = null; tmpTargetStruct.goPos = null; //核心 ?? //塔 if (towerAmount != 0) { for (int i = 0; i < towerAmount; i++) { if (Vector3.SqrMagnitude(enemyTowerObjs[i].transform.position - _soldierScript.transform.position) < _soldierScript.viewRadius * _soldierScript.viewRadius) { tmpPointScript = enemyTowerObjs[i].MyCreatPoints; if (!tmpPointScript.CheckFull(_soldierScript.enemyData.atk_Range)) { tmpTransform = tmpPointScript.FindClosePoint(_soldierScript.enemyData.atk_Range, _soldierScript.transform, _soldierScript.enemyData.width); if (tmpTransform != null) { if (tmpTargetStruct.myTarget != null) { if (Vector3.SqrMagnitude(enemyTowerObjs[i].transform.position - _soldierScript.transform.position) < Vector3.SqrMagnitude(tmpTargetStruct.myTarget.transform.position - _soldierScript.transform.position)) { tmpTargetStruct.nowPointScript = tmpPointScript; tmpTargetStruct.myTarget = enemyTowerObjs[i].gameObject; tmpTargetStruct.goPos = tmpTransform; } } else { tmpTargetStruct.nowPointScript = tmpPointScript; tmpTargetStruct.myTarget = enemyTowerObjs[i].gameObject; tmpTargetStruct.goPos = tmpTransform; } } } } } if (tmpTargetStruct.myTarget != null) { return(tmpTargetStruct); } } //士兵 if (soldierAmount != 0) { for (int i = 0; i < soldierAmount; i++) { if (Vector3.SqrMagnitude(enemySoldierObjs[i].transform.position - _soldierScript.transform.position) < _soldierScript.viewRadius * _soldierScript.viewRadius) { tmpPointScript = enemySoldierObjs[i].myCreatPoints; if (!tmpPointScript.CheckFull(_soldierScript.enemyData.atk_Range)) { tmpTransform = tmpPointScript.FindClosePoint(_soldierScript.enemyData.atk_Range, _soldierScript.transform, _soldierScript.enemyData.width); if (tmpTransform != null) { if (tmpTargetStruct.myTarget != null) { if (Vector3.SqrMagnitude(enemySoldierObjs[i].transform.position - _soldierScript.transform.position) < Vector3.SqrMagnitude(tmpTargetStruct.myTarget.transform.position - _soldierScript.transform.position)) { tmpTargetStruct.nowPointScript = tmpPointScript; tmpTargetStruct.myTarget = enemySoldierObjs[i].gameObject; tmpTargetStruct.goPos = tmpTransform; } } else { tmpTargetStruct.nowPointScript = tmpPointScript; tmpTargetStruct.myTarget = enemySoldierObjs[i].gameObject; tmpTargetStruct.goPos = tmpTransform; } } } } } if (tmpTargetStruct.myTarget != null) { return(tmpTargetStruct); } } return(tmpTargetStruct); }