| | |
| | | /// 处理代理收到的伤害,这里需要判断代理的类型分别去处理 |
| | | /// </summary> |
| | | /// <param name="enemy"></param> |
| | | public void DealDamage(Targetable enemy) |
| | | /// <param name="attributeId">子弹的属性id</param> |
| | | public void DealDamage(Targetable enemy, int attributeId = -1) |
| | | { |
| | | switch ((enemy as Agent).AgentType) |
| | | { |
| | |
| | | HandleBubbleBomb(enemy); |
| | | break; |
| | | case SpawnAgentType.WoodPile: |
| | | HandleWoodPile(enemy, attributeId); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 处理木桩墙壁收到的伤害 |
| | | /// </summary> |
| | | /// <param name="enemy"></param> |
| | | private void HandleWoodPile(Targetable enemy, int id) |
| | | { |
| | | float finalDamage = damager.finalDamage; |
| | | |
| | | if (id == 10101) |
| | | finalDamage *= (enemy as WoodPileAgent).FireHurtRate; |
| | | |
| | | int tid = enemy.liveID; |
| | | Vector3 backPos = enemy.position; |
| | | |
| | | // 这里也可以把碰撞点传进来 |
| | | enemy.TakeDamage(finalDamage, enemy.position, damager.alignmentProvider); |
| | | EndlessGameUI.instance.generateBloodText(backPos, finalDamage); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 处理泡泡炸弹收到的伤害 |
| | | /// </summary> |
| | | /// <param name="enemy"></param> |