Holoclown (clown only) syndicate uplink item. (#18966)

* Holoclown (clown only) syndicate uplink item.

* added clumsy to holoclown

* holoclown now uses clown names, holoclown kits box now counts as boxhugs for crafting.

* gibs holoparasite on death if has hands (this will cause the items in hands and pockets to drop.
This commit is contained in:
brainfood1183
2023-08-13 08:18:09 +01:00
committed by GitHub
parent 642d9b021f
commit ae5dcbabee
16 changed files with 204 additions and 4 deletions

View File

@@ -1,4 +1,6 @@
using Content.Server.Inventory;
using Content.Server.Popups;
using Content.Server.Body.Systems;
using Content.Shared.Actions;
using Content.Shared.Audio;
using Content.Shared.Damage;
@@ -14,6 +16,7 @@ using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.Player;
using Robust.Shared.Utility;
using Content.Shared.Hands.Components;
namespace Content.Server.Guardian
{
@@ -28,6 +31,7 @@ namespace Content.Server.Guardian
[Dependency] private readonly SharedActionsSystem _actionSystem = default!;
[Dependency] private readonly SharedHandsSystem _handsSystem = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly BodySystem _bodySystem = default!;
public override void Initialize()
{
@@ -94,6 +98,9 @@ namespace Content.Server.Guardian
if (component.HostedGuardian == null)
return;
if (HasComp<HandsComponent>(component.HostedGuardian.Value))
_bodySystem.GibBody(component.HostedGuardian.Value);
EntityManager.QueueDeleteEntity(component.HostedGuardian.Value);
_actionSystem.RemoveAction(uid, component.Action);
}

View File

@@ -94,6 +94,9 @@ ghost-role-information-guardian-description = Listen to your owner. Don't tank d
ghost-role-information-holoparasite-name = Holoparasite
ghost-role-information-holoparasite-description = Listen to your owner. Don't tank damage. Punch people hard.
ghost-role-information-holoclown-name = Holoclown
ghost-role-information-holoclown-description = Listen to your owner. Utilize your pockets and hand to help your owner.
ghost-role-information-ifrit-name = Ifrit
ghost-role-information-ifrit-description = Listen to your owner. Don't tank damage. Punch people hard.

View File

@@ -84,6 +84,10 @@ uplink-holopara-kit-name = Holoparasite Kit
uplink-holopara-kit-desc = The pride and joy of Cybersun. Contains an injector that hosts a sentient metaphysical guardian made of hard light which resides in the user's body when not active.
The guardian can punch rapidly and is immune to hazardous environments while being resistant to direct trauma, but shares any damage it takes with the user.
uplink-holoclown-kit-name = Holoclown Kit
uplink-holoclown-kit-desc = A joint venture between Cybersun and Honk.co. Contains an injector that hosts a sentient metaphysical clown made of hard light which resides in the user's body when not active.
The holoclown has pockets to store things, a hardlight hand it can manipulate the environment with and is immune to hazardous environments while being resistant to direct trauma, but shares any damage it takes with the user.
uplink-holster-name = Shoulder Holster
uplink-holster-desc = A deep shoulder holster capable of holding many types of ballistics.

View File

@@ -922,6 +922,21 @@
whitelist:
- Clown
- type: listing
id: UplinkHoloclownKit
name: uplink-holoclown-kit-name
description: uplink-holoclown-kit-desc
icon: { sprite: /Textures/Objects/Fun/figurines.rsi, state: holoclown }
productEntity: BoxHoloclown
cost:
Telecrystal: 12
categories:
- UplinkJob
conditions:
- !type:BuyerJobCondition
whitelist:
- Clown
- type: listing
id: uplinkHotPotato
name: uplink-hot-potato-name

View File

@@ -151,3 +151,76 @@
map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ]
color: "#40a7d7"
shader: unshaded
- type: entity
name: HoloClown
id: MobHoloClownGuardian
parent: MobGuardianBase
description: A mesmerising whirl of hard-light patterns weaves a blue colored clown of dubious origin.
components:
- type: GhostRole
allowMovement: true
allowSpeech: true
makeSentient: true
name: ghost-role-information-holoclown-name
description: ghost-role-information-holoclown-description
- type: GhostTakeoverAvailable
- type: NameIdentifier
group: Holoparasite
- type: FootstepModifier
footstepSoundCollection:
collection: FootstepClown
- type: TypingIndicator
proto: holo
- type: RandomSprite
available:
- enum.DamageStateVisualLayers.Base:
holoclown_base: ""
enum.DamageStateVisualLayers.BaseUnshaded:
holoclown_flare: Sixteen
- enum.DamageStateVisualLayers.Base:
holoclown_base: ""
enum.DamageStateVisualLayers.BaseUnshaded:
holoclown_flare: Sixteen
- enum.DamageStateVisualLayers.Base:
holoclown_base: ""
enum.DamageStateVisualLayers.BaseUnshaded:
holoclown_flare: Sixteen
- type: Sprite
layers:
- state: holoclown_base
map: [ "enum.DamageStateVisualLayers.Base" ]
- state: holoclown_flare
map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ]
color: "#8adaff"
shader: unshaded
- type: Body
prototype: Primate
- type: Tag
tags:
- CannotSuicide
- FootstepSound
- type: Inventory
templateId: holoclown
- type: Hands
- type: Clumsy
clumsyDamage:
types:
Blunt: 5
Piercing: 4
groups:
Burn: 3
- type: InventorySlots
- type: MeleeWeapon
hidden: true
angle: 30
animation: WeaponArcFist
attackRate: 1.8
damage:
types:
Blunt: 5
- type: Loadout
prototypes: [ HoloClownGear ]
- type: RandomMetadata
nameSegments:
- names_clown

View File

@@ -371,7 +371,6 @@
- names_first
- names_last
- type: randomHumanoidSettings
id: Cluwne
randomizeName: false

View File

@@ -10,6 +10,15 @@
- type: GuardianCreator
guardianProto: MobHoloparasiteGuardian
- type: entity
name: holoclown injector
parent: HoloparasiteInjector
id: HoloClownInjector
description: A complex artwork of handheld machinery allowing the user to host a holoclown guardian.
components:
- type: GuardianCreator
guardianProto: MobHoloClownGuardian
- type: entity
name: magical lamp
id: MagicalLamp
@@ -38,3 +47,22 @@
layers:
- state: box
- state: holo
- type: entity
name: holoclown box
parent: BoxCardboard
id: BoxHoloclown
description: A box containing a holoclown injector
components:
- type: StorageFill
contents:
- id: HoloClownInjector
- id: ToyFigurineHoloClown
- id: ToyHammer
- type: Sprite
layers:
- state: box_hug
- state: holo
- type: Tag
tags:
- BoxHug

View File

@@ -53,7 +53,17 @@
components:
- type: Sprite
state: clown
- type: entity
parent: BaseFigurine
id: ToyFigurineHoloClown
name: holoclown figure
description: A figurine depicting a holoclown. Even more annoying than a clown and no less real.
components:
- type: Sprite
state: holoclown
- type: entity
parent: BaseFigurine
id: ToyFigurineMime

View File

@@ -0,0 +1,22 @@
- type: inventoryTemplate
id: holoclown
slots:
- name: pocket1
slotTexture: pocket
slotFlags: POCKET
slotGroup: MainHotbar
stripTime: 3
uiWindowPos: 0,3
strippingWindowPos: 0,4
displayName: Pocket 1
stripHidden: true
- name: pocket2
slotTexture: pocket
slotFlags: POCKET
slotGroup: MainHotbar
stripTime: 3
uiWindowPos: 2,3
strippingWindowPos: 1,4
displayName: Pocket 2
stripHidden: true

View File

@@ -8,3 +8,9 @@
id: CluwnePDA
gloves: ClothingHandsGlovesCluwne
pocket1: CluwneHorn
- type: startingGear
id: HoloClownGear
equipment:
pocket1: BikeHorn

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-NC-SA-3.0",
"copyright": "taken from /tg/ station at commit https://github.com/tgstation/tgstation/commit/02756c2bc2cf3000080d030955e994242bab39b5",
"copyright": "taken from /tg/ station at commit https://github.com/tgstation/tgstation/commit/02756c2bc2cf3000080d030955e994242bab39b5, holoclown made by brainfood1183 (github)",
"size": {
"x": 32,
"y": 32
@@ -27,6 +27,36 @@
"name": "magic_base",
"directions": 4
},
{
"name": "holoclown",
"directions": 4
},
{
"name": "holoclown_base",
"directions": 4
},
{
"name": "holoclown_flare",
"directions": 4,
"delays": [
[
0.1,
0.1
],
[
0.1,
0.1
],
[
0.1,
0.1
],
[
0.1,
0.1
]
]
},
{
"name": "miner_flare",
"directions": 4

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Sprites made by Flareguy for Space Station 14. Griffinprize, skeletonprize, and owlprize taken from /tg/station at commit https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432. Figurine_spawner sprite made using parts found in spawner_icons.dmi from Paradise Station at commit https://github.com/ParadiseSS13/Paradise/commit/813f0a3ae556d86dddd7c4ef93a52880de8d2e37. Head sprites excluding Captain, Medical exluding doctor, non-human excluding queen and slime, and service jobs excluding librarian done by tacobeller.",
"copyright": "Sprites made by Flareguy for Space Station 14. Griffinprize, skeletonprize, and owlprize taken from /tg/station at commit https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432. Figurine_spawner sprite made using parts found in spawner_icons.dmi from Paradise Station at commit https://github.com/ParadiseSS13/Paradise/commit/813f0a3ae556d86dddd7c4ef93a52880de8d2e37. Head sprites excluding Captain, Medical exluding doctor, non-human excluding queen and slime, and service jobs excluding librarian done by tacobeller and holoclown done by brainfood1183.",
"size": {
"x": 32,
"y": 32
@@ -19,6 +19,9 @@
{
"name": "passenger"
},
{
"name": "holoclown"
},
{
"name": "passenger_greytide"
},