Revamped Meteor Swarm (#28974)
* meteor code and balanced values * Meteor Swarms * Update meteors.yml * Update meteors.yml * HOO! (fix overkill bug and buff space dust) * undo BloodstreamComponent.cs changes * DamageDistribution -> DamageTypes * part 2.
This commit is contained in:
@@ -361,7 +361,7 @@
|
||||
whitelist:
|
||||
tags:
|
||||
- CartridgeRocket
|
||||
proto: MeteorLarge
|
||||
proto: MeteorMedium
|
||||
|
||||
- type: entity
|
||||
name: immovable rod launcher
|
||||
|
||||
@@ -1,40 +1,206 @@
|
||||
- type: entity
|
||||
id: MeteorLarge
|
||||
id: BaseMeteor
|
||||
name: meteor
|
||||
noSpawn: true
|
||||
description: You prefer them when they're burning up in the atmosphere.
|
||||
abstract: true
|
||||
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
|
||||
sprite: Objects/Misc/meteor.rsi
|
||||
- type: Projectile
|
||||
damage: {}
|
||||
deleteOnCollide: false
|
||||
- type: Explosive
|
||||
explosionType: Default
|
||||
totalIntensity: 600.0
|
||||
intensitySlope: 30
|
||||
maxIntensity: 45
|
||||
- type: Meteor
|
||||
damageTypes:
|
||||
types:
|
||||
Blunt: 1
|
||||
- type: TimedDespawn
|
||||
lifetime: 120
|
||||
- type: Clickable
|
||||
- type: Physics
|
||||
bodyType: Dynamic
|
||||
bodyStatus: InAir
|
||||
angularDamping: 0
|
||||
linearDamping: 0
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
projectile:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.8
|
||||
radius: 0.4
|
||||
density: 100
|
||||
hard: true
|
||||
# Didn't use MapGridComponent for now as the bounds are stuffed.
|
||||
hard: false
|
||||
layer:
|
||||
- LargeMobLayer
|
||||
mask:
|
||||
- Impassable
|
||||
- BulletImpassable
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
- type: Explosive
|
||||
explosionType: Default
|
||||
intensitySlope: 4
|
||||
maxIntensity: 100
|
||||
|
||||
- type: entity
|
||||
parent: BaseMeteor
|
||||
id: MeteorSpaceDust
|
||||
name: space dust
|
||||
description: Makes a station sneeze.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: space_dust
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
projectile:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.45
|
||||
density: 100
|
||||
hard: false
|
||||
layer:
|
||||
- LargeMobLayer
|
||||
mask:
|
||||
- Impassable
|
||||
- BulletImpassable
|
||||
- type: Explosive
|
||||
totalIntensity: 25
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 100
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: MetalBreak
|
||||
- !type:ExplodeBehavior
|
||||
|
||||
- type: entity
|
||||
parent: BaseMeteor
|
||||
id: MeteorSmall
|
||||
suffix: Small
|
||||
components:
|
||||
- type: Sprite
|
||||
state: small
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
projectile:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.25
|
||||
density: 100
|
||||
hard: false
|
||||
layer:
|
||||
- LargeMobLayer
|
||||
mask:
|
||||
- Impassable
|
||||
- BulletImpassable
|
||||
- type: Explosive
|
||||
totalIntensity: 100
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 1250
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: MetalBreak
|
||||
- !type:ExplodeBehavior
|
||||
|
||||
- type: entity
|
||||
parent: BaseMeteor
|
||||
id: MeteorMedium
|
||||
suffix: Medium
|
||||
components:
|
||||
- type: Sprite
|
||||
state: medium
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
projectile:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.3
|
||||
density: 100
|
||||
hard: false
|
||||
layer:
|
||||
- LargeMobLayer
|
||||
mask:
|
||||
- Impassable
|
||||
- BulletImpassable
|
||||
- type: Explosive
|
||||
totalIntensity: 200
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 1750
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: MetalBreak
|
||||
- !type:ExplodeBehavior
|
||||
|
||||
- type: entity
|
||||
parent: BaseMeteor
|
||||
id: MeteorLarge
|
||||
suffix: Large
|
||||
components:
|
||||
- type: Sprite
|
||||
state: big
|
||||
- type: Explosive
|
||||
totalIntensity: 300
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 2500
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: MetalBreak
|
||||
- !type:ExplodeBehavior
|
||||
|
||||
- type: entity
|
||||
parent: BaseMeteor
|
||||
id: MeteorUrist
|
||||
name: Urist McMeteor
|
||||
description: As a successful member of society with a stable unflinching psyche and limitless drive, natural affinity for finance and domination, you have been selected, no, you have been effortlessly guided by divine (biological) trauma towards this moment. The gates of destiny fling open, and once again you're left standing on pulsating nothingness. A strobing headache of the soul.
|
||||
suffix: Meteor
|
||||
components:
|
||||
- type: Sprite
|
||||
state: human_pixel
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
blood:
|
||||
maxVol: 1000
|
||||
reagents:
|
||||
- ReagentId: Blood
|
||||
Quantity: 1000
|
||||
- type: Explosive
|
||||
totalIntensity: 25
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 3000
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: MaleScreams
|
||||
params:
|
||||
volume: 10
|
||||
- !type:SpillBehavior
|
||||
solution: blood
|
||||
- !type:ExplodeBehavior
|
||||
|
||||
@@ -196,23 +196,6 @@
|
||||
duration: 240
|
||||
- type: KudzuGrowthRule
|
||||
|
||||
- type: entity
|
||||
id: MeteorSwarm
|
||||
parent: BaseStationEventLongDelay
|
||||
components:
|
||||
- type: StationEvent
|
||||
earliestStart: 30
|
||||
weight: 7.5
|
||||
minimumPlayers: 10 #Enough to hopefully have at least one engineering guy
|
||||
startAnnouncement: station-event-meteor-swarm-start-announcement
|
||||
endAnnouncement: station-event-meteor-swarm-end-announcement
|
||||
startAudio:
|
||||
path: /Audio/Announcements/meteors.ogg
|
||||
params:
|
||||
volume: -4
|
||||
duration: null #ending is handled by MeteorSwarmRule
|
||||
- type: MeteorSwarmRule
|
||||
|
||||
- type: entity
|
||||
id: MouseMigration
|
||||
parent: BaseStationEventShortDelay
|
||||
|
||||
104
Resources/Prototypes/GameRules/meteorswarms.yml
Normal file
104
Resources/Prototypes/GameRules/meteorswarms.yml
Normal file
@@ -0,0 +1,104 @@
|
||||
- type: entity
|
||||
parent: BaseGameRule
|
||||
id: GameRuleMeteorScheduler
|
||||
components:
|
||||
- type: GameRule
|
||||
minPlayers: 25
|
||||
- type: MeteorScheduler
|
||||
|
||||
- type: weightedRandomEntity
|
||||
id: DefaultConfig
|
||||
weights:
|
||||
GameRuleSpaceDustMinor: 44
|
||||
GameRuleSpaceDustMajor: 22
|
||||
GameRuleMeteorSwarmSmall: 18
|
||||
GameRuleMeteorSwarmMedium: 10
|
||||
GameRuleMeteorSwarmLarge: 5
|
||||
GameRuleUristSwarm: 0.05
|
||||
|
||||
- type: entity
|
||||
parent: BaseGameRule
|
||||
id: GameRuleMeteorSwarm
|
||||
abstract: true
|
||||
components:
|
||||
- type: GameRule
|
||||
- type: MeteorSwarm
|
||||
|
||||
- type: entity
|
||||
parent: GameRuleMeteorSwarm
|
||||
id: GameRuleSpaceDustMinor
|
||||
components:
|
||||
- type: MeteorSwarm
|
||||
announcement: null
|
||||
announcementSound: null
|
||||
nonDirectional: true
|
||||
meteors:
|
||||
MeteorSpaceDust: 1
|
||||
waves:
|
||||
min: 2
|
||||
max: 3
|
||||
meteorsPerWave:
|
||||
min: 3
|
||||
max: 5
|
||||
|
||||
- type: entity
|
||||
parent: GameRuleMeteorSwarm
|
||||
id: GameRuleSpaceDustMajor
|
||||
components:
|
||||
- type: MeteorSwarm
|
||||
announcement: station-event-space-dust-start-announcement
|
||||
announcementSound: /Audio/Announcements/attention.ogg
|
||||
nonDirectional: true
|
||||
meteors:
|
||||
MeteorSpaceDust: 1
|
||||
waves:
|
||||
min: 2
|
||||
max: 3
|
||||
meteorsPerWave:
|
||||
min: 8
|
||||
max: 12
|
||||
|
||||
- type: entity
|
||||
parent: GameRuleMeteorSwarm
|
||||
id: GameRuleMeteorSwarmSmall
|
||||
components:
|
||||
- type: MeteorSwarm
|
||||
meteors:
|
||||
MeteorSmall: 7
|
||||
MeteorMedium: 3
|
||||
|
||||
- type: entity
|
||||
parent: GameRuleMeteorSwarm
|
||||
id: GameRuleMeteorSwarmMedium
|
||||
components:
|
||||
- type: MeteorSwarm
|
||||
meteors:
|
||||
MeteorSmall: 3
|
||||
MeteorMedium: 6
|
||||
MeteorLarge: 1
|
||||
|
||||
- type: entity
|
||||
parent: GameRuleMeteorSwarm
|
||||
id: GameRuleMeteorSwarmLarge
|
||||
components:
|
||||
- type: MeteorSwarm
|
||||
meteors:
|
||||
MeteorSmall: 2
|
||||
MeteorMedium: 4
|
||||
MeteorLarge: 4
|
||||
|
||||
- type: entity
|
||||
parent: GameRuleMeteorSwarm
|
||||
id: GameRuleUristSwarm
|
||||
components:
|
||||
- type: MeteorSwarm
|
||||
announcement: station-event-meteor-urist-start-announcement
|
||||
announcementSound: /Audio/Announcements/attention.ogg
|
||||
meteors:
|
||||
MeteorUrist: 1
|
||||
waves:
|
||||
min: 3
|
||||
max: 3
|
||||
meteorsPerWave:
|
||||
min: 10
|
||||
max: 10
|
||||
@@ -31,6 +31,7 @@
|
||||
description: extended-description
|
||||
rules:
|
||||
- BasicStationEventScheduler
|
||||
- GameRuleMeteorScheduler
|
||||
- BasicRoundstartVariation
|
||||
|
||||
- type: gamePreset
|
||||
@@ -64,6 +65,7 @@
|
||||
description: secret-description
|
||||
rules:
|
||||
- BasicStationEventScheduler
|
||||
- GameRuleMeteorScheduler
|
||||
|
||||
- type: gamePreset
|
||||
id: SecretGreenshift #For Admin Use: Runs Greenshift but shows "Secret" in lobby.
|
||||
@@ -95,6 +97,7 @@
|
||||
- Traitor
|
||||
- SubGamemodesRule
|
||||
- BasicStationEventScheduler
|
||||
- GameRuleMeteorScheduler
|
||||
- BasicRoundstartVariation
|
||||
|
||||
- type: gamePreset
|
||||
@@ -121,6 +124,7 @@
|
||||
- Nukeops
|
||||
- SubGamemodesRule
|
||||
- BasicStationEventScheduler
|
||||
- GameRuleMeteorScheduler
|
||||
- BasicRoundstartVariation
|
||||
|
||||
- type: gamePreset
|
||||
@@ -136,6 +140,7 @@
|
||||
- Revolutionary
|
||||
- SubGamemodesRule
|
||||
- BasicStationEventScheduler
|
||||
- GameRuleMeteorScheduler
|
||||
- BasicRoundstartVariation
|
||||
|
||||
- type: gamePreset
|
||||
@@ -152,4 +157,5 @@
|
||||
rules:
|
||||
- Zombie
|
||||
- BasicStationEventScheduler
|
||||
- GameRuleMeteorScheduler
|
||||
- BasicRoundstartVariation
|
||||
|
||||
Reference in New Issue
Block a user