Syndicate sponge for uplink (#17841)
* Syndicate sponge for uplink * Fix yaml error * Made changes mentioned in review * Made changes according to reviews
This commit is contained in:
@@ -28,8 +28,8 @@ public sealed class RehydratableComponent : Component
|
||||
/// <summary>
|
||||
/// The entity to create when hydrated.
|
||||
/// </summary>
|
||||
[DataField("target", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>)), ViewVariables(VVAccess.ReadWrite)]
|
||||
public string? TargetPrototype = default!;
|
||||
[DataField("possibleSpawns"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public List<string> PossibleSpawns = new();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using Content.Server.Chemistry.Components;
|
||||
using Content.Shared.FixedPoint;
|
||||
using Content.Shared.Popups;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Server.Chemistry.EntitySystems;
|
||||
|
||||
@@ -8,6 +9,7 @@ public sealed class RehydratableSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly SharedPopupSystem _popups = default!;
|
||||
[Dependency] private readonly SolutionContainerSystem _solutions = default!;
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -30,7 +32,10 @@ public sealed class RehydratableSystem : EntitySystem
|
||||
{
|
||||
_popups.PopupEntity(Loc.GetString("rehydratable-component-expands-message", ("owner", uid)), uid);
|
||||
|
||||
var target = Spawn(comp.TargetPrototype, Transform(uid).Coordinates);
|
||||
var randomMob = _random.Pick(comp.PossibleSpawns);
|
||||
|
||||
var target = Spawn(randomMob, Transform(uid).Coordinates);
|
||||
|
||||
Transform(target).AttachToGridOrMap();
|
||||
var ev = new GotRehydratedEvent(target);
|
||||
RaiseLocalEvent(uid, ref ev);
|
||||
|
||||
@@ -15,7 +15,7 @@ uplink-esword-name = Energy Sword
|
||||
uplink-esword-desc = A very dangerous energy sword that can reflect shots. Can be stored in pockets when turned off. Makes a lot of noise when used or turned on.
|
||||
|
||||
uplink-esword-double-name = Double Bladed Energy Sword
|
||||
uplink-esword-double-desc = A much more expensive counter part to the normal energy sword: with a much higher reflection chance, larger attack angle, higher structural damage, and faster swing, all at the cost of lower heat and slash damage. Makes a lot of noise when used or turned on.
|
||||
uplink-esword-double-desc = A much more expensive counter part to the normal energy sword: with a much higher reflection chance, larger attack angle, higher structural damage, and faster swing, all at the cost of lower heat and slash damage. Makes a lot of noise when used or turned on.
|
||||
|
||||
uplink-edagger-name = Energy Dagger
|
||||
uplink-edagger-desc = A small energy blade conveniently disguised in the form of a pen.
|
||||
@@ -234,6 +234,9 @@ uplink-stimkit-desc = A medkit containing 6 stimulant microinjectors, which each
|
||||
uplink-syndicate-segway-crate-name = Syndicate Segway
|
||||
uplink-syndicate-segway-crate-desc = Be an enemy of the corporation, in style!
|
||||
|
||||
uplink-syndicate-sponge-box-name = Syndicate Sponge Box
|
||||
uplink-syndicate-sponge-box-desc = A box containing 6 syndicate sponges disguised as monkey cubes, these cubes turn into a variety of angry wildlife after coming into contact with water.
|
||||
|
||||
# Pointless
|
||||
uplink-revolver-cap-gun-name = Cap Gun
|
||||
uplink-revolver-cap-gun-desc = Looks almost like the real thing! Ages 8 and up.
|
||||
|
||||
@@ -926,6 +926,17 @@
|
||||
components:
|
||||
- SurplusBundle
|
||||
|
||||
- type: listing
|
||||
id: UplinkSyndicateSpongeBox
|
||||
name: uplink-syndicate-sponge-box-name
|
||||
description: uplink-syndicate-sponge-box-desc
|
||||
icon: { sprite: Objects/Misc/monkeycube.rsi, state: box}
|
||||
productEntity: SyndicateSpongeBox
|
||||
cost:
|
||||
Telecrystal: 6
|
||||
categories:
|
||||
- UplinkMisc
|
||||
|
||||
# Pointless
|
||||
|
||||
- type: listing
|
||||
|
||||
@@ -35,3 +35,42 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- MonkeyCube
|
||||
|
||||
- type: entity
|
||||
parent: BoxCardboard
|
||||
name: monkey cube box
|
||||
suffix: Syndicate
|
||||
id: SyndicateSpongeBox
|
||||
description: Drymate brand monkey cubes. Just add water!
|
||||
components:
|
||||
- type: Storage
|
||||
whitelist:
|
||||
tags:
|
||||
- MonkeyCube
|
||||
capacity: 30
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: SyndicateSpongeWrapped
|
||||
amount: 6
|
||||
- type: Sprite
|
||||
sprite: Objects/Misc/monkeycube.rsi
|
||||
state: box
|
||||
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
name: monkey cube
|
||||
suffix: Wrapped, Syndicate
|
||||
id: SyndicateSpongeWrapped
|
||||
description: Unwrap this to get a monkey cube.
|
||||
components:
|
||||
- type: SpawnItemsOnUse
|
||||
items:
|
||||
- id: SyndicateSponge
|
||||
sound:
|
||||
path: /Audio/Effects/unwrap.ogg
|
||||
- type: Sprite
|
||||
sprite: Objects/Misc/monkeycube.rsi
|
||||
state: wrapper
|
||||
- type: Tag
|
||||
tags:
|
||||
- MonkeyCube
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
- !type:AddToSolutionReaction
|
||||
solution: cube
|
||||
- type: Rehydratable
|
||||
target: MobMonkey
|
||||
possibleSpawns:
|
||||
- MobMonkey
|
||||
- type: CollisionWake
|
||||
enabled: false
|
||||
- type: Fixtures
|
||||
@@ -69,7 +70,8 @@
|
||||
- !type:AddToSolutionReaction
|
||||
solution: plushie
|
||||
- type: Rehydratable
|
||||
target: MobCarp
|
||||
possibleSpawns:
|
||||
- MobCarp
|
||||
- type: CollisionWake
|
||||
enabled: false
|
||||
- type: Physics
|
||||
@@ -99,3 +101,62 @@
|
||||
handle: false
|
||||
sound:
|
||||
path: /Audio/Effects/bite.ogg
|
||||
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
id: SyndicateSponge
|
||||
name: monkey cube
|
||||
suffix: Syndicate
|
||||
description: Just add water!
|
||||
components:
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
cube:
|
||||
maxVol: 11 # needs room for water
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 10
|
||||
- type: Food
|
||||
solution: cube
|
||||
- type: RefillableSolution
|
||||
solution: cube
|
||||
- type: Sprite
|
||||
sprite: Objects/Misc/monkeycube.rsi
|
||||
state: cube
|
||||
- type: Reactive
|
||||
reactions:
|
||||
- reagents: [Water]
|
||||
methods: [Touch, Ingestion, Injection]
|
||||
effects:
|
||||
- !type:AddToSolutionReaction
|
||||
solution: cube
|
||||
- type: Rehydratable
|
||||
possibleSpawns:
|
||||
- MobRatServant
|
||||
- MobCarpHolo
|
||||
- MobXenoRavager
|
||||
- MobAngryBee
|
||||
- MobAdultSlimesYellowAngry
|
||||
- MobSpiderSpace
|
||||
- MobBearSpace
|
||||
- MobPurpleSnake
|
||||
- MobKangarooSpace
|
||||
- MobTick
|
||||
- type: CollisionWake
|
||||
enabled: false
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.3,-0.3,0.3,0.3"
|
||||
density: 5
|
||||
mask:
|
||||
- ItemMask
|
||||
rehydrate:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.3,-0.3,0.3,0.3"
|
||||
hard: false
|
||||
layer:
|
||||
- LowImpassable
|
||||
|
||||
Reference in New Issue
Block a user