use old meteor entity (#1658)

* add old meteor entity

* spawn old meteor entity in rule

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
deltanedas 2024-08-22 14:29:18 +00:00 committed by GitHub
parent 8c227f17df
commit d4e3c531c3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 41 additions and 1 deletions

View File

@ -67,7 +67,7 @@ namespace Content.Server.StationEvents.Events
var angle = new Angle(RobustRandom.NextFloat() * MathF.Tau);
var offset = angle.RotateVec(new Vector2((maximumDistance - minimumDistance) * RobustRandom.NextFloat() + minimumDistance, 0));
var spawnPosition = new MapCoordinates(center + offset, mapId);
var meteor = Spawn("MeteorLarge", spawnPosition);
var meteor = Spawn("MeteorLargeDeltaV", spawnPosition);
var physics = EntityManager.GetComponent<PhysicsComponent>(meteor);
_physics.SetBodyStatus(meteor, physics, BodyStatus.InAir);
_physics.SetLinearDamping(meteor, physics, 0f);

View File

@ -0,0 +1,40 @@
- type: entity
id: MeteorLargeDeltaV
name: meteor
categories: [ HideSpawnMenu ]
components:
- type: Sprite
noRot: false
sprite: Objects/Weapons/Guns/Projectiles/meteor.rsi
scale: 4,4
layers:
- state: large
shader: unshaded
- type: ExplodeOnTrigger
- type: DeleteOnTrigger
- type: TriggerOnCollide
fixtureID: projectile
- type: Projectile
damage: {}
deleteOnCollide: false
- type: Explosive
explosionType: Default
totalIntensity: 600.0
intensitySlope: 30
maxIntensity: 45
- type: Physics
bodyType: Dynamic
- type: Fixtures
fixtures:
projectile:
shape:
!type:PhysShapeCircle
radius: 0.8
density: 100
hard: true
# Didn't use MapGridComponent for now as the bounds are stuffed.
layer:
- LargeMobLayer
mask:
- Impassable
- BulletImpassable