Ejemplo n.º 1
0
 public override void Wound(Units attacker, float damage)
 {
     if (damage > 0f)
     {
         return;
     }
     if (this.fWarningTimer < 0f && attacker != null && attacker.isHero)
     {
         this.fWarningTimer = 2f;
         bool          flag     = false;
         IList <Units> mapUnits = MapManager.Instance.GetMapUnits(attacker.TeamType, global::TargetTag.Monster);
         if (mapUnits != null)
         {
             for (int i = 0; i < mapUnits.Count; i++)
             {
                 if (mapUnits[i] != null && (mapUnits[i].transform.position - base.transform.position).sqrMagnitude < 100f && TagManager.CheckTag(mapUnits[i], global::TargetTag.CreepsAndMinions) && mapUnits[i].UnitType != UnitType.SummonMonster)
                 {
                     flag = true;
                     break;
                 }
             }
         }
         if (!flag)
         {
             if (base.isLocalUnit)
             {
                 UIMessageBox.ShowTowerWoundWarn(this);
                 Singleton <MiniMapView> .Instance.ShowTowerMapWarn(this);
             }
             if (this.m_effectFangtouta != null && !this.m_effectFangtouta.isDestroyed)
             {
                 this.m_effectFangtouta.Destroy();
             }
             if (base.TeamType == TeamType.LM)
             {
                 this.m_effectFangtouta = ActionManager.PlayEffect("Fx_Fangtouta_LM", this, null, null, true, string.Empty, null);
             }
             else
             {
                 this.m_effectFangtouta = ActionManager.PlayEffect("Fx_Fangtouta_BL", this, null, null, true, string.Empty, null);
             }
         }
     }
     base.Wound(attacker, damage);
     this._DurationWoundMgr.OnWound(attacker, damage);
     if (this._towerController)
     {
         this._towerController.OnDamage(attacker, damage);
     }
 }