-using Content.Server.Anomaly.Components;
+using Content.Server.Anomaly.Components;
using Content.Server.Atmos.EntitySystems;
using Content.Server.Audio;
using Content.Server.Explosion.EntitySystems;
// small function to randomize because it's easier to read like this
float VaryValue(float v) => v * Random.NextFloat(MinParticleVariation, MaxParticleVariation);
- if (particle.ParticleType == component.DestabilizingParticleType)
+ if (particle.ParticleType == component.DestabilizingParticleType || particle.DestabilzingOverride)
{
ChangeAnomalyStability(uid, VaryValue(particle.StabilityPerDestabilizingHit), component);
}
- else if (particle.ParticleType == component.SeverityParticleType)
+ if (particle.ParticleType == component.SeverityParticleType || particle.SeverityOverride)
{
ChangeAnomalySeverity(uid, VaryValue(particle.SeverityPerSeverityHit), component);
}
- else if (particle.ParticleType == component.WeakeningParticleType)
+ if (particle.ParticleType == component.WeakeningParticleType || particle.WeakeningOverride)
{
ChangeAnomalyHealth(uid, VaryValue(particle.HealthPerWeakeningeHit), component);
ChangeAnomalyStability(uid, VaryValue(particle.StabilityPerWeakeningeHit), component);
-using Content.Shared.Anomaly;
+using Content.Shared.Anomaly;
using Content.Shared.Anomaly.Components;
namespace Content.Server.Anomaly.Components;
/// </summary>
[DataField("stabilityPerWeakeningeHit")]
public float StabilityPerWeakeningeHit = -0.1f;
+
+ /// <summary>
+ /// If this is true then the particle will always affect the stability of the anomaly.
+ /// </summary>
+ [DataField("destabilzingOverride")]
+ public bool DestabilzingOverride = false;
+
+ /// <summary>
+ /// If this is true then the particle will always affect the weakeness of the anomaly.
+ /// </summary>
+ [DataField("weakeningOverride")]
+ public bool WeakeningOverride = false;
+
+ /// <summary>
+ /// If this is true then the particle will always affect the severity of the anomaly.
+ /// </summary>
+ [DataField("severityOverride")]
+ public bool SeverityOverride = false;
}
-using Content.Shared.Damage;
+using Content.Shared.Damage;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization;
{
Delta,
Epsilon,
- Zeta
+ Zeta,
+ Default
}
[Serializable, NetSerializable]
}
anomaly-generator-announcement = An anomaly has been generated!
+
# Flavor text on the footer
anomaly-generator-flavor-left = Anomaly may spawn inside the operator.
anomaly-generator-flavor-right = v1.1
uplink-hot-potato-name = Hot Potato
uplink-hot-potato-desc = Once activated, this time bomb can't be dropped - only passed to someone else!
+uplink-chimp-ammo-name = Box of 10 Omega Cartridges.
+uplink-chimp-ammo-desc = A box of 10 omega particle cartridges for the CHIMP. Omega particles inflict severe burns and cause anomalies to go supercritical.
+
# Armor
uplink-chameleon-name = Chameleon Kit
uplink-chameleon-desc = A backpack full of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more!
- id: MagazineMagnumSubMachineGun
amount: 3
+- type: entity
+ name: box of omega particle cartridges
+ parent: BoxMagazine
+ id: BoxMagazineChimpOmega
+ description: A box full of omega particle cartridges for the CHIMP.
+ components:
+ - type: StorageFill
+ contents:
+ - id: CartridgeAnomalousParticleOmega
+ amount: 10
+ - type: Sprite
+ layers:
+ - state: box_science
+ - state: omegacart
+
- type: entity
name: box of Vector (high-velocity) magazines
parent: BoxMagazine
- Clown
- Mime
+- type: listing
+ id: UplinkChimpAmmo
+ name: uplink-chimp-ammo-name
+ description: uplink-chimp-ammo-desc
+ productEntity: BoxMagazineChimpOmega
+ cost:
+ Telecrystal: 4
+ categories:
+ - UplinkJob
+ conditions:
+ - !type:BuyerJobCondition
+ whitelist:
+ - Scientist
+
# Armor
- type: listing
color: goldenrod
- type: CartridgeAmmo
proto: AnomalousParticleZetaStrong
+
+- type: entity
+ id: CartridgeAnomalousParticleOmega
+ parent: BaseAnomalousCartridge
+ name: cartridge (omega particle)
+ description: An experimental and often dangerous particle.
+ components:
+ - type: Sprite
+ layers:
+ - state: base
+ map: ["enum.AmmoVisualLayers.Base"]
+ - state: overlay
+ color: green
+ - type: CartridgeAmmo
+ proto: AnomalousParticleOmegaStrong
healthPerWeakeningeHit: -0.1
stabilityPerWeakeningeHit: -0.2
+- type: entity
+ parent: AnomalousParticleDelta
+ id: AnomalousParticleOmegaStrong
+ noSpawn: true
+ components:
+ - type: Sprite
+ sprite: Objects/Weapons/Guns/Projectiles/magic.rsi
+ layers:
+ - state: magicm_green
+ shader: unshaded
+ - type: AnomalousParticle
+ particleType: Default
+ severityOverride: true
+ severityPerSeverityHit: 0.1
+ stabilityPerDestabilizingHit: 0.05
+ healthPerWeakeningeHit: 1
+ stabilityPerWeakeningeHit: -0.05
+ - type: Projectile
+ impactEffect: BulletImpactEffectKinetic
+ damage:
+ types:
+ Heat: 20
+
# Launcher projectiles (grenade / rocket)
- type: entity
id: BulletRocket
{
"name": "box_security"
},
+ {
+ "name": "box_science"
+ },
{
"name": "box_olive"
},
{
"name": "lighttube"
},
+ {
+ "name": "omegacart"
+ },
{
"name": "magazine"
},
]
]
},
+ {
+ "name": "magicm_green",
+ "delays": [
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ ]
+ },
{
"name": "spell",
"delays": [