DestructibleTestPrototypes.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. namespace Content.IntegrationTests.Tests.Destructible
  2. {
  3. public static class DestructibleTestPrototypes
  4. {
  5. public const string SpawnedEntityId = "DestructibleTestsSpawnedEntity";
  6. public const string DestructibleEntityId = "DestructibleTestsDestructibleEntity";
  7. public const string DestructibleDestructionEntityId = "DestructibleTestsDestructibleDestructionEntity";
  8. public const string DestructibleDamageTypeEntityId = "DestructibleTestsDestructibleDamageTypeEntity";
  9. public const string DestructibleDamageGroupEntityId = "DestructibleTestsDestructibleDamageGroupEntity";
  10. [TestPrototypes]
  11. public const string DamagePrototypes = $@"
  12. - type: damageType
  13. id: TestBlunt
  14. name: damage-type-blunt
  15. - type: damageType
  16. id: TestSlash
  17. name: damage-type-slash
  18. - type: damageType
  19. id: TestPiercing
  20. name: damage-type-piercing
  21. - type: damageType
  22. id: TestHeat
  23. name: damage-type-heat
  24. - type: damageType
  25. id: TestShock
  26. name: damage-type-shock
  27. - type: damageType
  28. id: TestCold
  29. name: damage-type-cold
  30. - type: damageGroup
  31. id: TestBrute
  32. name: damage-group-brute
  33. damageTypes:
  34. - TestBlunt
  35. - TestSlash
  36. - TestPiercing
  37. - type: damageGroup
  38. id: TestBurn
  39. name: damage-group-burn
  40. damageTypes:
  41. - TestHeat
  42. - TestShock
  43. - TestCold
  44. - type: entity
  45. id: {SpawnedEntityId}
  46. name: {SpawnedEntityId}
  47. - type: entity
  48. id: {DestructibleEntityId}
  49. name: {DestructibleEntityId}
  50. components:
  51. - type: Damageable
  52. - type: Destructible
  53. thresholds:
  54. - trigger:
  55. !type:DamageTrigger
  56. damage: 20
  57. triggersOnce: false
  58. - trigger:
  59. !type:DamageTrigger
  60. damage: 50
  61. triggersOnce: false
  62. behaviors:
  63. - !type:PlaySoundBehavior
  64. sound:
  65. collection: WoodDestroy
  66. - !type:SpawnEntitiesBehavior
  67. spawn:
  68. {SpawnedEntityId}:
  69. min: 1
  70. max: 1
  71. - !type:DoActsBehavior
  72. acts: [""Breakage""]
  73. - type: entity
  74. id: {DestructibleDestructionEntityId}
  75. name: {DestructibleDestructionEntityId}
  76. components:
  77. - type: Damageable
  78. - type: Destructible
  79. thresholds:
  80. - trigger:
  81. !type:DamageTrigger
  82. damage: 50
  83. behaviors:
  84. - !type:PlaySoundBehavior
  85. sound:
  86. collection: WoodDestroyHeavy
  87. - !type:SpawnEntitiesBehavior
  88. spawn:
  89. {SpawnedEntityId}:
  90. min: 1
  91. max: 1
  92. - !type:DoActsBehavior # This must come last as it destroys the entity.
  93. acts: [""Destruction""]
  94. - type: entity
  95. id: {DestructibleDamageTypeEntityId}
  96. name: {DestructibleDamageTypeEntityId}
  97. components:
  98. - type: Damageable
  99. - type: Destructible
  100. thresholds:
  101. - trigger:
  102. !type:AndTrigger
  103. triggers:
  104. - !type:DamageTypeTrigger
  105. damageType: TestBlunt
  106. damage: 10
  107. - !type:DamageTypeTrigger
  108. damageType: TestSlash
  109. damage: 10
  110. - type: entity
  111. id: {DestructibleDamageGroupEntityId}
  112. name: {DestructibleDamageGroupEntityId}
  113. components:
  114. - type: Damageable
  115. - type: Destructible
  116. thresholds:
  117. - trigger:
  118. !type:AndTrigger
  119. triggers:
  120. - !type:DamageGroupTrigger
  121. damageGroup: TestBrute
  122. damage: 10
  123. - !type:DamageGroupTrigger
  124. damageGroup: TestBurn
  125. damage: 10";
  126. }
  127. }