Teslaloose and Singuloose counterplay (#23444)

* add tesla dissapear mechanic
add field holobarrier

* add PD

* add crafting

* spacing

* added to cargo

* Fix

* resprite + damageable

* oopsie

* Update Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml

Co-authored-by: Kara <lunarautomaton6@gmail.com>

* Update Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml

Co-authored-by: Kara <lunarautomaton6@gmail.com>

* Update Resources/Locale/en-US/research/technologies.ftl

Co-authored-by: Kara <lunarautomaton6@gmail.com>

---------

Co-authored-by: Kara <lunarautomaton6@gmail.com>
This commit is contained in:
Ed
2024-01-05 05:48:09 +03:00
committed by GitHub
parent bb100e54ce
commit 0f8c004a2f
22 changed files with 253 additions and 0 deletions

View File

@@ -28,6 +28,18 @@ public sealed partial class TeslaEnergyBallComponent : Component
[DataField, ViewVariables(VVAccess.ReadWrite)]
public float NeedEnergyToSpawn = 100f;
/// <summary>
/// The amount of energy to which the tesla must reach in order to be destroyed.
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public float EnergyToDespawn = -100f;
/// <summary>
/// Played when energy reaches the lower limit (and entity destroyed)
/// </summary>
[DataField]
public SoundSpecifier? SoundCollapse;
/// <summary>
/// Entities that spawn when the energy limit is reached
/// </summary>

View File

@@ -47,5 +47,10 @@ public sealed class TeslaEnergyBallSystem : EntitySystem
component.Energy -= component.NeedEnergyToSpawn;
Spawn(component.SpawnProto, Transform(uid).Coordinates);
}
if (component.Energy < component.EnergyToDespawn)
{
_audio.PlayPvs(component.SoundCollapse, uid);
QueueDel(uid);
}
}
}

View File

@@ -42,3 +42,6 @@ ent-CrateRCDAmmo = RCD ammo crate
ent-CrateRCD = RCD crate
.desc = A crate containing a single Rapid Construction Device.
ent-CrateParticleDecelerators = Particle Decelerators crate
.desc = A crate containing 3 Particle Decelerators.

View File

@@ -59,6 +59,7 @@ research-technology-gravity-manipulation = Gravity Manipulation
research-technology-advanced-anomaly-research = Advanced Anomaly Research
research-technology-rped = Rapid Part Exchange
research-technology-super-parts = Super Parts
research-technology-deterrence = Deterrence Technologies
research-technology-janitorial-equipment = Janitorial Equipment
research-technology-laundry-tech = Laundry Tech

View File

@@ -117,3 +117,14 @@
cost: 800
category: Engineering
group: market
- type: cargoProduct
id: EngineeringParticleDecelerators
icon:
sprite: Objects/Weapons/Guns/Battery/particle_decelerator.rsi
state: base
product: CrateParticleDecelerators
cost: 15000
category: Engineering
group: market

View File

@@ -153,3 +153,12 @@
- type: StorageFill
contents:
- id: RCD
- type: entity
id: CrateParticleDecelerators
parent: CrateEngineeringSecure
components:
- type: StorageFill
contents:
- id: WeaponParticleDecelerator
amount: 3

View File

@@ -41,6 +41,23 @@
- type: StaticPrice
price: 80
- type: entity
parent: Holoprojector
id: HoloprojectorField
name: force field projector
description: Creates an impassable forcefield that won't let anything through. Close proximity may or may not cause cancer.
components:
- type: HolosignProjector
signProto: HolosignForcefield
chargeUse: 120
- type: Sprite
sprite: Objects/Devices/Holoprojectors/field.rsi
state: icon
- type: Tag
tags:
- HolofanProjector
- type: StaticPrice
price: 250
- type: entity
parent: Holoprojector

View File

@@ -313,6 +313,37 @@
proto: RedHeavyLaser
fireCost: 100
- type: entity
name: portable particle decelerator
parent: BaseWeaponBattery
id: WeaponParticleDecelerator
description: A portable particle decelerator capable of decomposing a tesla or singularity.
components:
- type: Item
size: Ginormous
- type: MultiHandedItem
- type: ClothingSpeedModifier
walkModifier: 0.6
sprintModifier: 0.6
- type: HeldSpeedModifier
- type: Sprite
sprite: Objects/Weapons/Guns/Battery/particle_decelerator.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- type: Gun
fireRate: 0.5
soundGunshot:
path: /Audio/Weapons/emitter.ogg
params:
pitch: 2
- type: ProjectileBatteryAmmoProvider
proto: AntiParticlesProjectile
fireCost: 500
- type: Battery
maxCharge: 10000
startingCharge: 10000
- type: entity
name: x-ray cannon
parent: BaseWeaponBattery

View File

@@ -76,3 +76,43 @@
color: red
- type: Climbable
- type: Clickable
- type: entity
id: HolosignForcefield
parent: HolosignWetFloor
name: holographic force field
description: A powerful temporal containment field that doesn't let anything through, not even a tesla or singularity.
components:
- type: Physics
bodyType: Static
canCollide: true
- type: Sprite
sprite: Structures/Holo/field.rsi
state: icon
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.5"
mask:
- FullTileMask
layer:
- GlassLayer
- type: TimedDespawn
lifetime: 180
- type: PointLight
enabled: true
radius: 3
color: blue
- type: Clickable
- type: ContainmentField
throwForce: 0
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 60
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]

View File

@@ -246,6 +246,8 @@
- Retractor
- Cautery
- Drill
- WeaponParticleDecelerator
- HoloprojectorField
- Saw
- Hemostat
- Beaker

View File

@@ -47,3 +47,20 @@
Level3: {state: particle3}
- type: GuideHelp
guides: [ Singularity, Power ]
- type: entity
name: anti particles
description: Accelerated negative particles.
id: AntiParticlesProjectile
parent: ParticlesProjectile
noSpawn: true
components:
- type: Sprite
layers:
- sprite: Structures/Power/Generation/PA/particle.rsi
color: red
state: particle0
shader: unshaded
map: [ "unshaded" ]
- type: SinguloFood
energy: -10

View File

@@ -68,6 +68,10 @@
consumeEntities: false
- type: TeslaEnergyBall
spawnProto: TeslaMiniEnergyBall
soundCollapse:
path: /Audio/Effects/tesla_collapse.ogg
params:
variation: 0.3
- type: LightningArcShooter
arcDepth: 3
maxLightningArc: 4

View File

@@ -202,3 +202,21 @@
Glass: 500
Plasma: 300
Gold: 50
- type: latheRecipe
id: HoloprojectorField
result: HoloprojectorField
completetime: 3
materials:
Steel: 500
Plasma: 300
Glass: 100
- type: latheRecipe
id: WeaponParticleDecelerator
result: WeaponParticleDecelerator
completetime: 6
materials:
Steel: 750
Plasma: 150
Uranium: 150

View File

@@ -139,6 +139,19 @@
recipeUnlocks:
- RPED
- type: technology
id: DeterrenceTechnologies
name: research-technology-deterrence
icon:
sprite: Objects/Weapons/Guns/Battery/particle_decelerator.rsi
state: base
discipline: Experimental
tier: 2
cost: 7500
recipeUnlocks:
- WeaponParticleDecelerator
- HoloprojectorField
# Tier 3
- type: technology

Binary file not shown.

After

Width:  |  Height:  |  Size: 875 B

View File

@@ -0,0 +1,22 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/f4017da82ae4de7bfaf8ebdbba33d0de81c15587, and resprited by TheShuEd (github)",
"states": [
{
"name": "icon",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,22 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Created by TheShuEd (github) for Space Station 14",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "base"
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,26 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Made by TheShuEd (github) for SS14",
"states": [
{
"name": "icon",
"delays": [
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
]
]
}
]
}