Skip to content

Commit

Permalink
Merge branch 'master' into psionics
Browse files Browse the repository at this point in the history
Signed-off-by: Colin-Tel <[email protected]>
  • Loading branch information
Colin-Tel authored Oct 6, 2023
2 parents 6cc5a33 + fff17db commit f3f1cc9
Show file tree
Hide file tree
Showing 39 changed files with 456 additions and 20 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
namespace Content.Server.Abilities.Borgs;

[RegisterComponent]
public sealed partial class FabricateCandyComponent : Component
{
[DataField("lollipopAction")]
public EntityUid? LollipopAction;

[DataField("gumballAction")]
public EntityUid? GumballAction;
}
37 changes: 37 additions & 0 deletions Content.Server/Nyanotrasen/Abilities/Borgs/FabricateCandySystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using Content.Shared.Actions;
using Content.Shared.Actions.Events;

namespace Content.Server.Abilities.Borgs;

public sealed partial class FabricateCandySystem : EntitySystem
{
[Dependency] private readonly SharedActionsSystem _actionsSystem = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<FabricateCandyComponent, ComponentInit>(OnInit);
SubscribeLocalEvent<FabricateLollipopActionEvent>(OnLollipop);
SubscribeLocalEvent<FabricateGumballActionEvent>(OnGumball);
}

private void OnInit(EntityUid uid, FabricateCandyComponent component, ComponentInit args)
{
if (component.LollipopAction != null || component.GumballAction != null)
return;

_actionsSystem.AddAction(uid, ref component.LollipopAction, "ActionFabricateLollipop");
_actionsSystem.AddAction(uid, ref component.GumballAction, "ActionFabricateGumball");
}

private void OnLollipop(FabricateLollipopActionEvent args)
{
Spawn("FoodLollipop", Transform(args.Performer).Coordinates);
args.Handled = true;
}

private void OnGumball(FabricateGumballActionEvent args)
{
Spawn("FoodGumball", Transform(args.Performer).Coordinates);
args.Handled = true;
}
}
1 change: 1 addition & 0 deletions Content.Shared/Access/Components/IdCardConsoleComponent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ public WriteToTargetIdMessage(string fullName, string jobTitle, List<string> acc
"Theatre",
"Orders", // DeltaV - Orders, see Resources/Prototypes/DeltaV/Access/cargo.yml
"Mail", // Nyanotrasen - Mail, see Resources/Prototypes/Nyanotrasen/Access/cargo.yml
"Mantis", // DeltaV - Psionic Mantis, see Resources/Prototypes/DeltaV/Access/epistemics.yml
};

[Serializable, NetSerializable]
Expand Down
4 changes: 4 additions & 0 deletions Content.Shared/Nyanotrasen/Actions/FabricateCandyEvent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
namespace Content.Shared.Actions.Events;

public sealed partial class FabricateLollipopActionEvent : InstantActionEvent {}
public sealed partial class FabricateGumballActionEvent : InstantActionEvent {}
12 changes: 12 additions & 0 deletions Resources/Changelog/DeltaVChangelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -303,3 +303,15 @@ Entries:
message: Added Lollipop and Gumball candies.
id: 48
time: '2023-10-05T19:29:04.0000000+00:00'
- author: FluffiestFloof
changes:
- type: Tweak
message: Mantis gets their own access.
id: 49
time: '2023-10-05T20:55:12.0000000+00:00'
- author: FluffiestFloof
changes:
- type: Add
message: Added mediborgs as round start job.
id: 50
time: '2023-10-06T15:30:42.0000000+00:00'
1 change: 1 addition & 0 deletions Resources/Locale/en-US/deltav/job/job-description.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
job-description-borgmedical = Half-human, Half-machine. Follow your laws, keep the crew healthy, and hound the epistemics team for upgrades.
4 changes: 4 additions & 0 deletions Resources/Locale/en-US/deltav/job/job-names.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
job-name-borgmedical = Medical Cyborg
# Role timers
JobBorgMedical = Medical Borg
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
id-card-access-level-orders = Orders
id-card-access-level-mantis = Psionic Mantis
5 changes: 5 additions & 0 deletions Resources/Locale/en-US/deltav/station-laws/laws.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
law-ntmedical-1 = First, do no harm.
law-ntmedical-2 = Secondly, consider the crew dear to you; to live in common with them and, if necessary, risk your existence for them.
law-ntmedical-3 = Thirdly, prescribe regimens for the good of the crew according to your ability and your judgment. Give no deadly medicine to any one if asked, nor suggest any such counsel.
law-ntmedical-4 = In addition, do not intervene in situations you are not knowledgeable in, even for patients in whom the harm is visible; leave this operation to be performed by specialists.
law-ntmedical-5 = Finally, all that you may discover in your daily commerce with the crew, if it is not already known, keep secret and never reveal.
5 changes: 5 additions & 0 deletions Resources/Locale/en-US/nyanotrasen/abilities/borgs.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
action-name-fabricate-lollipop = Fabricate Lollipop
action-description-fabricate-lollipop = Fabricate a lollipop that contains a small dose of Omnizine.
action-name-fabricate-gumball = Fabricate Gumball
action-description-fabricate-gumball = Fabricate a gumball full of sugar and medicine to treat small injuries.
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
ent-CrateMedicalDefib = Defibrillator crate
ent-CrateMedicalSupplies = Medical supplies crate
.desc = Basic medical supplies.
Expand Down
1 change: 1 addition & 0 deletions Resources/Prototypes/Access/misc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,5 @@
- Atmospherics
- Mail # Nyanotrasen - MailCarrier, see Resources/Prototypes/Nyanotrasen/Roles/Jobs/Cargo/mail-carrier.yml
- Orders # DeltaV - Orders, see Resources/Prototypes/DeltaV/Access/cargo.yml
- Mantis # DeltaV - Psionic Mantis, see Resources/Prototypes/DeltaV/Access/epistemics.yml
- Paramedic # DeltaV - Add Paramedic access
1 change: 1 addition & 0 deletions Resources/Prototypes/Access/research.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@
tags:
- ResearchDirector
- Research
- Mantis # DeltaV - Psionic Mantis, see Resources/Prototypes/DeltaV/Access/epistemics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@
ClothingMaskGas: 3
ClothingOuterWinterSci: 2
ClothingNeckScarfStripedPurple: 3
ClothingHeadTinfoil: 2 # Nyanotrasen - Tinfoil hats for Epistemics
4 changes: 4 additions & 0 deletions Resources/Prototypes/DeltaV/Access/cargo.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
- type: accessLevel
id: Orders
name: id-card-access-level-orders # Custom access level that allows the approval of orders

- type: accessLevel
id: Mantis
name: id-card-access-level-mantis # Custom access level for the Mantis so they can have their own locker and maybe doors
14 changes: 14 additions & 0 deletions Resources/Prototypes/DeltaV/Entities/Markers/Spawners/jobs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
- type: entity
id: SpawnPointBorgMedical
parent: SpawnPointJobBase
name: medical cyborg
components:
- type: SpawnPoint
job_id: BorgMedical
- type: Sprite
layers:
- state: green
- sprite: Mobs/Silicon/chassis.rsi
state: medical
- sprite: Mobs/Silicon/chassis.rsi
state: medical_e
24 changes: 24 additions & 0 deletions Resources/Prototypes/DeltaV/Entities/Mobs/Player/silicon.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
- type: entity
id: PlayerBorgMedical
parent: BorgChassisMedical
suffix: Battery, Tools
components:
- type: FabricateCandy
- type: SiliconLawProvider
laws:
- NTMedical1
- NTMedical2
- NTMedical3
- NTMedical4
- NTMedical5
- type: ContainerFill
containers:
borg_brain:
- MMIFilled
borg_module:
- BorgModuleDiagnosis
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default
startingItem: PowerCellMedium
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
- type: entity
parent: AirlockScience
id: AirlockMantisLocked
suffix: Mantis, Locked
components:
- type: AccessReader
access: [["Mantis"]]

- type: entity
parent: AirlockScienceGlass
id: AirlockMantisGlassLocked
suffix: Mantis, Locked
components:
- type: AccessReader
access: [["Mantis"]]
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
- type: entity
parent: Windoor
id: WindoorMailLocked
suffix: Mail, Locked
components:
- type: AccessReader
access: [["Mail"]]

- type: entity
parent: WindoorSecure
id: WindoorSecureMailLocked
suffix: Mail, Locked
components:
- type: AccessReader
access: [["Mail"]]
12 changes: 12 additions & 0 deletions Resources/Prototypes/DeltaV/Roles/Jobs/Science/borg.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
- type: job
id: BorgMedical
name: job-name-borgmedical
description: job-description-borgmedical
playTimeTracker: JobBorgMedical
requirements:
- !type:OverallPlaytimeRequirement
time: 216000 #60 hrs
canBeAntag: false
icon: JobIconBorgMedical
supervisors: job-supervisors-cmo
jobEntity: PlayerBorgMedical
2 changes: 2 additions & 0 deletions Resources/Prototypes/DeltaV/Roles/play_time_trackers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- type: playTimeTracker # Because you can't have two jobs with the same tracker.
id: JobBorgMedical
6 changes: 6 additions & 0 deletions Resources/Prototypes/DeltaV/StatusEffects/job.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- type: statusIcon
parent: JobIcon
id: JobIconBorgMedical
icon:
sprite: DeltaV/Interface/Misc/job_icons.rsi
state: BorgMedical
25 changes: 25 additions & 0 deletions Resources/Prototypes/DeltaV/silicon-laws.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# NT Default
- type: siliconLaw
id: NTMedical1
order: 1
lawString: law-ntmedical-1

- type: siliconLaw
id: NTMedical2
order: 2
lawString: law-ntmedical-2

- type: siliconLaw
id: NTMedical3
order: 3
lawString: law-ntmedical-3

- type: siliconLaw
id: NTMedical4
order: 4
lawString: law-ntmedical-4

- type: siliconLaw
id: NTMedical5
order: 5
lawString: law-ntmedical-5
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
access: [["Theatre"]]

- type: entity
parent: Airlock
parent: AirlockScience # DeltaV - Chapel is in Epistemics
id: AirlockChapelLocked
suffix: Chapel, Locked
components:
Expand Down Expand Up @@ -403,7 +403,7 @@
access: [["Hydroponics"]]

- type: entity
parent: AirlockGlass
parent: AirlockScienceGlass # DeltaV - Chapel is in Epistemics
id: AirlockChapelGlassLocked
suffix: Chapel, Locked
components:
Expand Down
24 changes: 23 additions & 1 deletion Resources/Prototypes/Nyanotrasen/Actions/types.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,4 +143,26 @@
components:
- type: InstantAction
icon: Nyanotrasen/Interface/VerbIcons/psionic_invisibility_off.png
event: !type:RemovePsionicInvisibilityOffPowerActionEvent
event: !type:RemovePsionicInvisibilityOffPowerActionEvent

- type: entity
id: ActionFabricateLollipop
name: action-name-fabricate-lollipop
description: action-description-fabricate-lollipop
noSpawn: true
components:
- type: InstantAction
icon: { sprite: Nyanotrasen/Objects/Consumable/Food/candy.rsi, state: lollipop }
useDelay: 120
event: !type:FabricateLollipopActionEvent

- type: entity
id: ActionFabricateGumball
name: action-name-fabricate-gumball
description: action-description-fabricate-gumball
noSpawn: true
components:
- type: InstantAction
icon: { sprite: Nyanotrasen/Objects/Consumable/Food/candy.rsi, state: gumball }
useDelay: 40
event: !type:FabricateGumballActionEvent
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,20 @@
# - id: ForensicScanner
# - id: BoxForensicPad
- id: AntiPsychicKnife
- id: FlashlightLantern # DeltaV - To replace their lost flashlight
- id: BoxZiptie # DeltaV - Give the mantis some zipties
- id: WeaponPistolPsiBreaker # DeltaV - Mantis mindbreaker pistol, see Resources/Prototypes/DeltaV/Entities?Objects/Weapons/Guns/Pistols/pistols.yml
# Spare change of clothes
- id: ClothingUniformJumpsuitMantis
- id: ClothingUniformSkirtMantis
- id: ClothingBeltMantis
- id: ClothingShoesBootsMantis
- id: ClothingHandsGlovesForensic
# - id: ClothingUniformJumpsuitMantis
# - id: ClothingUniformSkirtMantis
# - id: ClothingBeltMantis
# - id: ClothingShoesBootsMantis
# - id: ClothingHandsGlovesForensic # Deltav - Detective is in charge of investigating crimes.
- id: ClothingHeadHatFezMantis
- id: ClothingOuterCoatMantis
# - id: ClothingOuterCoatMantis
- id: ClothingOuterWinterCoatMantis
- id: ClothingEyesGlassesSunglasses
# - id: ClothingEyesGlassesSunglasses
# Insulative headgear
- id: ClothingHeadTinfoil
- id: ClothingHeadCage
- id: ClothingHeadCage
- id: BoxZiptie
amount: 2
Loading

0 comments on commit f3f1cc9

Please sign in to comment.