| | |
| | | towerTargetter.ResetTargetter(); |
| | | towerTargetter.alignment = affectorAlignment; |
| | | towerTargetter.acquiredTarget += OnAcquiredTarget; |
| | | towerTargetter.lostTarget += OnLostTarget; |
| | | GetAudioEnum(); |
| | | // towerTargetter.lostTarget += OnLostTarget; |
| | | GetAudioEnum(); |
| | | |
| | | myTower = transform.parent.GetComponent<TowerLevel>(); |
| | | |
| | | } |
| | | private AudioEnum audioEnum;//当前音乐的种类 |
| | | |
| | |
| | | void OnDestroy() |
| | | { |
| | | towerTargetter.acquiredTarget -= OnAcquiredTarget; |
| | | towerTargetter.lostTarget -= OnLostTarget; |
| | | } |
| | | |
| | | void OnLostTarget() |
| | | { |
| | | m_TrackingEnemy = null; |
| | | // towerTargetter.lostTarget -= OnLostTarget; |
| | | } |
| | | |
| | | void OnAcquiredTarget(Targetable acquiredTarget) |
| | | { |
| | | m_TrackingEnemy = acquiredTarget; |
| | | // m_TrackingEnemy = acquiredTarget; |
| | | } |
| | | |
| | | public Damager damagerProjectile |
| | |
| | | m_Launcher = GetComponent<ILauncher>(); |
| | | } |
| | | |
| | | TowerLevel myTower; |
| | | |
| | | protected void updateTowerSkillData() |
| | | { |
| | |
| | | if (proint == 10) |
| | | { |
| | | fInEnergy = 5.0f; |
| | | |
| | | myTower.SetFireMatSpeed(true);//设置了火宝石快速攻击 |
| | | // 设置多倍攻击速度 |
| | | fBackupTimer = m_FireTimer; |
| | | m_FireTimer = m_FireTimer / 3.0f; |
| | |
| | | fInEnergy -= Time.deltaTime; |
| | | if (fInEnergy <= 0) |
| | | { |
| | | myTower.SetFireMatSpeed(false);//恢复了火宝石攻击速度 |
| | | |
| | | EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.FireTowerChargeEnd); |
| | | fInEnergy = 0.0f; |
| | | this.energyCalTime = 0.0f; |
| | |
| | | /// </summary> |
| | | protected virtual void Update() |
| | | { |
| | | if (m_Launcher == null) return; |
| | | |
| | | // 处理当前Affector所在Tower对应的技能 |
| | | updateTowerSkillData(); |
| | | |
| | |
| | | { |
| | | OnFireTimer(); |
| | | m_FireTimer = 1 / fireRate; |
| | | |
| | | // 多倍攻速: |
| | | if (fInEnergy > 0.0f) |
| | | m_FireTimer = m_FireTimer / 3.0f; |
| | | m_FireTimer = m_FireTimer / 5.0f; |
| | | } |
| | | } |
| | | |
| | |
| | | // |
| | | if (bnum == 0) |
| | | { |
| | | damagerProjectile.damageMulti = 5.0f; |
| | | damagerProjectile.damageMulti = 10.0f; |
| | | fillBulletTime = 2.0f; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (this.towerPtr) |
| | | towerPtr.setTowerState(true); |
| | | } |
| | | |
| | | if (isMultiAttack) |
| | |
| | | if (Targetter.bSearchTarget) |
| | | { |
| | | m_Launcher.Launch(m_TrackingEnemy, damagerProjectile.gameObject, projectilePoints); |
| | | AudioSourceManager.Ins.Play(audioEnum); |
| | | if (AudioSourceManager.Ins) |
| | | AudioSourceManager.Ins.Play(audioEnum); |
| | | } |
| | | } |
| | | if (randomAudioSource != null) |