From 4c635eb16036e401cb8f8dc41ec712c4260ec49d Mon Sep 17 00:00:00 2001 From: Leonardo Date: Sun, 12 Jan 2025 06:00:12 +1000 Subject: [PATCH] adds basic features adds the basic things required for this role to function, but still missing many features --- .../Roles/PsiCultistRoleComponent.cs | 11 ++++ .../Locale/en-US/prototypes/roles/antags.ftl | 3 ++ Resources/Locale/en-US/psicult/role.ftl | 6 +++ .../DeltaV/Objectives/psi-cultist.yml | 52 +++++++++++++++++++ .../DeltaV/Roles/Antags/psi-cultist.yml | 18 +++++++ .../Prototypes/Objectives/objectiveGroups.yml | 21 ++++++++ .../Prototypes/Roles/MindRoles/mind_roles.yml | 12 +++++ 7 files changed, 123 insertions(+) create mode 100644 Content.Server/Roles/PsiCultistRoleComponent.cs create mode 100644 Resources/Locale/en-US/psicult/role.ftl create mode 100644 Resources/Prototypes/DeltaV/Objectives/psi-cultist.yml create mode 100644 Resources/Prototypes/DeltaV/Roles/Antags/psi-cultist.yml diff --git a/Content.Server/Roles/PsiCultistRoleComponent.cs b/Content.Server/Roles/PsiCultistRoleComponent.cs new file mode 100644 index 00000000000..c9bf73be633 --- /dev/null +++ b/Content.Server/Roles/PsiCultistRoleComponent.cs @@ -0,0 +1,11 @@ +using Content.Shared.Roles; + +namespace Content.Server.Roles; + +/// +/// Added to mind role entities to tag that they are a psi cultist. +/// +[RegisterComponent] +public sealed partial class PsiCultistRoleComponent : BaseMindRoleComponent +{ +} diff --git a/Resources/Locale/en-US/prototypes/roles/antags.ftl b/Resources/Locale/en-US/prototypes/roles/antags.ftl index ba43d4ff85b..c40c7b731ff 100644 --- a/Resources/Locale/en-US/prototypes/roles/antags.ftl +++ b/Resources/Locale/en-US/prototypes/roles/antags.ftl @@ -36,3 +36,6 @@ roles-antag-thief-objective = Add some NT property to your personal collection w roles-antag-dragon-name = Space Dragon roles-antag-dragon-objective = Create a carp army to take over this quadrant. + +roles-antag-psi-cultist-name = Psi Cultist +roles-antag-psi-cultist-objective = Complete the objectives assigned to you by your psionic leader. \ No newline at end of file diff --git a/Resources/Locale/en-US/psicult/role.ftl b/Resources/Locale/en-US/psicult/role.ftl new file mode 100644 index 00000000000..018ef3fd21e --- /dev/null +++ b/Resources/Locale/en-US/psicult/role.ftl @@ -0,0 +1,6 @@ +objective-issuer-psi-cult = [color=#fbf8ef]Church of the Mind Ascendant[/color] + +psi-cult-role-greeting = + You are a desciple in the Church of the Mind Ascendant. + Your leader has told you that the brain is but a seed begging for psionic nourishment. + Advance the goals of your church so that all may reach their true psionic potential. diff --git a/Resources/Prototypes/DeltaV/Objectives/psi-cultist.yml b/Resources/Prototypes/DeltaV/Objectives/psi-cultist.yml new file mode 100644 index 00000000000..cbeacfb5ede --- /dev/null +++ b/Resources/Prototypes/DeltaV/Objectives/psi-cultist.yml @@ -0,0 +1,52 @@ +- type: entity + abstract: true + parent: BaseObjective + id: BasePsiCultistObjective + components: + - type: Objective + issuer: objective-issuer-psi-cult + - type: RoleRequirement + roles: + mindRoles: + - PsiCultistRole + +- type: entity #un1984ing this and putting it in this file for ease of organization + id: BecomePsionicObjective + parent: BasePsiCultistObjective + name: Become psionic + description: We need you to acquire psionics and keep them until your mission is complete. + components: + - type: NotJobsRequirement + jobs: + - Mime + - ForensicMantis + - type: Objective + difficulty: 2.5 + #unique: false + icon: + sprite: Nyanotrasen/Icons/psi.rsi + state: psi +# still 1984ing the next four lines until golems get reimplimented next week +# - type: ObjectiveBlacklistRequirement +# blacklist: +# components: +# - BecomeGolemCondition + - type: BecomePsionicCondition + +- type: entity + id: RaiseGlimmerObjective + parent: BasePsiCultistObjective + name: Raise Glimmer. + description: Get the glimmer above the specified amount. + components: + - type: Objective + difficulty: 2.5 + #unique: false + icon: + sprite: Nyanotrasen/Icons/psi.rsi + state: psi + - type: RaiseGlimmerCondition + target: 500 + + +#TODO: add Make Other Person Psionic objective, Unlock Your Full Potential objective (not possible until you can have multiple powers at once) \ No newline at end of file diff --git a/Resources/Prototypes/DeltaV/Roles/Antags/psi-cultist.yml b/Resources/Prototypes/DeltaV/Roles/Antags/psi-cultist.yml new file mode 100644 index 00000000000..d1ec53fb36f --- /dev/null +++ b/Resources/Prototypes/DeltaV/Roles/Antags/psi-cultist.yml @@ -0,0 +1,18 @@ +- type: antag + id: PsiCultist + name: roles-antag-psi-cultist-name + antagonist: true + setPreference: true + objective: roles-antag-psi-cultist-objective + guides: [ Psi Cultists ] + requirements: # DeltaV - Playtime requirement + - !type:OverallPlaytimeRequirement + time: 86400 # DeltaV - 24 hours + +#TODO +# - type: startingGear +# id: PsiCultistGear +# storage: +# back: +# - CultSymbol #this will be a pin or necklace with the symbol of the cult +# - CultHolyBook #this will be a book with the cult 'codewords' in it. Having the codewords as a physical item means the cult can be potentially infiltrated by the mantis for example (this means more mantis gameplay) diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index f2f26946e5c..7bb57e57ab6 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -129,3 +129,24 @@ weights: EscapeThiefShuttleObjective: 1 #Changeling, crew, wizard, when you code it... + +#psi cultist deltav +- type: weightedRandom + id: PsiCultistObjectiveGroups + weights: + PsiCultistObjectiveGroupPsionic: 1 + PsiCultistObjectiveGroupSteal: 0.5 + #TODO PsiCultistObjectiveGroupSocial: 1 + #TODO PsiCultistObjectiveGroupKill: 0.5 + +- type: weightedRandom + id: PsiCultistObjectiveGroupPsionic + weights: + BecomePsionicObjective: 1 + RaiseGlimmerObjective: 1 + +- type: weightedRandom + id: PsiCultistObjectiveGroupSteal + weights: + MantisKnifeStealObjective: 1 + diff --git a/Resources/Prototypes/Roles/MindRoles/mind_roles.yml b/Resources/Prototypes/Roles/MindRoles/mind_roles.yml index 926ce512b41..25f94652cb8 100644 --- a/Resources/Prototypes/Roles/MindRoles/mind_roles.yml +++ b/Resources/Prototypes/Roles/MindRoles/mind_roles.yml @@ -180,3 +180,15 @@ antagPrototype: Zombie exclusiveAntag: true - type: ZombieRole + +# Psi Cultist #DeltaV +- type: entity + parent: BaseMindRoleAntag + id: MindRolePsiCultist + name: Traitor Role +# description: mind-role-traitor-description + components: + - type: MindRole + antagPrototype: PsiCultist + exclusiveAntag: true + - type: PsiCultistRole \ No newline at end of file