Cut corners on excessive damage (#6190)

This commit is contained in:
Leon Friedrich
2022-01-18 20:48:17 +13:00
committed by GitHub
parent 0375d02b3f
commit 36a96b7e14
9 changed files with 78 additions and 2 deletions

View File

@@ -41,6 +41,10 @@ namespace Content.Server.Destructible
threshold.Execute(uid, this, EntityManager); threshold.Execute(uid, this, EntityManager);
} }
// if destruction behavior (or some other deletion effect) occurred, don't run other triggers.
if (EntityManager.IsQueuedForDeletion(uid) || Deleted(uid))
return;
} }
} }
} }

View File

@@ -21,6 +21,12 @@
Blunt: 5 Blunt: 5
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors: #excess damage (nuke?). avoid computational cost of spawning entities.
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 5 damage: 5

View File

@@ -43,6 +43,12 @@
damageModifierSet: Glass damageModifierSet: Glass
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger:
!type:DamageTrigger
damage: 400
behaviors: #excess damage (nuke?). avoid computational cost of spawning entities.
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 200 damage: 200
@@ -122,6 +128,12 @@
visible: false visible: false
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger:
!type:DamageTrigger
damage: 600
behaviors: #excess damage (nuke?). avoid computational cost of spawning entities.
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 400 damage: 400

View File

@@ -24,7 +24,13 @@
thresholds: thresholds:
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 100 damage: 100 #excess damage (nuke?). avoid computational cost of spawning entities.
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- trigger:
!type:DamageTrigger
damage: 50
behaviors: behaviors:
- !type:DoActsBehavior - !type:DoActsBehavior
acts: ["Breakage"] acts: ["Breakage"]

View File

@@ -26,7 +26,7 @@
thresholds: thresholds:
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 100 damage: 50
behaviors: behaviors:
- !type:DoActsBehavior - !type:DoActsBehavior
acts: ["Destruction"] acts: ["Destruction"]
@@ -68,6 +68,12 @@
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 100 damage: 100
behaviors: #excess damage (nuke?). avoid computational cost of spawning entities.
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 50
behaviors: behaviors:
- !type:SpawnEntitiesBehavior - !type:SpawnEntitiesBehavior
spawn: spawn:
@@ -109,6 +115,12 @@
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 100 damage: 100
behaviors: #excess damage (nuke?). avoid computational cost of spawning entities.
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 50
behaviors: behaviors:
- !type:SpawnEntitiesBehavior - !type:SpawnEntitiesBehavior
spawn: spawn:
@@ -153,6 +165,12 @@
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 100 damage: 100
behaviors: #excess damage (nuke?). avoid computational cost of spawning entities.
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 50
behaviors: behaviors:
- !type:SpawnEntitiesBehavior - !type:SpawnEntitiesBehavior
spawn: spawn:

View File

@@ -55,6 +55,12 @@
- SmallImpassable - SmallImpassable
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger:
!type:DamageTrigger
damage: 50 #excess damage (nuke?). avoid computational cost of spawning entities.
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 20 damage: 20

View File

@@ -346,6 +346,12 @@
node: reinforcedWall node: reinforcedWall
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger:
!type:DamageTrigger
damage: 1200 #excess damage (nuke?). avoid computational cost of spawning entities.
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 600 damage: 600
@@ -471,6 +477,12 @@
sprite: Structures/Walls/solid.rsi sprite: Structures/Walls/solid.rsi
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger:
!type:DamageTrigger
damage: 600 # #excess damage (nuke?). avoid computational cost of spawning entities.
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 300 damage: 300

View File

@@ -13,6 +13,12 @@
doAfterDelay: 2 doAfterDelay: 2
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger:
!type:DamageTrigger
damage: 300 #excess damage (nuke?). Avoid computational cost of spawning entities.
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 150 damage: 150

View File

@@ -38,6 +38,12 @@
- type: Repairable - type: Repairable
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger:
!type:DamageTrigger
damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities.
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 50 damage: 50