Vehicles (#7336)
BIN
Resources/Audio/Effects/Vehicle/carhorn.ogg
Normal file
5
Resources/Audio/Effects/Vehicle/license.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
vehiclestartup.ogg and vehicleengineidle.ogg taken from user InspectorJ at https://freesound.org/people/InspectorJ/sounds/338954/
|
||||
|
||||
carhorn.ogg taken from /tg/station at commit https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a
|
||||
|
||||
policesiren.ogg taken from freesound user blukotek at https://freesound.org/people/blukotek/sounds/431651/
|
||||
BIN
Resources/Audio/Effects/Vehicle/policesiren.ogg
Normal file
BIN
Resources/Audio/Effects/Vehicle/vehicleengineidle.ogg
Normal file
BIN
Resources/Audio/Effects/Vehicle/vehiclestartup.ogg
Normal file
@@ -1 +1,2 @@
|
||||
pill.ogg contains audio from '437480__ruanza__swallowing.wav' by user RuanZA, used under CC BY-NC 3.0 (https://freesound.org/people/RuanZA/sounds/437480/), as well as part of '330657__diniunicorn__popping-pills.wav' by user diniunicorn, used under CC0 1.0 (https://freesound.org/people/diniunicorn/sounds/330657/). ring.ogg used udner CC-BY-SA-3.0, taken from /tg/station commit https://github.com/tgstation/tgstation/commit/c61c452d78425d89920b41ed5f95fd190e733a3c.
|
||||
|
||||
|
||||
4
Resources/Locale/en-US/actions/actions/vehicle.ftl
Normal file
@@ -0,0 +1,4 @@
|
||||
action-name-honk = Honk
|
||||
action-desc-honk = Honk!
|
||||
action-name-siren = Toggle Siren
|
||||
action-desc-siren = Wee-woo.
|
||||
1
Resources/Locale/en-US/vehicle/vehicle.ftl
Normal file
@@ -0,0 +1 @@
|
||||
vehicle-use-key = You use {THE($keys)} to start {THE($vehicle)}.
|
||||
@@ -57,3 +57,15 @@
|
||||
cost: 1500
|
||||
category: Fun
|
||||
group: market
|
||||
|
||||
- type: cargoProduct
|
||||
name: "ATV crate"
|
||||
id: FunATV
|
||||
description: "An Absolutely Taxable Vehicle to help cargo with hauling."
|
||||
icon:
|
||||
sprite: Objects/Vehicles/atv.rsi
|
||||
state: vehicle
|
||||
product: CrateFunATV
|
||||
cost: 2500
|
||||
category: Fun
|
||||
group: market
|
||||
|
||||
@@ -111,3 +111,15 @@
|
||||
amount: 1
|
||||
- id: d6Dice
|
||||
amount: 4
|
||||
|
||||
- type: entity
|
||||
id: CrateFunATV
|
||||
name: ATV crate
|
||||
parent: CrateLivestock
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: VehicleATV
|
||||
amount: 1
|
||||
- id: VehicleKeyATV
|
||||
amount: 1
|
||||
|
||||
@@ -145,6 +145,7 @@
|
||||
- FunArtSupplies
|
||||
- FunInstruments
|
||||
- FunBoardGames
|
||||
- FunATV
|
||||
- MaterialSteel
|
||||
- MaterialGlass
|
||||
- MaterialPlastic
|
||||
|
||||
@@ -162,8 +162,8 @@
|
||||
event: !type:ToggleActionEvent
|
||||
- type: PointLight
|
||||
enabled: false
|
||||
radius: 2.5
|
||||
softness: 5
|
||||
radius: 3.5
|
||||
softness: 1
|
||||
mask: /Textures/Effects/LightMasks/cone.png
|
||||
autoRot: true
|
||||
- type: Tag
|
||||
|
||||
257
Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml
Normal file
@@ -0,0 +1,257 @@
|
||||
- type: entity
|
||||
id: VehicleBase
|
||||
save: false
|
||||
abstract: true
|
||||
name: Vehicle
|
||||
components:
|
||||
- type: Strap
|
||||
buckleOffset: "0.10, 0.36"
|
||||
maxBuckleDistance: 1
|
||||
- type: AmbientSound
|
||||
sound: "/Audio/Effects/Vehicle/vehicleengineidle.ogg"
|
||||
range: 10
|
||||
volume: -1
|
||||
- type: PlayerInputMover
|
||||
- type: InteractionOutline
|
||||
- type: Vehicle
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 7
|
||||
baseSprintSpeed : 7
|
||||
- type: Tag
|
||||
- type: Pullable
|
||||
- type: Physics
|
||||
bodyType: KinematicController
|
||||
- type: Clickable
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
- shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.4
|
||||
mass: 180
|
||||
restitution: 0.0
|
||||
mask:
|
||||
- Impassable
|
||||
- VaultImpassable
|
||||
layer:
|
||||
- VaultImpassable
|
||||
- type: VehicleVisuals
|
||||
- type: Appearance
|
||||
- type: Repairable
|
||||
fuelcost: 20
|
||||
doAfterDelay: 20
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Metallic
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 300
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Effects/metalbreak.ogg
|
||||
- !type:ExplodeBehavior
|
||||
- type: ItemSlots
|
||||
slots:
|
||||
key_slot: #this slot name is important
|
||||
name: Keys
|
||||
whitelist:
|
||||
requireAll: true
|
||||
tags:
|
||||
- VehicleKey
|
||||
insertSound: /Audio/Effects/Vehicle/vehiclestartup.ogg
|
||||
|
||||
- type: entity
|
||||
id: VehiclePussyWagon
|
||||
parent: VehicleBase
|
||||
name: janicart
|
||||
description: The janitor's trusty steed.
|
||||
components:
|
||||
- type: Vehicle
|
||||
northOverride: -0.15
|
||||
southOverride: 0.22
|
||||
- type: Sprite
|
||||
sprite: Objects/Vehicles/pussywagon.rsi
|
||||
layers:
|
||||
- state: vehicle
|
||||
map: ["enum.VehicleVisualLayers.AutoAnimate"]
|
||||
netsync: false
|
||||
noRot: true
|
||||
- type: Access
|
||||
tags:
|
||||
- Maintenance
|
||||
- Janitor
|
||||
- type: UnpoweredFlashlight
|
||||
toggleAction:
|
||||
name: action-name-toggle-light
|
||||
description: action-description-toggle-light
|
||||
icon: Objects/Tools/flashlight.rsi/flashlight.png
|
||||
iconOn: Objects/Tools/flashlight.rsi/flashlight-on.png
|
||||
event: !type:ToggleActionEvent
|
||||
- type: PointLight
|
||||
enabled: false
|
||||
radius: 3.5
|
||||
softness: 2
|
||||
mask: /Textures/Effects/LightMasks/cone.png
|
||||
autoRot: true
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 250
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Effects/metalbreak.ogg
|
||||
- !type:ExplodeBehavior
|
||||
- !type:SpawnEntitiesBehavior # in future should also emit a cloud of hot gas
|
||||
spawn:
|
||||
VehiclePussyWagonDestroyed:
|
||||
min: 1
|
||||
max: 1
|
||||
- type: ItemSlots
|
||||
slots:
|
||||
key_slot:
|
||||
name: Keys
|
||||
whitelist:
|
||||
requireAll: true
|
||||
tags:
|
||||
- VehicleKey
|
||||
- PussyWagonKeys
|
||||
insertSound: /Audio/Effects/Vehicle/vehiclestartup.ogg
|
||||
trashbag_slot:
|
||||
name: Bag
|
||||
whitelist:
|
||||
tags:
|
||||
- TrashBag
|
||||
- type: ItemMapper
|
||||
mapLayers:
|
||||
storage:
|
||||
whitelist:
|
||||
tags:
|
||||
- TrashBag
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MappedItemVisualizer
|
||||
sprite: Objects/Vehicles/pussywagon.rsi
|
||||
|
||||
- type: entity
|
||||
id: VehiclePussyWagonDestroyed
|
||||
parent: MachineFrameDestroyed
|
||||
name: destroyed janicart
|
||||
description: R.I.P. (Rest In Pussy)
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Vehicles/pussywagon.rsi
|
||||
state: destroyed
|
||||
netsync: false
|
||||
|
||||
- type: entity
|
||||
id: VehicleSecway
|
||||
parent: VehicleBase
|
||||
name: secway
|
||||
description: The future of transportation. Popularized by St. James, the patron saint of security officers and internet forum moderators.
|
||||
components:
|
||||
- type: Vehicle
|
||||
northOnly: true
|
||||
northOverride: -0.1
|
||||
southOverride: 0.1
|
||||
hornSound:
|
||||
path: /Audio/Effects/Vehicle/policesiren.ogg
|
||||
hornAction:
|
||||
name: action-name-siren
|
||||
description: action-desc-siren
|
||||
icon: Objects/Fun/bikehorn.rsi/icon.png
|
||||
iconOn: Objects/Fun/bikehorn.rsi/icon.png
|
||||
event: !type:ToggleActionEvent
|
||||
hornIsSiren: true
|
||||
- type: Sprite
|
||||
sprite: Objects/Vehicles/secway.rsi
|
||||
layers:
|
||||
- state: vehicle
|
||||
map: ["enum.VehicleVisualLayers.AutoAnimate"]
|
||||
netsync: false
|
||||
noRot: true
|
||||
- type: Access
|
||||
tags:
|
||||
- Security
|
||||
- Brig
|
||||
- Maintenance
|
||||
- Service
|
||||
- type: Strap
|
||||
buckleOffset: "0.15, -0.05"
|
||||
maxBuckleDistance: 1
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 8
|
||||
baseSprintSpeed : 8
|
||||
- type: Armor
|
||||
modifiers:
|
||||
coeffecients:
|
||||
Blunt: 0.8
|
||||
Slash: 0.6
|
||||
Piercing: 0.85
|
||||
- type: ItemSlots
|
||||
slots:
|
||||
key_slot:
|
||||
name: Keys
|
||||
whitelist:
|
||||
requireAll: true
|
||||
tags:
|
||||
- VehicleKey
|
||||
- SecwayKeys
|
||||
insertSound: /Audio/Effects/Vehicle/vehiclestartup.ogg
|
||||
|
||||
- type: entity
|
||||
parent: VehicleBase
|
||||
id: VehicleATV
|
||||
name: ATV
|
||||
description: All-Tile Vehicle.
|
||||
components:
|
||||
- type: Vehicle
|
||||
northOverride: -0.1
|
||||
southOverride: 0.1
|
||||
- type: Sprite
|
||||
sprite: Objects/Vehicles/atv.rsi
|
||||
layers:
|
||||
- state: vehicle
|
||||
map: ["enum.VehicleVisualLayers.AutoAnimate"]
|
||||
netsync: false
|
||||
noRot: true
|
||||
- type: Access
|
||||
tags:
|
||||
- Cargo
|
||||
- Maintenance
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 8
|
||||
baseSprintSpeed : 8
|
||||
- type: Strap
|
||||
buckleOffset: "0.1, -0.05"
|
||||
maxBuckleDistance: 1
|
||||
- type: UnpoweredFlashlight
|
||||
toggleAction:
|
||||
name: action-name-toggle-light
|
||||
description: action-description-toggle-light
|
||||
icon: Objects/Tools/flashlight.rsi/flashlight.png
|
||||
iconOn: Objects/Tools/flashlight.rsi/flashlight-on.png
|
||||
event: !type:ToggleActionEvent
|
||||
- type: PointLight
|
||||
enabled: false
|
||||
radius: 3.5
|
||||
softness: 2
|
||||
mask: /Textures/Effects/LightMasks/cone.png
|
||||
autoRot: true
|
||||
- type: ItemSlots
|
||||
slots:
|
||||
key_slot:
|
||||
name: Keys
|
||||
whitelist:
|
||||
requireAll: true
|
||||
tags:
|
||||
- VehicleKey
|
||||
- ATVKeys
|
||||
insertSound: /Audio/Effects/Vehicle/vehiclestartup.ogg
|
||||
59
Resources/Prototypes/Entities/Objects/Vehicles/keys.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
id: VehicleKeyPussyWagon
|
||||
name: janicart keys
|
||||
description: Interesting design.
|
||||
components:
|
||||
- type: Item
|
||||
size: 2
|
||||
- type: Tag
|
||||
tags:
|
||||
- VehicleKey
|
||||
- PussyWagonKeys
|
||||
- type: Sprite
|
||||
sprite: Objects/Vehicles/pussywagon.rsi
|
||||
state: keys
|
||||
netsync: false
|
||||
|
||||
- type: entity
|
||||
parent: VehicleKeyPussyWagon
|
||||
id: VehicleKeySecway
|
||||
name: secway keys
|
||||
description: The keys to the future.
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- VehicleKey
|
||||
- SecwayKeys
|
||||
- type: Sprite
|
||||
sprite: Objects/Vehicles/secway.rsi
|
||||
state: keys
|
||||
netsync: false
|
||||
|
||||
- type: entity
|
||||
parent: VehicleKeyPussyWagon
|
||||
id: VehicleKeyATV
|
||||
name: ATV keys
|
||||
description: Think this looks like just one key? ATV keys means "actually two vehicle keys."
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- VehicleKey
|
||||
- ATVKeys
|
||||
- type: Sprite
|
||||
sprite: Objects/Vehicles/atv.rsi
|
||||
state: keys
|
||||
netsync: false
|
||||
|
||||
- type: entity
|
||||
parent: VehicleKeyATV
|
||||
id: VehicleKeySkeleton
|
||||
name: vehicle skeleton keys
|
||||
description: Unlock any vehicle.
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- VehicleKey
|
||||
- PussyWagonKeys
|
||||
- SecwayKeys
|
||||
- ATVKeys
|
||||
@@ -395,6 +395,7 @@
|
||||
- FunInstruments
|
||||
- FunBrass
|
||||
- FunBoardGames
|
||||
- FunATV
|
||||
- MaterialSteel
|
||||
- MaterialGlass
|
||||
- MaterialPlastic
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
- type: Tag
|
||||
id: AirAlarmElectronics
|
||||
|
||||
- type: Tag
|
||||
id: ATVKeys
|
||||
|
||||
- type: Tag
|
||||
id: Baguette
|
||||
|
||||
@@ -123,6 +126,9 @@
|
||||
- type: Tag
|
||||
id: Donut
|
||||
|
||||
- type: Tag
|
||||
id: Drone
|
||||
|
||||
- type: Tag
|
||||
id: DroneUsable
|
||||
|
||||
@@ -264,6 +270,9 @@
|
||||
- type: Tag
|
||||
id: Powerdrill
|
||||
|
||||
- type: Tag
|
||||
id: PussyWagonKeys
|
||||
|
||||
# Give this to something that doesn't need any special recycler behavior and just needs deleting.
|
||||
- type: Tag
|
||||
id: Recyclable
|
||||
@@ -280,6 +289,9 @@
|
||||
- type: Tag
|
||||
id: Screwdriver
|
||||
|
||||
- type: Tag
|
||||
id: SecwayKeys
|
||||
|
||||
- type: Tag
|
||||
id: Sheet
|
||||
|
||||
@@ -310,6 +322,9 @@
|
||||
- type: Tag
|
||||
id: TrashBag
|
||||
|
||||
- type: Tag
|
||||
id: VehicleKey
|
||||
|
||||
- type: Tag
|
||||
id: WetFloorSign
|
||||
|
||||
@@ -336,6 +351,3 @@
|
||||
|
||||
- type: Tag
|
||||
id: Write
|
||||
|
||||
- type: Tag
|
||||
id: Drone
|
||||
|
||||
BIN
Resources/Textures/Objects/Vehicles/atv.rsi/keys.png
Normal file
|
After Width: | Height: | Size: 282 B |
44
Resources/Textures/Objects/Vehicles/atv.rsi/meta.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"version": 1,
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a",
|
||||
"states": [
|
||||
{
|
||||
"name": "vehicle",
|
||||
"directions": 4,
|
||||
"delays": [
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
],
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
],
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
],
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "keys"
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
Resources/Textures/Objects/Vehicles/atv.rsi/vehicle.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
Resources/Textures/Objects/Vehicles/pussywagon.rsi/destroyed.png
Normal file
|
After Width: | Height: | Size: 870 B |
BIN
Resources/Textures/Objects/Vehicles/pussywagon.rsi/keys.png
Normal file
|
After Width: | Height: | Size: 557 B |
47
Resources/Textures/Objects/Vehicles/pussywagon.rsi/meta.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"version": 1,
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a",
|
||||
"states": [
|
||||
{
|
||||
"name": "vehicle",
|
||||
"directions": 4,
|
||||
"delays": [
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
],
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
],
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
],
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "storage",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "destroyed"
|
||||
},
|
||||
{
|
||||
"name": "keys"
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
Resources/Textures/Objects/Vehicles/pussywagon.rsi/storage.png
Normal file
|
After Width: | Height: | Size: 546 B |
BIN
Resources/Textures/Objects/Vehicles/pussywagon.rsi/vehicle.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
Resources/Textures/Objects/Vehicles/secway.rsi/keys.png
Normal file
|
After Width: | Height: | Size: 529 B |
40
Resources/Textures/Objects/Vehicles/secway.rsi/meta.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"version": 1,
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a",
|
||||
"states": [
|
||||
{
|
||||
"name": "vehicle",
|
||||
"directions": 4,
|
||||
"delays": [
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
],
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
],
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
],
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "keys"
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
Resources/Textures/Objects/Vehicles/secway.rsi/vehicle.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |