Incendiary projectiles and lava firestack reduction (#23479)

* Firestack reduction and FireStackOnHit added

* Slight lava tweak

* Remove component and tweaked incendiary pellets

* Incendiary grenade tweak

* Now ignites on projectile fixture or ignition fixture + incendiary grenade tweak

* flare shells now  ignite entities again

* Comment

* undo flare gun ignite
This commit is contained in:
Arendian
2024-01-08 06:41:42 +01:00
committed by GitHub
parent 81aa5d3a18
commit 6bf6994298
7 changed files with 30 additions and 7 deletions

View File

@@ -13,4 +13,8 @@ public sealed partial class IgniteOnCollideComponent : Component
[ViewVariables(VVAccess.ReadWrite), DataField("fireStacks")] [ViewVariables(VVAccess.ReadWrite), DataField("fireStacks")]
public float FireStacks; public float FireStacks;
[ViewVariables(VVAccess.ReadWrite), DataField("fixtureId")]
public string FixtureId = "ignition";
} }

View File

@@ -13,6 +13,7 @@ using Content.Shared.Database;
using Content.Shared.Interaction; using Content.Shared.Interaction;
using Content.Shared.Physics; using Content.Shared.Physics;
using Content.Shared.Popups; using Content.Shared.Popups;
using Content.Shared.Projectiles;
using Content.Shared.Rejuvenate; using Content.Shared.Rejuvenate;
using Content.Shared.Temperature; using Content.Shared.Temperature;
using Content.Shared.Throwing; using Content.Shared.Throwing;
@@ -102,6 +103,12 @@ namespace Content.Server.Atmos.EntitySystems
if (!EntityManager.TryGetComponent(otherEnt, out FlammableComponent? flammable)) if (!EntityManager.TryGetComponent(otherEnt, out FlammableComponent? flammable))
return; return;
//Only ignite when the colliding fixture is projectile or ignition.
if (args.OurFixtureId != component.FixtureId && args.OurFixtureId != SharedProjectileSystem.ProjectileFixture)
{
return;
}
flammable.FireStacks += component.FireStacks; flammable.FireStacks += component.FireStacks;
Ignite(otherEnt, uid, flammable); Ignite(otherEnt, uid, flammable);
component.Count--; component.Count--;

View File

@@ -19,5 +19,5 @@ public sealed partial class LavaComponent : Component
/// How many fire stacks are applied per second. /// How many fire stacks are applied per second.
/// </summary> /// </summary>
[ViewVariables(VVAccess.ReadWrite), DataField("fireStacks")] [ViewVariables(VVAccess.ReadWrite), DataField("fireStacks")]
public float FireStacks = 2f; public float FireStacks = 1.25f;
} }

View File

@@ -49,8 +49,9 @@
deleteOnCollide: false deleteOnCollide: false
canPenetrate: true canPenetrate: true
damage: damage:
groups: types:
Burn: 4 Blunt: 1
Heat: 2
- type: IgniteOnCollide - type: IgniteOnCollide
fireStacks: 3 fireStacks: 3
count: 10 count: 10

View File

@@ -139,7 +139,7 @@
radius: 2.0 radius: 2.0
energy: 7.0 energy: 7.0
- type: IgniteOnCollide - type: IgniteOnCollide
fireStacks: 1 fireStacks: 0.25
- type: entity - type: entity
id: BaseBulletAP id: BaseBulletAP

View File

@@ -156,7 +156,7 @@
map: ["enum.TriggerVisualLayers.Base"] map: ["enum.TriggerVisualLayers.Base"]
- type: ClusterGrenade - type: ClusterGrenade
fillPrototype: PelletClusterIncendiary fillPrototype: PelletClusterIncendiary
maxGrenadesCount: 15 maxGrenadesCount: 30
grenadeType: enum.GrenadeType.Shoot grenadeType: enum.GrenadeType.Shoot
- type: OnUseTimerTrigger - type: OnUseTimerTrigger
beepSound: beepSound:

View File

@@ -90,10 +90,21 @@
name: "ignite rune" name: "ignite rune"
components: components:
- type: TriggerOnCollide - type: TriggerOnCollide
fixtureID: rune fixtureID: ignition
- type: Fixtures
fixtures:
ignition:
shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4"
hard: false
mask:
- ItemMask
layer:
- SlipLayer
- type: DeleteOnTrigger - type: DeleteOnTrigger
- type: IgniteOnCollide - type: IgniteOnCollide
fireStacks: 10 fireStacks: 5
- type: Sprite - type: Sprite
sprite: Structures/Magic/Cult/trap.rsi sprite: Structures/Magic/Cult/trap.rsi
layers: layers: