Star Wars 14: Shuttle weapon update (#23644)

* setup codebase

* make auto-fire, but its broken

* collider problem

* fix rate, add toggle port

* add laser

* power cages

* ginormous cells

* fix inhand

* add pirate cannon

* salvage gun

* functional Nuke cannon

* rewrite to standart grenade

* fix naming, add emp sprite

* grenade cartridge

* thruster fix

* nuke cannon

* audio + visual polish

* balance tweak

* tweaks

* laser balance tweak: new Electronic damage modifier set, reduce structural cannon damage

* resprite energy cages, start implementing in game

* fix cage recharger craft

* add small laser gun

* fix colliders

* add  lasers and ptk to research and crafting

* finish implementing weapon to rnd and sec

* some fixes

* splitted grenades and cannon balls

* integrate new cannon balls

* tweaks stick

* move circuits to sectechfab, fix

* fix?

* add ability to E shoot, without signals

* fix!

* fix?!?! and naming tweak

* go!

* Lank fix

* oh

* mornings don't start with coffee.

* the morning starts with bug fixes.

* fucking bugs!

* finally

* it is now possible to craft projectiles separately from cartridges

* +2 fix

* refactor

* piu

* More weight

* add AutoShootGunComponent

* move autoshoot to partial

* SetEnabled()

* some fixes

* remove CanShootWithoutUser field

* remove null-checks ToCoordinates from AttemptShoot()

* war without reason

* return to home

* ?

* forgot remove it

* review

* Fix formatting and update path

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
Ed
2024-01-21 11:58:40 +03:00
committed by GitHub
parent 2cf77d3a57
commit a2d5d74b46
93 changed files with 1570 additions and 21 deletions

View File

@@ -60,6 +60,16 @@
Heat: 5
Piercing: 10
# for fragile electronics like consoles or shuttle engines.
- type: damageModifierSet
id: Electronic
coefficients:
Blunt: 0.7
Slash: 0.5
Piercing: 0.7
Shock: 2
Heat: 3
# Like metallic, but without flat reduction so it can be damaged with fists.
- type: damageModifierSet
id: FlimsyMetallic

View File

@@ -661,6 +661,29 @@
- type: StaticPrice
price: 15
- type: entity
id: PowerCageRechargerCircuitboard
parent: BaseMachineCircuitboard
name: cage recharger machine board
description: A machine printed circuit board for a energy cage recharger.
components:
- type: Sprite
sprite: Objects/Misc/module.rsi
state: charger_APC
- type: MachineBoard
prototype: PowerCageRecharger
requirements:
Capacitor: 4
materialRequirements:
Steel: 5
Cable: 10
- type: PhysicalComposition
materialComposition:
Steel: 30
Plastic: 30
- type: StaticPrice
price: 30
- type: entity
id: BorgChargerCircuitboard
parent: BaseMachineCircuitboard
@@ -1229,3 +1252,90 @@
Steel: 5
CableHV: 5
Uranium: 2
- type: entity
id: ShuttleGunSvalinnMachineGunCircuitboard
parent: BaseMachineCircuitboard
name: LSE-400c "Svalinn machine gun" machine board
description: A machine printed circuit board for an LSE-400c "Svalinn machine gun"
components:
- type: Sprite
state: security
- type: MachineBoard
prototype: ShuttleGunSvalinnMachineGun
requirements:
MatterBin: 2
Manipulator: 4
materialRequirements:
Steel: 5
CableHV: 5
- type: entity
id: ShuttleGunPerforatorCircuitboard
parent: BaseMachineCircuitboard
name: LSE-1200c "Perforator" machine board
description: A machine printed circuit board for an LSE-1200c "Perforator"
components:
- type: Sprite
state: security
- type: MachineBoard
prototype: ShuttleGunPerforator
requirements:
MatterBin: 4
Manipulator: 6
materialRequirements:
Steel: 10
CableHV: 5
- type: entity
id: ShuttleGunFriendshipCircuitboard
parent: BaseMachineCircuitboard
name: EXP-320g "Friendship" machine board
description: A machine printed circuit board for an EXP-320g "Friendship"
components:
- type: Sprite
state: security
- type: MachineBoard
prototype: ShuttleGunFriendship
requirements:
MatterBin: 3
Manipulator: 2
materialRequirements:
Steel: 7
CableHV: 5
- type: entity
id: ShuttleGunDusterCircuitboard
parent: BaseMachineCircuitboard
name: EXP-2100g "Duster" machine board
description: A machine printed circuit board for an EXP-2100g "Duster"
components:
- type: Sprite
state: security
- type: MachineBoard
prototype: ShuttleGunDuster
requirements:
MatterBin: 6
Manipulator: 4
materialRequirements:
Steel: 10
CableHV: 5
Uranium: 2
- type: entity
id: ShuttleGunKineticCircuitboard
parent: BaseMachineCircuitboard
name: PTK-800 "Matter Dematerializer" machine board
description: A machine printed circuit board for an PTK-800 "Matter Dematerializer"
components:
- type: Sprite
state: security
- type: MachineBoard
prototype: ShuttleGunKinetic
requirements:
MatterBin: 2
Manipulator: 3
materialRequirements:
Steel: 5
CableHV: 2

View File

@@ -267,3 +267,139 @@
- type: BatterySelfRecharger
autoRecharge: true
autoRechargeRate: 40
# Power cage (big heavy power cell for big devices)
- type: entity
id: BasePowerCage
abstract: true
parent: BasePowerCell
components:
- type: Item
size: Ginormous
- type: MultiHandedItem
- type: SolutionContainerManager
solutions:
battery:
maxVol: 15
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Zinc
Quantity: 15
- type: Tag
tags:
- PowerCage
- type: HitscanBatteryAmmoProvider
proto: RedShuttleLaser
fireCost: 150
- type: ClothingSpeedModifier
walkModifier: 0.8
sprintModifier: 0.8
- type: HeldSpeedModifier
- type: entity
id: PowerCageSmall
parent: BasePowerCage
name: small-capacity power cage
description: A rechargeable power cage for big devices. This is the cheapest kind you can find.
components:
- type: Sprite
sprite: Objects/Power/power_cages.rsi
layers:
- map: [ "enum.PowerCellVisualLayers.Base" ]
state: small
- map: [ "enum.PowerCellVisualLayers.Unshaded" ]
state: o2
shader: unshaded
- type: Battery
maxCharge: 1400
startingCharge: 1400
- type: entity
id: PowerCageMedium
parent: BasePowerCage
name: medium-capacity power cage
description: A rechargeable power cage for big devices. The gold standard of capacity and cost.
components:
- type: Sprite
sprite: Objects/Power/power_cages.rsi
layers:
- map: [ "enum.PowerCellVisualLayers.Base" ]
state: medium
- map: [ "enum.PowerCellVisualLayers.Unshaded" ]
state: o2
shader: unshaded
- type: Battery
maxCharge: 2700
startingCharge: 2700
- type: entity
id: PowerCageHigh
parent: BasePowerCage
name: high-capacity power cage
description: A rechargeable power cage for big devices. Increased capacity for increased power levels.
components:
- type: Sprite
sprite: Objects/Power/power_cages.rsi
layers:
- map: [ "enum.PowerCellVisualLayers.Base" ]
state: high
- map: [ "enum.PowerCellVisualLayers.Unshaded" ]
state: o2
shader: unshaded
- type: Battery
maxCharge: 6200
startingCharge: 6200
- type: entity
id: PowerCageSmallEmpty
parent: PowerCageSmall
suffix: Empty
components:
- type: Sprite
sprite: Objects/Power/power_cages.rsi
layers:
- map: [ "enum.PowerCellVisualLayers.Base" ]
state: small
- map: [ "enum.PowerCellVisualLayers.Unshaded" ]
state: o2
shader: unshaded
visible: false
- type: Battery
maxCharge: 1400
startingCharge: 0
- type: entity
id: PowerCageMediumEmpty
parent: PowerCageMedium
suffix: Empty
components:
- type: Sprite
sprite: Objects/Power/power_cages.rsi
layers:
- map: [ "enum.PowerCellVisualLayers.Base" ]
state: small
- map: [ "enum.PowerCellVisualLayers.Unshaded" ]
state: o2
shader: unshaded
visible: false
- type: Battery
startingCharge: 0
- type: entity
id: PowerCageHighEmpty
parent: PowerCageHigh
suffix: Empty
components:
- type: Sprite
sprite: Objects/Power/power_cages.rsi
layers:
- map: [ "enum.PowerCellVisualLayers.Base" ]
state: small
- map: [ "enum.PowerCellVisualLayers.Unshaded" ]
state: o2
shader: unshaded
visible: false
- type: Battery
startingCharge: 0

View File

@@ -0,0 +1,87 @@
- type: entity
id: BaseMagazineGrenade
name: grenade cartridge
parent: BaseItem
abstract: true
components:
- type: Tag
tags:
- MagazineGrenade
- type: BallisticAmmoProvider
mayTransfer: true
whitelist:
tags:
- Grenade
capacity: 5
soundRack:
path: /Audio/Weapons/Guns/Bolt/lmg_bolt_closed.ogg
params:
variation: 0.05
soundInsert:
path: /Audio/Weapons/Guns/MagIn/rifle_load.ogg
params:
variation: 0.05
- type: Item
size: Large
- type: ContainerContainer
containers:
ballistic-ammo: !type:Container
- type: Sprite
sprite: Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-4
map: ["enum.GunVisualLayers.Mag"]
- type: MagazineVisuals
magState: mag
steps: 5
zeroVisible: false
- type: Appearance
- type: entity
id: MagazineGrenadeEmpty
name: grenade cartridge
parent: BaseMagazineGrenade
components:
- type: BallisticAmmoProvider
- type: entity
id: MagazineGrenadeFrag
name: frag grenade cartridge
parent: BaseMagazineGrenade
components:
- type: BallisticAmmoProvider
proto: GrenadeFrag
- type: entity
id: MagazineGrenadeEMP
name: EMP grenade cartridge
parent: BaseMagazineGrenade
components:
- type: BallisticAmmoProvider
proto: GrenadeEMP
- type: entity
id: MagazineGrenadeFlash
name: flash grenade cartridge
parent: BaseMagazineGrenade
components:
- type: BallisticAmmoProvider
proto: GrenadeFlash
- type: entity
id: MagazineGrenadeBlast
name: blast grenade cartridge
parent: BaseMagazineGrenade
components:
- type: BallisticAmmoProvider
proto: GrenadeBlast
- type: entity
id: MagazineGrenadeBaton
name: baton grenade cartridge
parent: BaseMagazineGrenade
components:
- type: BallisticAmmoProvider
proto: GrenadeBaton

View File

@@ -122,12 +122,44 @@
- type: SpentAmmoVisuals
state: frag
suffix: false
- type: entity
id: GrenadeEMP
name: EMP grenade
parent: BaseGrenade
components:
- type: CartridgeAmmo
proto: BulletGrenadeEMP
- type: Sprite
sprite: Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi
layers:
- state: emp
map: ["enum.AmmoVisualLayers.Base"]
- type: Appearance
- type: SpentAmmoVisuals
state: frag
suffix: false
# Cannon Balls
- type: entity
id: BaseCannonBall
name: base cannon ball
parent: BaseItem
abstract: true
components:
- type: Tag
tags:
- CannonBall
- type: Item
size: Small
- type: Sprite
- type: entity
id: CannonBall
name: cannonball
suffix: Pirate
parent: BaseGrenade
parent: BaseCannonBall
components:
- type: CartridgeAmmo
proto: BulletCannonBall
@@ -137,10 +169,10 @@
state: ball
- type: entity
id: Grapeshot
id: CannonBallGrapeshot
name: grapeshot
suffix: Pirate
parent: BaseGrenade
parent: BaseCannonBall
components:
- type: CartridgeAmmo
proto: PelletGrapeshot
@@ -152,10 +184,10 @@
state: grapeshot
- type: entity
id: Glassshot
id: CannonBallGlassshot
name: glassshot
suffix: Pirate
parent: BaseGrenade
parent: BaseCannonBall
components:
- type: CartridgeAmmo
proto: PelletGlass

View File

@@ -144,7 +144,7 @@
- type: BallisticAmmoProvider
whitelist:
tags:
- Grenade
- CannonBall
capacity: 1
proto: CannonBall
soundInsert:

View File

@@ -121,3 +121,20 @@
impactFlash:
sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
state: impact_blue
- type: hitscan
id: RedShuttleLaser
maxLength: 60
damage:
types:
Heat: 45
Structural: 10
muzzleFlash:
sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
state: muzzle_beam_heavy2
travelFlash:
sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
state: beam_heavy2
impactFlash:
sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
state: impact_beam_heavy2

View File

@@ -420,6 +420,32 @@
- type: TimedDespawn
lifetime: 0.4
- type: entity
id: BulletKineticShuttle
parent: BaseBullet
noSpawn: true
components:
- type: Sprite
noRot: false
sprite: Objects/Weapons/Guns/Projectiles/magic.rsi
layers:
- state: chronobolt
shader: unshaded
- type: Projectile
impactEffect: BulletImpactEffectKinetic
damage:
types:
Blunt: 30
Structural: 35
- type: Ammo
muzzleFlash: HitscanEffect
- type: TimedDespawn
lifetime: 1.5
- type: PointLight
radius: 2.5
color: white
energy: 0.5
- type: entity
id: BulletCharge
name: charge bolt
@@ -692,6 +718,27 @@
intensitySlope: 1
maxIntensity: 10
- type: entity
id: BulletGrenadeEMP
name: EMP rocket
parent: BaseBulletTrigger
noSpawn: true
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
layers:
- state: frag
- type: EmpOnTrigger
range: 5
energyConsumption: 50000
disableDuration: 10
- type: Ammo
muzzleFlash: null
- type: PointLight
radius: 3.5
color: blue
energy: 0.5
- type: entity
id: BulletCap
name: cap bullet

View File

@@ -26,7 +26,7 @@
drawdepth: Objects
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
damageModifierSet: Electronic
- type: Destructible
thresholds:
- trigger:

View File

@@ -169,6 +169,7 @@
- MagazineBoxMagnum
- MagazineBoxRifle
- MagazineBoxLightRifle
- GrenadeBlast
emagDynamicRecipes:
- CartridgePistolRubber
- CartridgeMagnumRubber
@@ -197,6 +198,12 @@
- MagazineBoxMagnumUranium
- MagazineBoxLightRifleUranium
- MagazineBoxRifleUranium
- PowerCageSmall
- PowerCageMedium
- PowerCageHigh
- MagazineGrenadeEmpty
- GrenadeEMP
- GrenadeFlash
- type: entity
id: AutolatheHyperConvection
@@ -422,10 +429,12 @@
- WallmountGeneratorElectronics
- WallmountGeneratorAPUElectronics
- WallmountSubstationElectronics
- PowerCageRechargerCircuitboard
- EmitterCircuitboard
- ThrusterMachineCircuitboard
- GyroscopeMachineCircuitboard
- MiniGravityGeneratorCircuitboard
- ShuttleGunKineticCircuitboard
- GasRecyclerMachineCircuitboard
- SeedExtractorMachineCircuitboard
- AnalysisComputerCircuitboard
@@ -691,6 +700,9 @@
- MagazineBoxMagnumRubber
- MagazineBoxPistolRubber
- MagazineBoxRifleRubber
- MagazineGrenadeEmpty
- GrenadeEMP
- GrenadeFlash
- ShellShotgunBeanbag
- ShellShotgunIncendiary
- ShellShotgunUranium
@@ -706,6 +718,13 @@
- WeaponLaserCannon
- WeaponLaserCarbine
- WeaponXrayCannon
- PowerCageSmall
- PowerCageMedium
- PowerCageHigh
- ShuttleGunSvalinnMachineGunCircuitboard
- ShuttleGunPerforatorCircuitboard
- ShuttleGunFriendshipCircuitboard
- ShuttleGunDusterCircuitboard
- type: MaterialStorage
whitelist:
tags:

View File

@@ -107,6 +107,46 @@
blacklist:
tags:
- PotatoBattery
- type: entity
parent: [ BaseItemRecharger, ConstructibleMachine ]
id: PowerCageRecharger
name: cage recharger
components:
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.35,0.25,0.35"
density: 190
mask:
- MachineMask
layer:
- MachineLayer
- type: LitOnPowered
- type: PointLight
radius: 1.5
color: "#03fc4e"
energy: 0.7
- type: Charger
chargeRate: 50
- type: Sprite
sprite: Structures/Power/cage_recharger.rsi
- type: PowerCellSlot
cellSlotId: charger_slot
- type: ItemSlots
slots:
charger_slot:
ejectOnInteract: true
name: Power cage
whitelist:
tags:
- PowerCage
- type: Machine
board: PowerCageRechargerCircuitboard
- type: StaticPrice
price: 500
- type: entity
parent: BaseItemRecharger

View File

@@ -0,0 +1,375 @@
- type: entity
id: ShuttleGunBase
name: shittle gun
abstract: true
placement:
mode: SnapgridCenter
components:
- type: Appearance
- type: Clickable
- type: InteractionOutline
- type: Anchorable
- type: Pullable
- type: Rotatable
- type: Physics
bodyType: Static
- type: ContainerContainer
- type: Gun
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45"
density: 450
mask:
- MachineMask
layer:
- MachineLayer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Electronic
- type: Transform
anchored: true
- type: DeviceNetwork
deviceNetId: Wireless
receiveFrequencyId: BasicDevice
- type: WirelessNetworkConnection
range: 200
- type: DeviceLinkSink
ports:
- Trigger
- Toggle
- On
- Off
- type: AutoShootGun
- type: GunSignalControl
- type: StaticPrice
price: 1500
# ---- Laser weapon branch ----
# naming: LSE (Laser) + conventional power + suffix (c for PowerCage, e for wired energy) + Name
# example: LSE-100e "Clown destroyer" (powered by the wiring, very weak)
- type: entity
id: ShuttleGunSvalinnMachineGun
parent: [ ShuttleGunBase, ConstructibleMachine]
name: LSE-400c "Svalinn machine gun"
description: Basic stationary laser unit. Effective against live targets and electronics. Uses regular power cells to fire, and has an extremely high rate of fire
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Shuttles/laser.rsi
layers:
- state: lse-400c
- state: mag-unshaded-9
map: ["enum.GunVisualLayers.MagUnshaded"]
shader: unshaded
- type: ContainerContainer
containers:
machine_board: !type:Container
machine_parts: !type:Container
gun_magazine: !type:ContainerSlot
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 150
behaviors:
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Gun
fireRate: 5
useKey: false
selectedMode: SemiAuto
availableModes:
- SemiAuto
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
params:
variation: 0.05
- type: MagazineVisuals
magState: mag
steps: 10
zeroVisible: true
- type: Machine
board: ShuttleGunSvalinnMachineGunCircuitboard
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
whitelist:
tags:
- PowerCell
- PowerCellSmall
- type: MagazineAmmoProvider
- type: entity
id: ShuttleGunPerforator
parent: [ ShuttleGunBase, ConstructibleMachine]
name: LSE-1200c "Perforator"
description: Advanced stationary laser unit. Annihilates electronics and is extremely dangerous to health! Uses the power cage to fire.
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Shuttles/laser.rsi
layers:
- state: lse-1200c
- state: mag-unshaded-9
map: ["enum.GunVisualLayers.MagUnshaded"]
shader: unshaded
- type: ContainerContainer
containers:
machine_board: !type:Container
machine_parts: !type:Container
gun_magazine: !type:ContainerSlot
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 300
behaviors:
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Gun
fireRate: 1
useKey: false
selectedMode: SemiAuto
availableModes:
- SemiAuto
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/laser_cannon2.ogg
params:
variation: 0.05
- type: MagazineVisuals
magState: mag
steps: 10
zeroVisible: true
- type: Machine
board: ShuttleGunPerforatorCircuitboard
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
whitelist:
tags:
- PowerCage
- type: MagazineAmmoProvider
# ---- Launchers ----
# naming: EXP (Explosion) + conventional power + suffix (g for Grenade, c for RPG Cartridge) + Name
# example: EXP-100c "Poppy"
- type: entity
id: ShuttleGunFriendship
parent: [ShuttleGunBase, ConstructibleMachine]
name: EXP-320g "Friendship"
description: A small stationary grenade launcher that holds 2 grenades.
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Shuttles/launcher.rsi
layers:
- state: exp-320g
- state: mag-7
map: ["enum.GunVisualLayers.Mag"]
- type: ContainerContainer
containers:
machine_board: !type:Container
machine_parts: !type:Container
ballistic-ammo: !type:Container
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 200
behaviors:
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Gun
projectileSpeed: 80
fireRate: 4
angleDecay: 45
minAngle: 0
maxAngle: 15
selectedMode: FullAuto
availableModes:
- FullAuto
soundGunshot:
path: /Audio/Items/Mining/fultext_launch.ogg
params:
pitch: 0.8
soundEmpty:
path: /Audio/Weapons/Guns/Empty/empty.ogg
- type: BallisticAmmoProvider
whitelist:
tags:
- Grenade
capacity: 2
soundInsert:
path: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
- type: Machine
board: ShuttleGunFriendshipCircuitboard
- type: MagazineVisuals
magState: mag
steps: 8
zeroVisible: false
- type: entity
id: ShuttleGunDuster
parent: [ShuttleGunBase, ConstructibleMachine]
name: EXP-2100g "Duster"
description: A powerful stationary grenade launcher. A cartridge is required for use.
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Shuttles/launcher.rsi
layers:
- state: exp-2100g
- state: mag-7
map: ["enum.GunVisualLayers.Mag"]
- type: ContainerContainer
containers:
machine_board: !type:Container
machine_parts: !type:Container
gun_magazine: !type:ContainerSlot
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 350
behaviors:
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Gun
projectileSpeed: 40
fireRate: 0.3
selectedMode: FullAuto
availableModes:
- FullAuto
soundGunshot:
path: /Audio/Items/Mining/fultext_launch.ogg
params:
variation: 0.05
pitch: 0.8
soundEmpty:
path: /Audio/Weapons/Guns/Empty/empty.ogg
- type: Machine
board: ShuttleGunDusterCircuitboard
- type: MagazineAmmoProvider
- type: MagazineVisuals
magState: mag
steps: 8
zeroVisible: false
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
priority: 2
whitelist:
tags:
- MagazineGrenade
insertSound:
path: /Audio/Weapons/Guns/MagIn/kinetic_reload.ogg
params:
pitch: 2
ejectSound: /Audio/Weapons/Guns/MagOut/smg_magout.ogg
# ---- Other weapon ----
- type: entity
id: ShuttleGunPirateCannon
parent: ShuttleGunBase
name: pirate ship cannon
description: Kaboom!
components:
- type: ContainerContainer
containers:
ballistic-ammo: !type:Container
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 300
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Sprite
sprite: Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi
layers:
- state: base
- type: Gun
fireRate: 1
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/mateba.ogg
- type: BallisticAmmoProvider
whitelist:
tags:
- CannonBall
capacity: 1
proto: CannonBall
soundInsert:
path: /Audio/Weapons/Guns/Gunshots/grenade_launcher.ogg
- type: entity
id: ShuttleGunKinetic
parent: [ ShuttleGunBase, ConstructibleMachine]
name: PTK-800 "Matter Dematerializer"
description: Salvage stationary mining turret. Gradually accumulates charges on its own, extremely effective for asteroid excavation.
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Shuttles/kinetic.rsi
layers:
- state: ptk-800
- state: mag-7
- type: ContainerContainer
containers:
machine_board: !type:Container
machine_parts: !type:Container
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Gun
projectileSpeed: 20
fireRate: 2
selectedMode: SemiAuto
angleDecay: 45
minAngle: 5
maxAngle: 15
availableModes:
- SemiAuto
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg
params:
variation: 0.12
- type: RechargeBasicEntityAmmo
rechargeCooldown: 2
rechargeSound:
path: /Audio/Weapons/Guns/Bolt/lmg_bolt_closed.ogg
params:
pitch: 1.2
variation: 0.08
- type: BasicEntityAmmoProvider
proto: BulletKineticShuttle
capacity: 5
count: 5
- type: Machine
board: ShuttleGunKineticCircuitboard

View File

@@ -5,6 +5,17 @@
description: A thruster that allows a shuttle to move.
abstract: true
components:
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45"
density: 60
mask:
- MachineMask
layer:
- MachineLayer
- type: AmbientSound
enabled: false
range: 4
@@ -30,12 +41,12 @@
- type: ExtensionCableReceiver
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
damageModifierSet: Electronic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 300 # Considering we need a lot of thrusters didn't want to make an individual one too tanky
damage: 100 # Considering we need a lot of thrusters didn't want to make an individual one too tanky
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
@@ -185,6 +196,9 @@
- type: UpgradePowerDraw
powerDrawMultiplier: 0.75
scaling: Exponential
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Electronic
- type: StaticPrice
price: 2000

View File

@@ -895,3 +895,54 @@
Steel: 100
Glass: 900
Gold: 100
- type: latheRecipe
id: PowerCageRechargerCircuitboard
result: PowerCageRechargerCircuitboard
completetime: 6
materials:
Steel: 100
Glass: 900
- type: latheRecipe
id: ShuttleGunSvalinnMachineGunCircuitboard
result: ShuttleGunSvalinnMachineGunCircuitboard
completetime: 6
materials:
Steel: 100
Glass: 900
- type: latheRecipe
id: ShuttleGunPerforatorCircuitboard
result: ShuttleGunPerforatorCircuitboard
completetime: 10
materials:
Steel: 100
Glass: 900
Gold: 100
- type: latheRecipe
id: ShuttleGunKineticCircuitboard
result: ShuttleGunKineticCircuitboard
completetime: 6
materials:
Steel: 100
Glass: 900
- type: latheRecipe
id: ShuttleGunFriendshipCircuitboard
result: ShuttleGunFriendshipCircuitboard
completetime: 8
materials:
Steel: 100
Glass: 900
Gold: 50
- type: latheRecipe
id: ShuttleGunDusterCircuitboard
result: ShuttleGunDusterCircuitboard
completetime: 12
materials:
Steel: 100
Glass: 900
Gold: 100

View File

@@ -39,3 +39,31 @@
Glass: 400
Uranium: 200
Gold: 100
- type: latheRecipe
id: PowerCageSmall
result: PowerCageSmall
completetime: 3
materials:
Steel: 200
Plastic: 100
- type: latheRecipe
id: PowerCageMedium
result: PowerCageMedium
completetime: 6
materials:
Steel: 500
Glass: 500
Plastic: 250
Gold: 40
- type: latheRecipe
id: PowerCageHigh
result: PowerCageHigh
completetime: 10
materials:
Steel: 600
Glass: 800
Plastic: 400
Gold: 100

View File

@@ -605,3 +605,39 @@
Steel: 1000
Glass: 500
Plastic: 500
- type: latheRecipe
id: MagazineGrenadeEmpty
result: MagazineGrenadeEmpty
completetime: 3
materials:
Steel: 150
Plastic: 50
- type: latheRecipe
id: GrenadeEMP
result: GrenadeEMP
completetime: 3
materials:
Steel: 150
Plastic: 100
Glass: 20
- type: latheRecipe
id: GrenadeBlast
result: GrenadeBlast
completetime: 3
materials:
Steel: 150
Plastic: 100
Gold: 50
- type: latheRecipe
id: GrenadeFlash
result: GrenadeFlash
completetime: 3
materials:
Steel: 150
Plastic: 100
Glass: 20

View File

@@ -11,6 +11,7 @@
cost: 5000
recipeUnlocks:
- WeaponProtoKineticAccelerator
- ShuttleGunKineticCircuitboard
# These are roundstart but not replenishable for salvage
- type: technology
@@ -145,6 +146,27 @@
- HoloprojectorSecurity
- WeaponDisablerSMG
- type: technology
id: BasicShuttleArmament
name: research-technology-basic-shuttle-armament
icon:
sprite: Structures/Power/cage_recharger.rsi
state: full
discipline: Arsenal
tier: 2
cost: 10500
recipeUnlocks:
- PowerCageRechargerCircuitboard
- PowerCageSmall
- PowerCageMedium
- MagazineGrenadeEmpty
- GrenadeFlash
- ShuttleGunSvalinnMachineGunCircuitboard
- ShuttleGunPerforatorCircuitboard
- ShuttleGunFriendshipCircuitboard
technologyPrerequisites:
- SalvageWeapons
# Tier 3
- type: technology
@@ -170,3 +192,19 @@
cost: 15000
recipeUnlocks:
- WeaponLaserSvalinn
- type: technology
id: AdvancedShuttleWeapon
name: research-technology-advanced-shuttle-weapon
icon:
sprite: Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi
state: icon
discipline: Arsenal
tier: 3
cost: 15000
recipeUnlocks:
- GrenadeEMP
- PowerCageHigh
- ShuttleGunDusterCircuitboard
technologyPrerequisites:
- BasicShuttleArmament

View File

@@ -250,6 +250,9 @@
- type: Tag
id: CanPilot
- type: Tag
id: CannonBall
- type: Tag
id: CannonRestrict
@@ -784,6 +787,9 @@
- type: Tag
id: MagazinePistolSubMachineGun
- type: Tag
id: MagazineGrenade
- type: Tag
id: MailingUnitElectronics
@@ -940,6 +946,9 @@
- type: Tag
id: PowerCellSmall
- type: Tag
id: PowerCage
- type: Tag
id: Powerdrill