Add composite destructible thresholds (#3102)
* Add composite destructible thresholds * Reorder yaml properties * Update YAML * Fix YAML * Re-fix YAML * Add missing nullable enable * Go back window component is explosive * rider
This commit is contained in:
@@ -12,11 +12,12 @@ using static Content.IntegrationTests.Tests.Destructible.DestructibleTestPrototy
|
|||||||
namespace Content.IntegrationTests.Tests.Destructible
|
namespace Content.IntegrationTests.Tests.Destructible
|
||||||
{
|
{
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
[TestOf(typeof(TotalDamageClassesTrigger))]
|
[TestOf(typeof(DamageClassTrigger))]
|
||||||
|
[TestOf(typeof(AndTrigger))]
|
||||||
public class DestructibleDamageClassTest : ContentIntegrationTest
|
public class DestructibleDamageClassTest : ContentIntegrationTest
|
||||||
{
|
{
|
||||||
[Test]
|
[Test]
|
||||||
public async Task Test()
|
public async Task AndTest()
|
||||||
{
|
{
|
||||||
var server = StartServerDummyTicker(new ServerContentIntegrationOption
|
var server = StartServerDummyTicker(new ServerContentIntegrationOption
|
||||||
{
|
{
|
||||||
@@ -82,7 +83,12 @@ namespace Content.IntegrationTests.Tests.Destructible
|
|||||||
Assert.That(threshold.Behaviors, Is.Empty);
|
Assert.That(threshold.Behaviors, Is.Empty);
|
||||||
Assert.NotNull(threshold.Trigger);
|
Assert.NotNull(threshold.Trigger);
|
||||||
Assert.That(threshold.Triggered, Is.True);
|
Assert.That(threshold.Triggered, Is.True);
|
||||||
Assert.IsInstanceOf<TotalDamageClassesTrigger>(threshold.Trigger);
|
Assert.IsInstanceOf<AndTrigger>(threshold.Trigger);
|
||||||
|
|
||||||
|
var trigger = (AndTrigger) threshold.Trigger;
|
||||||
|
|
||||||
|
Assert.IsInstanceOf<DamageClassTrigger>(trigger.Triggers[0]);
|
||||||
|
Assert.IsInstanceOf<DamageClassTrigger>(trigger.Triggers[1]);
|
||||||
|
|
||||||
sThresholdListenerComponent.ThresholdsReached.Clear();
|
sThresholdListenerComponent.ThresholdsReached.Clear();
|
||||||
|
|
||||||
@@ -139,7 +145,12 @@ namespace Content.IntegrationTests.Tests.Destructible
|
|||||||
Assert.That(threshold.Behaviors, Is.Empty);
|
Assert.That(threshold.Behaviors, Is.Empty);
|
||||||
Assert.NotNull(threshold.Trigger);
|
Assert.NotNull(threshold.Trigger);
|
||||||
Assert.That(threshold.Triggered, Is.True);
|
Assert.That(threshold.Triggered, Is.True);
|
||||||
Assert.IsInstanceOf<TotalDamageClassesTrigger>(threshold.Trigger);
|
Assert.IsInstanceOf<AndTrigger>(threshold.Trigger);
|
||||||
|
|
||||||
|
trigger = (AndTrigger) threshold.Trigger;
|
||||||
|
|
||||||
|
Assert.IsInstanceOf<DamageClassTrigger>(trigger.Triggers[0]);
|
||||||
|
Assert.IsInstanceOf<DamageClassTrigger>(trigger.Triggers[1]);
|
||||||
|
|
||||||
sThresholdListenerComponent.ThresholdsReached.Clear();
|
sThresholdListenerComponent.ThresholdsReached.Clear();
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ using static Content.IntegrationTests.Tests.Destructible.DestructibleTestPrototy
|
|||||||
namespace Content.IntegrationTests.Tests.Destructible
|
namespace Content.IntegrationTests.Tests.Destructible
|
||||||
{
|
{
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
[TestOf(typeof(TotalDamageTypesTrigger))]
|
[TestOf(typeof(DamageTypeTrigger))]
|
||||||
|
[TestOf(typeof(AndTrigger))]
|
||||||
public class DestructibleDamageTypeTest : ContentIntegrationTest
|
public class DestructibleDamageTypeTest : ContentIntegrationTest
|
||||||
{
|
{
|
||||||
[Test]
|
[Test]
|
||||||
@@ -82,7 +83,12 @@ namespace Content.IntegrationTests.Tests.Destructible
|
|||||||
Assert.That(threshold.Behaviors, Is.Empty);
|
Assert.That(threshold.Behaviors, Is.Empty);
|
||||||
Assert.NotNull(threshold.Trigger);
|
Assert.NotNull(threshold.Trigger);
|
||||||
Assert.That(threshold.Triggered, Is.True);
|
Assert.That(threshold.Triggered, Is.True);
|
||||||
Assert.IsInstanceOf<TotalDamageTypesTrigger>(threshold.Trigger);
|
Assert.IsInstanceOf<AndTrigger>(threshold.Trigger);
|
||||||
|
|
||||||
|
var trigger = (AndTrigger) threshold.Trigger;
|
||||||
|
|
||||||
|
Assert.IsInstanceOf<DamageTypeTrigger>(trigger.Triggers[0]);
|
||||||
|
Assert.IsInstanceOf<DamageTypeTrigger>(trigger.Triggers[1]);
|
||||||
|
|
||||||
sThresholdListenerComponent.ThresholdsReached.Clear();
|
sThresholdListenerComponent.ThresholdsReached.Clear();
|
||||||
|
|
||||||
@@ -139,7 +145,12 @@ namespace Content.IntegrationTests.Tests.Destructible
|
|||||||
Assert.That(threshold.Behaviors, Is.Empty);
|
Assert.That(threshold.Behaviors, Is.Empty);
|
||||||
Assert.NotNull(threshold.Trigger);
|
Assert.NotNull(threshold.Trigger);
|
||||||
Assert.That(threshold.Triggered, Is.True);
|
Assert.That(threshold.Triggered, Is.True);
|
||||||
Assert.IsInstanceOf<TotalDamageTypesTrigger>(threshold.Trigger);
|
Assert.IsInstanceOf<AndTrigger>(threshold.Trigger);
|
||||||
|
|
||||||
|
trigger = (AndTrigger) threshold.Trigger;
|
||||||
|
|
||||||
|
Assert.IsInstanceOf<DamageTypeTrigger>(trigger.Triggers[0]);
|
||||||
|
Assert.IsInstanceOf<DamageTypeTrigger>(trigger.Triggers[1]);
|
||||||
|
|
||||||
sThresholdListenerComponent.ThresholdsReached.Clear();
|
sThresholdListenerComponent.ThresholdsReached.Clear();
|
||||||
|
|
||||||
|
|||||||
@@ -21,11 +21,11 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 20
|
damage: 20
|
||||||
triggersOnce: false
|
triggersOnce: false
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
triggersOnce: false
|
triggersOnce: false
|
||||||
behaviors:
|
behaviors:
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -70,13 +70,16 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTypesTrigger
|
!type:AndTrigger
|
||||||
damage:
|
triggers:
|
||||||
Blunt: 10
|
- !type:DamageTypeTrigger
|
||||||
Slash: 10
|
type: Blunt
|
||||||
|
damage: 10
|
||||||
|
- !type:DamageTypeTrigger
|
||||||
|
type: Slash
|
||||||
|
damage: 10
|
||||||
- type: TestThresholdListener
|
- type: TestThresholdListener
|
||||||
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: {DestructibleDamageClassEntityId}
|
id: {DestructibleDamageClassEntityId}
|
||||||
name: {DestructibleDamageClassEntityId}
|
name: {DestructibleDamageClassEntityId}
|
||||||
@@ -85,10 +88,14 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageClassesTrigger
|
!type:AndTrigger
|
||||||
damage:
|
triggers:
|
||||||
Brute: 10
|
- !type:DamageClassTrigger
|
||||||
Burn: 10
|
class: Brute
|
||||||
|
damage: 10
|
||||||
|
- !type:DamageClassTrigger
|
||||||
|
class: Burn
|
||||||
|
damage: 10
|
||||||
- type: TestThresholdListener";
|
- type: TestThresholdListener";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ namespace Content.IntegrationTests.Tests.Destructible
|
|||||||
|
|
||||||
// Verify the first one, should be the lowest one (20)
|
// Verify the first one, should be the lowest one (20)
|
||||||
msg = sThresholdListenerComponent.ThresholdsReached[0];
|
msg = sThresholdListenerComponent.ThresholdsReached[0];
|
||||||
var trigger = (TotalDamageTrigger) msg.Threshold.Trigger;
|
var trigger = (DamageTrigger) msg.Threshold.Trigger;
|
||||||
Assert.NotNull(trigger);
|
Assert.NotNull(trigger);
|
||||||
Assert.That(trigger.Damage, Is.EqualTo(20));
|
Assert.That(trigger.Damage, Is.EqualTo(20));
|
||||||
|
|
||||||
@@ -202,7 +202,7 @@ namespace Content.IntegrationTests.Tests.Destructible
|
|||||||
|
|
||||||
// Verify the second one, should be the highest one (50)
|
// Verify the second one, should be the highest one (50)
|
||||||
msg = sThresholdListenerComponent.ThresholdsReached[1];
|
msg = sThresholdListenerComponent.ThresholdsReached[1];
|
||||||
trigger = (TotalDamageTrigger) msg.Threshold.Trigger;
|
trigger = (DamageTrigger) msg.Threshold.Trigger;
|
||||||
Assert.NotNull(trigger);
|
Assert.NotNull(trigger);
|
||||||
Assert.That(trigger.Damage, Is.EqualTo(50));
|
Assert.That(trigger.Damage, Is.EqualTo(50));
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
#nullable enable
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Content.Server.GameObjects.EntitySystems;
|
||||||
|
using Content.Shared.GameObjects.Components.Damage;
|
||||||
|
using Robust.Shared.Interfaces.Serialization;
|
||||||
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
|
namespace Content.Server.GameObjects.Components.Destructible.Thresholds.Triggers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A trigger that will activate when all of its triggers have activated.
|
||||||
|
/// </summary>
|
||||||
|
[Serializable]
|
||||||
|
public class AndTrigger : IThresholdTrigger
|
||||||
|
{
|
||||||
|
public List<IThresholdTrigger> Triggers { get; set; } = new();
|
||||||
|
|
||||||
|
void IExposeData.ExposeData(ObjectSerializer serializer)
|
||||||
|
{
|
||||||
|
serializer.DataField(this, x => x.Triggers, "triggers", new List<IThresholdTrigger>());
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Reached(IDamageableComponent damageable, DestructibleSystem system)
|
||||||
|
{
|
||||||
|
foreach (var trigger in Triggers)
|
||||||
|
{
|
||||||
|
if (!trigger.Reached(damageable, system))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
#nullable enable
|
#nullable enable
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using Content.Server.GameObjects.EntitySystems;
|
using Content.Server.GameObjects.EntitySystems;
|
||||||
using Content.Shared.Damage;
|
using Content.Shared.Damage;
|
||||||
using Content.Shared.GameObjects.Components.Damage;
|
using Content.Shared.GameObjects.Components.Damage;
|
||||||
@@ -10,39 +9,37 @@ using Robust.Shared.Serialization;
|
|||||||
namespace Content.Server.GameObjects.Components.Destructible.Thresholds.Triggers
|
namespace Content.Server.GameObjects.Components.Destructible.Thresholds.Triggers
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A trigger that will activate when all of the damage types received
|
/// A trigger that will activate when the amount of damage received
|
||||||
/// are above the specified threshold.
|
/// of the specified class is above the specified threshold.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public class TotalDamageTypesTrigger : IThresholdTrigger
|
public class DamageClassTrigger : IThresholdTrigger
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The amount of damage at which this threshold will trigger.
|
/// The class to check the damage of.
|
||||||
/// The damage requirements of all <see cref="DamageType"/> must be met.
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private Dictionary<DamageType, int> Damage { get; set; } = new();
|
public DamageClass? Class { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The amount of damage at which this threshold will trigger.
|
||||||
|
/// </summary>
|
||||||
|
public int Damage { get; set; }
|
||||||
|
|
||||||
void IExposeData.ExposeData(ObjectSerializer serializer)
|
void IExposeData.ExposeData(ObjectSerializer serializer)
|
||||||
{
|
{
|
||||||
serializer.DataField(this, x => x.Damage, "damage", new Dictionary<DamageType, int>());
|
serializer.DataField(this, x => x.Class, "class", null);
|
||||||
|
serializer.DataField(this, x => x.Damage, "damage", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Reached(IDamageableComponent damageable, DestructibleSystem system)
|
public bool Reached(IDamageableComponent damageable, DestructibleSystem system)
|
||||||
{
|
{
|
||||||
foreach (var (type, damageRequired) in Damage)
|
if (Class == null)
|
||||||
{
|
{
|
||||||
if (!damageable.TryGetDamage(type, out var damageReceived))
|
return false;
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (damageReceived < damageRequired)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return damageable.TryGetDamage(Class.Value, out var damageReceived) &&
|
||||||
|
damageReceived >= Damage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8,16 +8,16 @@ using Robust.Shared.Serialization;
|
|||||||
namespace Content.Server.GameObjects.Components.Destructible.Thresholds.Triggers
|
namespace Content.Server.GameObjects.Components.Destructible.Thresholds.Triggers
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A trigger that will activate when the amount of total damage received
|
/// A trigger that will activate when the amount of damage received
|
||||||
/// is above the specified threshold.
|
/// is above the specified threshold.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public class TotalDamageTrigger : IThresholdTrigger
|
public class DamageTrigger : IThresholdTrigger
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The amount of total damage at which this threshold will trigger.
|
/// The amount of damage at which this threshold will trigger.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int Damage { get; private set; }
|
public int Damage { get; set; }
|
||||||
|
|
||||||
void IExposeData.ExposeData(ObjectSerializer serializer)
|
void IExposeData.ExposeData(ObjectSerializer serializer)
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
#nullable enable
|
||||||
|
using System;
|
||||||
|
using Content.Server.GameObjects.EntitySystems;
|
||||||
|
using Content.Shared.Damage;
|
||||||
|
using Content.Shared.GameObjects.Components.Damage;
|
||||||
|
using Robust.Shared.Interfaces.Serialization;
|
||||||
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
|
namespace Content.Server.GameObjects.Components.Destructible.Thresholds.Triggers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A trigger that will activate when the amount of damage received
|
||||||
|
/// of the specified type is above the specified threshold.
|
||||||
|
/// </summary>
|
||||||
|
[Serializable]
|
||||||
|
public class DamageTypeTrigger : IThresholdTrigger
|
||||||
|
{
|
||||||
|
public DamageType? Type { get; set; }
|
||||||
|
|
||||||
|
public int Damage { get; set; }
|
||||||
|
|
||||||
|
void IExposeData.ExposeData(ObjectSerializer serializer)
|
||||||
|
{
|
||||||
|
serializer.DataField(this, x => x.Type, "type", null);
|
||||||
|
serializer.DataField(this, x => x.Damage, "damage", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Reached(IDamageableComponent damageable, DestructibleSystem system)
|
||||||
|
{
|
||||||
|
if (Type == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return damageable.TryGetDamage(Type.Value, out var damageReceived) &&
|
||||||
|
damageReceived >= Damage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
#nullable enable
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Content.Server.GameObjects.EntitySystems;
|
||||||
|
using Content.Shared.GameObjects.Components.Damage;
|
||||||
|
using Robust.Shared.Interfaces.Serialization;
|
||||||
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
|
namespace Content.Server.GameObjects.Components.Destructible.Thresholds.Triggers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A trigger that will activate when any of its triggers have activated.
|
||||||
|
/// </summary>
|
||||||
|
[Serializable]
|
||||||
|
public class OrTrigger : IThresholdTrigger
|
||||||
|
{
|
||||||
|
public List<IThresholdTrigger> Triggers { get; } = new();
|
||||||
|
|
||||||
|
void IExposeData.ExposeData(ObjectSerializer serializer)
|
||||||
|
{
|
||||||
|
serializer.DataField(this, x => x.Triggers, "triggers", new List<IThresholdTrigger>());
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Reached(IDamageableComponent damageable, DestructibleSystem system)
|
||||||
|
{
|
||||||
|
foreach (var trigger in Triggers)
|
||||||
|
{
|
||||||
|
if (trigger.Reached(damageable, system))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
#nullable enable
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using Content.Server.GameObjects.EntitySystems;
|
|
||||||
using Content.Shared.Damage;
|
|
||||||
using Content.Shared.GameObjects.Components.Damage;
|
|
||||||
using Robust.Shared.Interfaces.Serialization;
|
|
||||||
using Robust.Shared.Serialization;
|
|
||||||
|
|
||||||
namespace Content.Server.GameObjects.Components.Destructible.Thresholds.Triggers
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// A trigger that will activate when all of the damage classes received
|
|
||||||
/// are above the specified threshold.
|
|
||||||
/// </summary>
|
|
||||||
[Serializable]
|
|
||||||
public class TotalDamageClassesTrigger : IThresholdTrigger
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// The amount of damage at which this threshold will trigger.
|
|
||||||
/// The damage requirements of all <see cref="DamageClass"/> must be met.
|
|
||||||
/// </summary>
|
|
||||||
private Dictionary<DamageClass, int> Damage { get; set; } = new();
|
|
||||||
|
|
||||||
void IExposeData.ExposeData(ObjectSerializer serializer)
|
|
||||||
{
|
|
||||||
serializer.DataField(this, x => x.Damage, "damage", new Dictionary<DamageClass, int>());
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Reached(IDamageableComponent damageable, DestructibleSystem system)
|
|
||||||
{
|
|
||||||
foreach (var (type, damageRequired) in Damage)
|
|
||||||
{
|
|
||||||
if (!damageable.TryGetDamage(type, out var damageReceived))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (damageReceived < damageRequired)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -46,7 +46,7 @@ namespace Content.Server.GameObjects.Components
|
|||||||
{
|
{
|
||||||
foreach (var threshold in destructible.Thresholds)
|
foreach (var threshold in destructible.Thresholds)
|
||||||
{
|
{
|
||||||
if (threshold.Trigger is not TotalDamageTrigger trigger)
|
if (threshold.Trigger is not DamageTrigger trigger)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -65,12 +65,12 @@ namespace Content.Server.GameObjects.Components
|
|||||||
}
|
}
|
||||||
|
|
||||||
var damage = damageable.TotalDamage;
|
var damage = damageable.TotalDamage;
|
||||||
TotalDamageTrigger? trigger = null;
|
DamageTrigger? trigger = null;
|
||||||
|
|
||||||
// TODO: Pretend this does not exist until https://github.com/space-wizards/space-station-14/pull/2783 is merged
|
// TODO: Pretend this does not exist until https://github.com/space-wizards/space-station-14/pull/2783 is merged
|
||||||
foreach (var threshold in destructible.Thresholds)
|
foreach (var threshold in destructible.Thresholds)
|
||||||
{
|
{
|
||||||
if ((trigger = threshold.Trigger as TotalDamageTrigger) != null)
|
if ((trigger = threshold.Trigger as DamageTrigger) != null)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 500
|
damage: 500
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 75
|
damage: 75
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 30
|
damage: 30
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 30
|
damage: 30
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 30
|
damage: 30
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 15
|
damage: 15
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 1
|
damage: 1
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 1
|
damage: 1
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 15
|
damage: 15
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -158,7 +158,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 75
|
damage: 75
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -189,7 +189,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 5
|
damage: 5
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 20
|
damage: 20
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -251,7 +251,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 15
|
damage: 15
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -282,7 +282,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 15
|
damage: 15
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -313,7 +313,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -336,7 +336,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 1
|
damage: 1
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -99,7 +99,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -258,7 +258,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 500
|
damage: 500
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 500
|
damage: 500
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 75
|
damage: 75
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 25
|
damage: 25
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
@@ -154,7 +154,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
@@ -397,7 +397,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 150
|
damage: 150
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 10
|
damage: 10
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
@@ -73,8 +73,13 @@
|
|||||||
enabled: true
|
enabled: true
|
||||||
offset: "0.5, 0"
|
offset: "0.5, 0"
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
deadThreshold: 25
|
thresholds:
|
||||||
resistances: metallicResistances
|
- trigger:
|
||||||
|
!type:DamageTrigger
|
||||||
|
damage: 25
|
||||||
|
behaviors:
|
||||||
|
- !type:DoActsBehavior
|
||||||
|
acts: [ "Destruction" ]
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: lightFixture
|
graph: lightFixture
|
||||||
node: bulbLight
|
node: bulbLight
|
||||||
@@ -104,7 +109,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 25
|
damage: 25
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 5
|
damage: 5
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -165,7 +165,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -193,7 +193,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -222,7 +222,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -250,7 +250,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -278,7 +278,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -306,7 +306,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -334,7 +334,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -367,7 +367,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 600
|
damage: 600
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
@@ -397,7 +397,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 1000
|
damage: 1000
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -425,7 +425,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -453,7 +453,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -485,7 +485,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
@@ -511,7 +511,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
@@ -539,7 +539,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300
|
damage: 300
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:SpawnEntitiesBehavior
|
- !type:SpawnEntitiesBehavior
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 15
|
damage: 15
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundCollectionBehavior
|
- !type:PlaySoundCollectionBehavior
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 75
|
damage: 75
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundCollectionBehavior
|
- !type:PlaySoundCollectionBehavior
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 100
|
damage: 100
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundCollectionBehavior
|
- !type:PlaySoundCollectionBehavior
|
||||||
|
|||||||
@@ -126,7 +126,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
@@ -165,9 +165,9 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTypesTrigger
|
!type:DamageTypeTrigger
|
||||||
damage:
|
type: Blunt
|
||||||
Blunt: 400
|
damage: 400
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:GibBehavior { }
|
- !type:GibBehavior { }
|
||||||
- type: HeatResistance
|
- type: HeatResistance
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 5
|
damage: 5
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundCollectionBehavior
|
- !type:PlaySoundCollectionBehavior
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 5
|
damage: 5
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundCollectionBehavior
|
- !type:PlaySoundCollectionBehavior
|
||||||
|
|||||||
@@ -132,7 +132,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 10
|
damage: 10
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 20
|
damage: 20
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundBehavior
|
- !type:PlaySoundBehavior
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 5
|
damage: 5
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundCollectionBehavior
|
- !type:PlaySoundCollectionBehavior
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
acts: [ "Breakage" ]
|
acts: [ "Breakage" ]
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 10
|
damage: 10
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:PlaySoundCollectionBehavior
|
- !type:PlaySoundCollectionBehavior
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 10
|
damage: 10
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 10
|
damage: 10
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 10
|
damage: 10
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:TotalDamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 50
|
damage: 50
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
|
|||||||
Reference in New Issue
Block a user