Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gyros & Thrusters #858

Merged
merged 5 commits into from
Jan 24, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
221 changes: 125 additions & 96 deletions Resources/Prototypes/_NF/Entities/Structures/Shuttles/thrusters.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,22 @@
- type: entity
id: BaseThrusterSecurity
parent: BaseStructureDynamic
abstract: true
id: ThrusterSecurity
parent: Thruster
suffix: Security
components:
- type: AmbientSound
enabled: false
range: 4
volume: -4
sound:
path: /Audio/Effects/shuttle_thruster.ogg
- type: Transform
anchored: true
- type: Physics
bodyType: Static
- type: Rotatable
rotateWhileAnchored: true
- type: Thruster
damage:
types:
Heat: 40
thrusterIgnoreEmp: true
- type: InteractionOutline
- type: Sprite
- type: Appearance
- type: ThrusterVisuals
- type: ApcPowerReceiver
powerLoad: 1500
- type: ExtensionCableReceiver
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Sprite
sprite: _NF/Structures/Shuttles/thrustersecurity.rsi
layers:
- state: base
map: ["enum.ThrusterVisualLayers.Base"]
- state: thrust
map: ["enum.ThrusterVisualLayers.ThrustOn"]
shader: unshaded
visible: false
- state: thrust_burn_unshaded
map: ["enum.ThrusterVisualLayers.ThrustingUnshaded"]
shader: unshaded
visible: false
offset: 0, 1
- type: Destructible
thresholds:
- trigger:
Expand All @@ -38,32 +25,12 @@
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- type: StaticPrice
price: 300
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45"
density: 60
mask:
- MachineMask
layer:
- MidImpassable
- LowImpassable
- BulletImpassable
placement:
mode: SnapgridCenter

- type: entity
id: ThrusterSecurity
name: security thruster
parent: [ BaseThrusterSecurity, ConstructibleMachine ]
id: ThrusterSecurityUnanchored
parent: ThrusterUnanchored
suffix: Unanchored, Security
components:
- type: Thruster
- type: Machine
board: ThrusterMachineCircuitboard
- type: Sprite
sprite: _NF/Structures/Shuttles/thrustersecurity.rsi
layers:
Expand All @@ -78,20 +45,60 @@
shader: unshaded
visible: false
offset: 0, 1
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 600 # Considering we need a lot of thrusters didn't want to make an individual one too tanky
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]

- type: entity
id: DebugThrusterSecurity
name: security thruster
parent: BaseThrusterSecurity
suffix: DEBUG
parent: DebugThruster
name: thruster
suffix: DEBUG, Security
components:
- type: Sprite
sprite: _NF/Structures/Shuttles/thrustersecurity.rsi
layers:
- state: base
map: ["enum.ThrusterVisualLayers.Base"]
- state: thrust
map: ["enum.ThrusterVisualLayers.ThrustOn"]
shader: unshaded
visible: false
- state: thrust_burn_unshaded
map: ["enum.ThrusterVisualLayers.ThrustingUnshaded"]
shader: unshaded
visible: false
offset: 0, 1
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 600 # Considering we need a lot of thrusters didn't want to make an individual one too tanky
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]

- type: entity
id: SmallThruster
parent: Thruster
suffix: Small
components:
- type: Thruster
requireSpace: false
baseThrust: 33
thrust: 33
damage:
types:
Heat: 40
- type: ApcPowerReceiver
needsPower: false
powerLoad: 0
powerLoad: 500
- type: Sprite
sprite: _NF/Structures/Shuttles/thrustersecurity.rsi
scale: 0.8, 0.8
sprite: Structures/Shuttles/thruster.rsi
layers:
- state: base
map: ["enum.ThrusterVisualLayers.Base"]
Expand All @@ -104,20 +111,15 @@
shader: unshaded
visible: false
offset: 0, 1
- type: StaticPrice
price: 100

- type: entity
id: GyroscopeSecurity
name: security gyroscope
parent: [ BaseThrusterSecurity, ConstructibleMachine ]
parent: Gyroscope
suffix: Security
components:
- type: Thruster
thrusterType: Angular
requireSpace: false
baseThrust: 2000
thrust: 2000
machinePartThrust: Manipulator
- type: Sprite
# Listen I'm not the biggest fan of the sprite but it was the most appropriate thing I could find.
sprite: _NF/Structures/Shuttles/gyroscope.rsi
snapCardinals: true
layers:
Expand All @@ -134,37 +136,61 @@
map: ["enum.ThrusterVisualLayers.ThrustingUnshaded"]
shader: unshaded
visible: false
- type: PointLight
radius: 1.3
energy: 0.8
enabled: false
mask: /Textures/Effects/LightMasks/cone.png
autoRot: true
offset: "0, 0.1" # shine from the top, not bottom of the computer
color: "#4246b3"
- type: Machine
board: GyroscopeMachineCircuitboard
- type: UpgradePowerDraw
powerDrawMultiplier: 0.75
scaling: Exponential
- type: StaticPrice
price: 2000

- type: entity
id: GyroscopeSecurityUnanchored
parent: GyroscopeUnanchored
components:
- type: Sprite
sprite: _NF/Structures/Shuttles/gyroscope.rsi
snapCardinals: true
layers:
- state: base
map: ["enum.ThrusterVisualLayers.Base"]
- state: thrust
map: ["enum.ThrusterVisualLayers.ThrustOn"]
shader: unshaded
visible: false
- state: thrust_burn_unshaded
map: ["enum.ThrusterVisualLayers.ThrustingUnshaded"]
shader: unshaded
visible: false

- type: entity
id: DebugGyroscopeSecurity
name: security gyroscope
parent: BaseThrusterSecurity
suffix: DEBUG
parent: DebugGyroscope
name: gyroscope
suffix: DEBUG, Security
components:
- type: Sprite
sprite: _NF/Structures/Shuttles/gyroscope.rsi
snapCardinals: true
layers:
- state: base
map: ["enum.ThrusterVisualLayers.Base"]
- state: thrust
map: ["enum.ThrusterVisualLayers.ThrustOn"]
shader: unshaded
visible: false
- state: thrust_burn_unshaded
map: ["enum.ThrusterVisualLayers.ThrustingUnshaded"]
shader: unshaded
visible: false

- type: entity
id: SmallGyroscopeSecurity
parent: GyroscopeSecurity
suffix: Security, Small
components:
- type: Thruster
thrusterType: Angular
requireSpace: false
baseThrust: 100
thrust: 100
baseThrust: 250
thrust: 250
- type: ApcPowerReceiver
needsPower: false
powerLoad: 0
powerLoad: 200
- type: Sprite
scale: 0.8, 0.8
sprite: _NF/Structures/Shuttles/gyroscope.rsi
snapCardinals: true
layers:
Expand All @@ -180,19 +206,20 @@
visible: false

- type: entity
id: SmallGyroscopeSecurity
name: security gyroscope
parent: BaseThrusterSecurity
suffix: small
id: SmallGyroscope
parent: Gyroscope
suffix: Small
components:
- type: Thruster
thrusterType: Angular
requireSpace: false
baseThrust: 250
thrust: 250
- type: ApcPowerReceiver
powerLoad: 200
- type: Sprite
scale: 0.8, 0.8
sprite: _NF/Structures/Shuttles/gyroscope.rsi
sprite: Structures/Shuttles/gyroscope.rsi
snapCardinals: true
layers:
- state: base
Expand All @@ -205,3 +232,5 @@
map: ["enum.ThrusterVisualLayers.ThrustingUnshaded"]
shader: unshaded
visible: false
- type: StaticPrice
price: 250
Loading