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>
|
/// <summary>
|
||||||
/// The entity to create when hydrated.
|
/// The entity to create when hydrated.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[DataField("target", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>)), ViewVariables(VVAccess.ReadWrite)]
|
[DataField("possibleSpawns"), ViewVariables(VVAccess.ReadWrite)]
|
||||||
public string? TargetPrototype = default!;
|
public List<string> PossibleSpawns = new();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using Content.Server.Chemistry.Components;
|
using Content.Server.Chemistry.Components;
|
||||||
using Content.Shared.FixedPoint;
|
using Content.Shared.FixedPoint;
|
||||||
using Content.Shared.Popups;
|
using Content.Shared.Popups;
|
||||||
|
using Robust.Shared.Random;
|
||||||
|
|
||||||
namespace Content.Server.Chemistry.EntitySystems;
|
namespace Content.Server.Chemistry.EntitySystems;
|
||||||
|
|
||||||
@@ -8,6 +9,7 @@ public sealed class RehydratableSystem : EntitySystem
|
|||||||
{
|
{
|
||||||
[Dependency] private readonly SharedPopupSystem _popups = default!;
|
[Dependency] private readonly SharedPopupSystem _popups = default!;
|
||||||
[Dependency] private readonly SolutionContainerSystem _solutions = default!;
|
[Dependency] private readonly SolutionContainerSystem _solutions = default!;
|
||||||
|
[Dependency] private readonly IRobustRandom _random = default!;
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
@@ -30,7 +32,10 @@ public sealed class RehydratableSystem : EntitySystem
|
|||||||
{
|
{
|
||||||
_popups.PopupEntity(Loc.GetString("rehydratable-component-expands-message", ("owner", uid)), uid);
|
_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();
|
Transform(target).AttachToGridOrMap();
|
||||||
var ev = new GotRehydratedEvent(target);
|
var ev = new GotRehydratedEvent(target);
|
||||||
RaiseLocalEvent(uid, ref ev);
|
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-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-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-name = Energy Dagger
|
||||||
uplink-edagger-desc = A small energy blade conveniently disguised in the form of a pen.
|
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-name = Syndicate Segway
|
||||||
uplink-syndicate-segway-crate-desc = Be an enemy of the corporation, in style!
|
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
|
# Pointless
|
||||||
uplink-revolver-cap-gun-name = Cap Gun
|
uplink-revolver-cap-gun-name = Cap Gun
|
||||||
uplink-revolver-cap-gun-desc = Looks almost like the real thing! Ages 8 and up.
|
uplink-revolver-cap-gun-desc = Looks almost like the real thing! Ages 8 and up.
|
||||||
|
|||||||
@@ -926,6 +926,17 @@
|
|||||||
components:
|
components:
|
||||||
- SurplusBundle
|
- 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
|
# Pointless
|
||||||
|
|
||||||
- type: listing
|
- type: listing
|
||||||
|
|||||||
@@ -35,3 +35,42 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- MonkeyCube
|
- 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
|
- !type:AddToSolutionReaction
|
||||||
solution: cube
|
solution: cube
|
||||||
- type: Rehydratable
|
- type: Rehydratable
|
||||||
target: MobMonkey
|
possibleSpawns:
|
||||||
|
- MobMonkey
|
||||||
- type: CollisionWake
|
- type: CollisionWake
|
||||||
enabled: false
|
enabled: false
|
||||||
- type: Fixtures
|
- type: Fixtures
|
||||||
@@ -69,7 +70,8 @@
|
|||||||
- !type:AddToSolutionReaction
|
- !type:AddToSolutionReaction
|
||||||
solution: plushie
|
solution: plushie
|
||||||
- type: Rehydratable
|
- type: Rehydratable
|
||||||
target: MobCarp
|
possibleSpawns:
|
||||||
|
- MobCarp
|
||||||
- type: CollisionWake
|
- type: CollisionWake
|
||||||
enabled: false
|
enabled: false
|
||||||
- type: Physics
|
- type: Physics
|
||||||
@@ -99,3 +101,62 @@
|
|||||||
handle: false
|
handle: false
|
||||||
sound:
|
sound:
|
||||||
path: /Audio/Effects/bite.ogg
|
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