From 93c3b03b114f32bc6d7752cd6505295ce73faede Mon Sep 17 00:00:00 2001 From: PHCodes <47927305+PHCodes@users.noreply.github.com> Date: Sun, 8 Oct 2023 14:07:53 -0400 Subject: [PATCH] Psionics (#44) * Psionics It's a ton of stuff relating to the basic Psionics system and all the powers. I'm saving this as a bit of a sanity check before moving forward. Left to do: 1. Implementing the Psionic faction so that the chat works as intended. 2. Adding the start-state cooldown timers to the actions. * Cleaned up everything with the word 'Psionic' on it. Got the psionic chat working. Got some other stuff working * Some final psionic cleanup. The last batch of content. * Update RobustToolbox * rebased * Revert "Update RobustToolbox" This reverts commit c0cf35d03f828f6ccfeb05fcffd91cf074818fc9. * Update RobustToolbox * Revert "Update RobustToolbox" This reverts commit c4dc828df7912e063ea856b2a83a790bc88d1e09. * Update RobustToolbox * Psionics It's a ton of stuff relating to the basic Psionics system and all the powers. I'm saving this as a bit of a sanity check before moving forward. Left to do: 1. Implementing the Psionic faction so that the chat works as intended. 2. Adding the start-state cooldown timers to the actions. * Cleaned up everything with the word 'Psionic' on it. Got the psionic chat working. Got some other stuff working * Some final psionic cleanup. The last batch of content. * rebased * Cleaned up everything with the word 'Psionic' on it. Got the psionic chat working. Got some other stuff working * Broken Commit With these changes in place, the unit does not work. Recording them so i don't lose my work. * Brings it All Together. Dawn of the final Commit. Rebase completed. * Update RobustToolbox * Changed 'Station Events' to 'StationEvents' and cleaned up the Delta-V Events.yml file of duplicate events. * Delete ghost_roles.yml Duplicate. * Update familiars.yml * Update familiars.yml * Update GlimmerReactiveSystem.cs * Makes tinfoil hats craftable. * Decided I'm not dealing with adding fugitives or Glimmer Wisps right now. * Psionic invisibility won't work now that Eye component exists. Or at least, the integrator test won't psas. * Update special.yml * Added #nyanotrasen code or //Nyanotrasen code to many, many files. * Properly fixes comments. --------- Signed-off-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com> Signed-off-by: PHCodes <47927305+PHCodes@users.noreply.github.com> Co-authored-by: Debug Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com> --- Content.Client/Chat/Managers/ChatManager.cs | 12 +- Content.Client/Chat/Managers/IChatManager.cs | 6 + .../Cartridges/GlimmerMonitorUi.cs | 39 ++ .../Cartridges/GlimmerMonitorUiFragment.xaml | 13 + .../GlimmerMonitorUiFragment.xaml.cs | 116 +++++ .../Chat/PsionicChatUpdateSystem.cs | 32 ++ .../Glimmer/GlimmerReactiveVisuals.cs | 6 + .../Psionics/UI/AcceptPsionicsEUI.cs | 42 ++ .../Psionics/UI/AcceptPsionicsWindow.cs | 62 +++ .../Nyanotrasen/UserInterface/GlimmerGraph.cs | 52 +++ .../Systems/Chat/ChatUIController.cs | 18 +- .../Chat/Controls/ChannelFilterPopup.xaml.cs | 1 + .../Chat/Controls/ChannelSelectorButton.cs | 1 + .../Chat/Controls/ChannelSelectorPopup.cs | 1 + .../Anomaly/AnomalySystem.Psionics.cs | 25 ++ .../Anomaly/AnomalySystem.Vessel.cs | 9 + Content.Server/Anomaly/AnomalySystem.cs | 1 + Content.Server/Chat/Systems/ChatSystem.cs | 11 +- .../Chemistry/ReagentEffects/MakeSentient.cs | 2 + Content.Server/Cloning/CloningSystem.cs | 4 + .../Components/NpcFactionMemberComponent.cs | 8 + .../NPC/Systems/NpcFactionSystem.cs | 3 +- .../Psionics/Abilities/DispelPowerSystem.cs | 140 ++++++ .../Abilities/MetapsionicPowerSystem.cs | 66 +++ .../Psionics/Abilities/MindSwapPowerSystem.cs | 212 +++++++++ .../Abilities/MindSwappedComponent.cs | 18 + .../Abilities/NoosphericZapPowerSystem.cs | 66 +++ .../PsionicInvisibilityPowerSystem.cs | 125 ++++++ .../PsionicRegenerationPowerSystem.cs | 117 +++++ .../Abilities/PyrokinesisPowerSystem.cs | 59 +++ .../Abilities/TelegnosisPowerSystem.cs | 60 +++ .../Psionics/PsionicAbilitiesSystem.cs | 142 ++++++ .../Audio/GlimmerSoundComponent.cs | 24 ++ .../GlimmerMonitorCartridgeComponent.cs | 5 + .../GlimmerMonitorCartridgeSystem.cs | 43 ++ .../Nyanotrasen/Chat/NyanoChatSystem.cs | 128 ++++++ .../Nyanotrasen/Chat/TSayCommand.cs | 43 ++ .../Chat/TelepathicRepeaterComponent.cs | 11 + .../Chemistry/Effects/ChemRemovePsionic.cs | 27 ++ .../Chemistry/Effects/ChemRerollPsionic.cs | 30 ++ .../ChangeGlimmerReactionEffect.cs | 26 ++ .../SolutionRegenerationSwitcherComponent.cs | 20 + .../SolutionRegenerationSwitcherSystem.cs | 97 +++++ .../Faction/ClothingAddFactionComponent.cs | 20 + .../NPC/Systems/FactionSystem.Core.cs | 40 ++ .../NPC/Systems/FactionSystem.Items.cs | 53 +++ .../Nyanotrasen/Psionics/AcceptPsionicsEui.cs | 34 ++ .../Psionics/AntiPsychicWeaponComponent.cs | 24 ++ .../Psionics/Dreams/DreamSystem.cs | 57 +++ .../Psionics/Glimmer/GlimmerCommands.cs | 39 ++ .../Psionics/Glimmer/GlimmerReactiveSystem.cs | 403 ++++++++++++++++++ .../Glimmer/PassiveGlimmerReductionSystem.cs | 80 ++++ .../Structures/GlimmerSourceComponent.cs | 27 ++ .../Structures/GlimmerStructuresSystem.cs | 84 ++++ .../Invisibility/PsionicInvisibilitySystem.cs | 141 ++++++ .../PsionicInvisibleContactsComponent.cs | 19 + .../PsionicInvisibleContactsSystem.cs | 68 +++ .../PsionicallyInvisibleComponent.cs | 6 + .../Psionics/PotentialPsionicComponent.cs | 14 + .../PsionicAwaitingPlayerComponent.cs | 9 + .../Psionics/PsionicBonusChanceComponent.cs | 18 + .../Nyanotrasen/Psionics/PsionicsCommands.cs | 34 ++ .../Nyanotrasen/Psionics/PsionicsSystem.cs | 192 +++++++++ .../Components/FreeProberRuleComponent.cs | 8 + .../Components/GlimmerEventComponent.cs | 34 ++ .../GlimmerRandomSentienceRuleComponent.cs | 10 + .../GlimmerRevenantSpawnRuleComponent.cs | 10 + .../Components/GlimmerWispRuleComponent.cs | 8 + .../Components/MassMindSwapRuleComponent.cs | 13 + .../Components/MidRoundAntagRuleComponent.cs | 16 + .../MidRoundAntagSpawnLocationComponent.cs | 8 + .../MundaneDischargeRuleComponent.cs | 8 + .../Components/NoosphericFryRuleComponent.cs | 8 + .../NoosphericStormRuleComponent.cs | 29 ++ .../Components/NoosphericZapRuleComponent.cs | 8 + .../PsionicCatGotYourTongueRuleComponent.cs | 17 + .../StationEvents/Events/FreeProberRule.cs | 81 ++++ .../Events/GlimmerEventSystem.cs | 34 ++ .../Events/GlimmerRandomSentienceRule.cs | 56 +++ .../Events/GlimmerRevenantSpawnRule.cs | 32 ++ .../Events/GlimmerWispSpawnRule.cs | 58 +++ .../StationEvents/Events/MassMindSwapRule.cs | 77 ++++ .../StationEvents/Events/MidRoundAntagRule.cs | 41 ++ .../Events/MundaneDischargeRule.cs | 10 + .../StationEvents/Events/NoosphericFryRule.cs | 129 ++++++ .../Events/NoosphericStormRule.cs | 58 +++ .../StationEvents/Events/NoosphericZapRule.cs | 54 +++ .../Events/PsionicCatGotYourTongueRule.cs | 50 +++ .../EntitySystems/EventHorizonSystem.cs | 2 + .../StationEvents/EventManagerSystem.cs | 15 +- Content.Server/Store/Systems/StoreSystem.cs | 11 + .../Components/ArtifactAnalyzerComponent.cs | 20 + .../Systems/ArtifactAnalyzerSystem.cs | 17 + Content.Shared.Database/LogType.cs | 2 + Content.Shared/CCVar/CCVars.cs | 26 ++ Content.Shared/Chat/ChatChannel.cs | 7 +- Content.Shared/Chat/ChatSelectChannel.cs | 5 + Content.Shared/Chat/SharedChatSystem.cs | 1 + Content.Shared/Content.Shared.csproj | 3 + Content.Shared/Eye/VisibilityFlags.cs | 1 + Content.Shared/Humanoid/NamingSystem.cs | 4 +- .../Humanoid/Prototypes/SpeciesPrototype.cs | 4 +- .../Abilities/DogVisionComponent.cs | 1 - .../Abilities/AcceptPsionicsEuiMessage.cs | 23 + .../Dispel/DamageOnDispelComponent.cs | 17 + .../Abilities/Dispel/DispelPowerComponent.cs | 20 + .../Abilities/Dispel/DispellableComponent.cs | 6 + .../MassSleep/MassSleepPowerComponent.cs | 18 + .../MassSleep/MassSleepPowerSystem.cs | 59 +++ .../Metapsionics/MetapsionicPowerComponent.cs | 21 + .../MindSwap/MindSwapPowerComponent.cs | 16 + .../NoosphericZapPowerComponent.cs | 17 + .../PsionicInvisibilityPowerComponent.cs | 16 + .../PsionicInvisibilityUsedComponent.cs | 17 + .../PsionicRegenerationPowerComponent.cs | 31 ++ .../Pyrokinesis/PyrokinesisPowerComponent.cs | 18 + .../Telegnosis/TelegnosisPowerComponent.cs | 23 + .../TelegnosticProjectionComponent.cs | 6 + .../ClothingGrantPsionicPowerComponent.cs | 10 + .../Psionics/Items/HeadCageComponent.cs | 28 ++ .../Psionics/Items/HeadCagedComponent.cs | 9 + .../Psionics/Items/PsionicItemsSystem.cs | 81 ++++ .../Psionics/Items/TinfoilHatComponent.cs | 17 + .../Abilities/Psionics/PsionicComponent.cs | 17 + .../Psionics/PsionicInsulationComponent.cs | 10 + .../Psionics/PsionicsDisabledComponent.cs | 11 + .../Psionics/SharedPsionicAbilitiesSystem.cs | 117 +++++ .../Actions/Events/DispelPowerActionEvent.cs | 2 + .../Events/MassSleepPowerActionEvent.cs | 2 + .../Events/MetapsionicPowerActionEvent.cs | 2 + .../Events/MindSwapPowerActionEvent.cs | 3 + .../Events/NoosphericZapPowerActionEvent.cs | 2 + .../PsionicInvisibilityPowerActionEvent.cs | 2 + .../PsionicRegenerationPowerActionEvent.cs | 2 + .../Events/PyrokinesisPowerActionEvent.cs | 2 + ...ePsionicInvisibilityOffPowerActionEvent.cs | 2 + .../Events/TelegnosisPowerActionEvent.cs | 2 + .../Cartridges/GlimmerMonitorUiState.cs | 21 + .../Chapel/SacrificeDoAfterEvent.cs | 9 + .../NoNormalInteractionComponent.cs | 8 + .../Interaction/NoNormalInteractionSystem.cs | 18 + Content.Shared/Nyanotrasen/Psionics/Events.cs | 28 ++ .../Psionics/Glimmer/GlimmerSystem.cs | 65 +++ .../Glimmer/SharedGlimmerReactiveComponent.cs | 41 ++ .../Glimmer/SharedGlimmerReactiveVisuals.cs | 10 + .../Nyanotrasen/Soul/GolemMessages.cs | 61 +++ .../Soul/GunHeldByGolemComponent.cs | 6 + .../Nyanotrasen/Soul/SharedGolemComponent.cs | 5 + .../Nyanotrasen/Soul/SharedGolemSystem.cs | 34 ++ .../en-US/nyanotrasen/abilities/psionic.ftl | 73 ++++ .../en-US/nyanotrasen/chemistry/effects.ftl | 25 ++ .../en-US/nyanotrasen/psionics/death-gasp.ftl | 3 + .../nyanotrasen/psionics/psionic-chat.ftl | 5 + .../nyanotrasen/psionics/psionic-commands.ftl | 8 + .../en-US/nyanotrasen/reagents/psionic.ftl | 5 + .../en-US/nyanotrasen/reagents/toxins.ftl | 3 + .../events/noospheric-storm.ftl | 1 + .../xenoarchaeology/artifact-hints.ftl | 1 + .../Locale/en-US/reagents/meta/medicine.ftl | 2 +- .../Locale/en-US/reagents/meta/toxins.ftl | 2 +- .../DeltaV/Entities/Mobs/NPCs/familiars.yml | 141 ++++++ .../Prototypes/DeltaV/GameRules/events.yml | 3 + .../Prototypes/Entities/Mobs/NPCs/animals.yml | 1 + .../Entities/Mobs/NPCs/regalrat.yml | 1 + .../Prototypes/Entities/Mobs/NPCs/xeno.yml | 3 + .../Entities/Mobs/Player/arachnid.yml | 1 + .../Prototypes/Entities/Mobs/Player/diona.yml | 1 + .../Prototypes/Entities/Mobs/Player/dwarf.yml | 2 + .../Entities/Mobs/Player/familiars.yml | 7 + .../Prototypes/Entities/Mobs/Player/human.yml | 8 + .../Entities/Mobs/Player/humanoid.yml | 3 + .../Prototypes/Entities/Mobs/Player/moth.yml | 4 +- .../Entities/Mobs/Player/reptilian.yml | 2 + .../Entities/Mobs/Player/skeleton.yml | 1 + .../Prototypes/Entities/Mobs/Player/slime.yml | 2 + .../Prototypes/Entities/Mobs/Player/vox.yml | 2 + .../Prototypes/Entities/Mobs/Species/base.yml | 2 + .../Entities/Mobs/Species/human.yml | 1 + .../Xenoarchaeology/item_artifacts.yml | 1 + .../Xenoarchaeology/structure_artifacts.yml | 1 + .../Entities/Structures/Machines/lathe.yml | 2 +- .../Structures/Specific/anomalies.yml | 3 + .../Prototypes/Nyanotrasen/Actions/types.yml | 125 ++++++ .../Prototypes/Nyanotrasen/Damage/types.yml | 6 + .../Clothing/Head/hardsuit-helmets.yml | 20 +- .../Entities/Clothing/Head/hats.yml | 10 +- .../Entities/Clothing/psionic_clothing.yml | 24 +- .../Nyanotrasen/Entities/Mobs/Player/Oni.yml | 2 +- .../Entities/Mobs/Player/felinid.yml | 2 +- .../Entities/Mobs/Player/special.yml | 50 +++ .../Objects/Specific/Medical/pills.yml | 14 + .../Entities/Objects/Tools/fish_labeler.yml | 15 + .../Entities/Objects/Weapons/Melee/knives.yml | 15 +- .../Structures/Research/glimmer_prober.yml | 98 ++--- .../Structures/Research/sophicscribe.yml | 4 +- .../Nyanotrasen/GameRules/events.yml | 135 ++++++ .../Nyanotrasen/Reagents/psionic.yml | 97 ++++- .../Recipes/Crafting/Graphs/fish_labeler.yml | 21 + .../Recipes/Crafting/Graphs/tinfoilhat.yml | 13 + .../Recipes/Crafting/improvised.yml | 25 ++ .../Prototypes/Nyanotrasen/ai_factions.yml | 9 + .../Nyanotrasen/psionicArtifacts.yml | 21 + .../Prototypes/Nyanotrasen/psionicPowers.yml | 10 + .../Prototypes/Nyanotrasen/status_effects.yml | 5 + Resources/Prototypes/Reagents/medicine.yml | 15 +- Resources/Prototypes/Reagents/narcotics.yml | 5 + Resources/Prototypes/Reagents/toxins.yml | 14 +- .../Roles/Jobs/Civilian/chaplain.yml | 6 +- .../Prototypes/Roles/Jobs/Command/captain.yml | 5 + .../Roles/Jobs/Command/head_of_personnel.yml | 5 + .../Roles/Jobs/Engineering/chief_engineer.yml | 5 + .../Jobs/Medical/chief_medical_officer.yml | 5 + .../Roles/Jobs/Security/head_of_security.yml | 5 + .../Aliens/Guardians/guardians.rsi/magic.png | Bin 0 -> 924 bytes .../Guardians/guardians.rsi/magic_base.png | Bin 0 -> 1329 bytes .../Guardians/guardians.rsi/magic_flare.png | Bin 0 -> 1099 bytes .../Aliens/Guardians/guardians.rsi/meta.json | 69 +++ .../Aliens/Guardians/guardians.rsi/miner.png | Bin 0 -> 681 bytes .../Guardians/guardians.rsi/miner_base.png | Bin 0 -> 2776 bytes .../Guardians/guardians.rsi/miner_flare.png | Bin 0 -> 801 bytes .../Aliens/Guardians/guardians.rsi/tech.png | Bin 0 -> 854 bytes .../Guardians/guardians.rsi/tech_base.png | Bin 0 -> 1694 bytes .../Guardians/guardians.rsi/tech_flare.png | Bin 0 -> 930 bytes .../Interface/Paper/passenger_manifest.svg | 85 ++++ .../Paper/passenger_manifest.svg.96dpi.png | Bin 0 -> 10150 bytes .../Interface/VerbIcons/dispel.png | Bin 0 -> 711 bytes .../Interface/VerbIcons/dispel.png.yml | 2 + .../Interface/VerbIcons/license.txt | 13 + .../Interface/VerbIcons/mass_sleep.png | Bin 0 -> 848 bytes .../Interface/VerbIcons/mass_sleep.png.yml | 2 + .../Interface/VerbIcons/metapsionic.png | Bin 0 -> 690 bytes .../Interface/VerbIcons/metapsionic.png.yml | 2 + .../Interface/VerbIcons/mind_swap.png | Bin 0 -> 996 bytes .../Interface/VerbIcons/mind_swap.png.yml | 2 + .../Interface/VerbIcons/mind_swap_return.png | Bin 0 -> 924 bytes .../VerbIcons/mind_swap_return.png.yml | 2 + .../Interface/VerbIcons/noospheric_zap.png | Bin 0 -> 806 bytes .../VerbIcons/noospheric_zap.png.yml | 2 + .../VerbIcons/psionic_invisibility.png | Bin 0 -> 518 bytes .../VerbIcons/psionic_invisibility.png.yml | 2 + .../VerbIcons/psionic_invisibility_off.png | Bin 0 -> 891 bytes .../psionic_invisibility_off.png.yml | 2 + .../VerbIcons/psionic_regeneration.png | Bin 0 -> 732 bytes .../VerbIcons/psionic_regeneration.png.yml | 2 + .../Interface/VerbIcons/pyrokinesis.png | Bin 0 -> 1097 bytes .../Interface/VerbIcons/pyrokinesis.png.yml | 2 + .../Interface/VerbIcons/telegnosis.png | Bin 0 -> 843 bytes .../Interface/VerbIcons/telegnosis.png.yml | 2 + .../Nyanotrasen/Interface/copy_action.png | Bin 0 -> 818 bytes .../Interface/copy_done_reticle.png | Bin 0 -> 225 bytes .../Nyanotrasen/Interface/copy_reticle.png | Bin 0 -> 217 bytes .../Nyanotrasen/Interface/paste_action.png | Bin 0 -> 665 bytes .../Objects/Tools/ifrit_hand.rsi/icon.png | Bin 0 -> 449 bytes .../ifrit_hand.rsi/inhand-left-flame.png | Bin 0 -> 1860 bytes .../Tools/ifrit_hand.rsi/inhand-left.png | Bin 0 -> 99 bytes .../ifrit_hand.rsi/inhand-right-flame.png | Bin 0 -> 1858 bytes .../Tools/ifrit_hand.rsi/inhand-right.png | Bin 0 -> 99 bytes .../Objects/Tools/ifrit_hand.rsi/meta.json | 136 ++++++ .../Tools/ifrit_hand.rsi/welder_flame.png | Bin 0 -> 779 bytes 259 files changed, 6512 insertions(+), 115 deletions(-) create mode 100644 Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUi.cs create mode 100644 Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUiFragment.xaml create mode 100644 Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUiFragment.xaml.cs create mode 100644 Content.Client/Nyanotrasen/Chat/PsionicChatUpdateSystem.cs create mode 100644 Content.Client/Nyanotrasen/Psionics/Glimmer/GlimmerReactiveVisuals.cs create mode 100644 Content.Client/Nyanotrasen/Psionics/UI/AcceptPsionicsEUI.cs create mode 100644 Content.Client/Nyanotrasen/Psionics/UI/AcceptPsionicsWindow.cs create mode 100644 Content.Client/Nyanotrasen/UserInterface/GlimmerGraph.cs create mode 100644 Content.Server/Anomaly/AnomalySystem.Psionics.cs create mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/DispelPowerSystem.cs create mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MetapsionicPowerSystem.cs create mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MindSwapPowerSystem.cs create mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MindSwappedComponent.cs create mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/NoosphericZapPowerSystem.cs create mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PsionicInvisibilityPowerSystem.cs create mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PsionicRegenerationPowerSystem.cs create mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PyrokinesisPowerSystem.cs create mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/TelegnosisPowerSystem.cs create mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/PsionicAbilitiesSystem.cs create mode 100644 Content.Server/Nyanotrasen/Audio/GlimmerSoundComponent.cs create mode 100644 Content.Server/Nyanotrasen/CartridgeLoader/GlimmerMonitorCartridgeComponent.cs create mode 100644 Content.Server/Nyanotrasen/CartridgeLoader/GlimmerMonitorCartridgeSystem.cs create mode 100644 Content.Server/Nyanotrasen/Chat/NyanoChatSystem.cs create mode 100644 Content.Server/Nyanotrasen/Chat/TSayCommand.cs create mode 100644 Content.Server/Nyanotrasen/Chat/TelepathicRepeaterComponent.cs create mode 100644 Content.Server/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs create mode 100644 Content.Server/Nyanotrasen/Chemistry/Effects/ChemRerollPsionic.cs create mode 100644 Content.Server/Nyanotrasen/Chemistry/ReactionEffects/ChangeGlimmerReactionEffect.cs create mode 100644 Content.Server/Nyanotrasen/Chemistry/SolutionRegenerationSwitcher/SolutionRegenerationSwitcherComponent.cs create mode 100644 Content.Server/Nyanotrasen/Chemistry/SolutionRegenerationSwitcher/SolutionRegenerationSwitcherSystem.cs create mode 100644 Content.Server/Nyanotrasen/NPC/Systems/Components/Faction/ClothingAddFactionComponent.cs create mode 100644 Content.Server/Nyanotrasen/NPC/Systems/FactionSystem.Core.cs create mode 100644 Content.Server/Nyanotrasen/NPC/Systems/FactionSystem.Items.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/AcceptPsionicsEui.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/AntiPsychicWeaponComponent.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/Dreams/DreamSystem.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/Glimmer/GlimmerCommands.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/Glimmer/GlimmerReactiveSystem.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/Glimmer/PassiveGlimmerReductionSystem.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/Glimmer/Structures/GlimmerSourceComponent.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/Glimmer/Structures/GlimmerStructuresSystem.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicInvisibilitySystem.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicInvisibleContactsComponent.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicInvisibleContactsSystem.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicallyInvisibleComponent.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/PotentialPsionicComponent.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/PsionicAwaitingPlayerComponent.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/PsionicBonusChanceComponent.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/PsionicsCommands.cs create mode 100644 Content.Server/Nyanotrasen/Psionics/PsionicsSystem.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/FreeProberRuleComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/GlimmerEventComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/GlimmerRandomSentienceRuleComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/GlimmerRevenantSpawnRuleComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/GlimmerWispRuleComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/MassMindSwapRuleComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/MidRoundAntagRuleComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/MidRoundAntagSpawnLocationComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/MundaneDischargeRuleComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/NoosphericFryRuleComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/NoosphericStormRuleComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/NoosphericZapRuleComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Components/PsionicCatGotYourTongueRuleComponent.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Events/FreeProberRule.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Events/GlimmerEventSystem.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Events/GlimmerRandomSentienceRule.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Events/GlimmerRevenantSpawnRule.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Events/GlimmerWispSpawnRule.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Events/MassMindSwapRule.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Events/MidRoundAntagRule.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Events/MundaneDischargeRule.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Events/NoosphericFryRule.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Events/NoosphericStormRule.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Events/NoosphericZapRule.cs create mode 100644 Content.Server/Nyanotrasen/StationEvents/Events/PsionicCatGotYourTongueRule.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/AcceptPsionicsEuiMessage.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Dispel/DamageOnDispelComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Dispel/DispelPowerComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Dispel/DispellableComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MassSleep/MassSleepPowerComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MassSleep/MassSleepPowerSystem.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Metapsionics/MetapsionicPowerComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MindSwap/MindSwapPowerComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/NoosphericZap/NoosphericZapPowerComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityPowerComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityUsedComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/PsionicRegeneration/PsionicRegenerationPowerComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Pyrokinesis/PyrokinesisPowerComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Telegnosis/TelegnosisPowerComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Telegnosis/TelegnosticProjectionComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Items/ClothingGrantPsionicPowerComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Items/HeadCageComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Items/HeadCagedComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Items/PsionicItemsSystem.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Items/TinfoilHatComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/PsionicComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/PsionicInsulationComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/PsionicsDisabledComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/SharedPsionicAbilitiesSystem.cs create mode 100644 Content.Shared/Nyanotrasen/Actions/Events/DispelPowerActionEvent.cs create mode 100644 Content.Shared/Nyanotrasen/Actions/Events/MassSleepPowerActionEvent.cs create mode 100644 Content.Shared/Nyanotrasen/Actions/Events/MetapsionicPowerActionEvent.cs create mode 100644 Content.Shared/Nyanotrasen/Actions/Events/MindSwapPowerActionEvent.cs create mode 100644 Content.Shared/Nyanotrasen/Actions/Events/NoosphericZapPowerActionEvent.cs create mode 100644 Content.Shared/Nyanotrasen/Actions/Events/PsionicInvisibilityPowerActionEvent.cs create mode 100644 Content.Shared/Nyanotrasen/Actions/Events/PsionicRegenerationPowerActionEvent.cs create mode 100644 Content.Shared/Nyanotrasen/Actions/Events/PyrokinesisPowerActionEvent.cs create mode 100644 Content.Shared/Nyanotrasen/Actions/Events/RemovePsionicInvisibilityOffPowerActionEvent.cs create mode 100644 Content.Shared/Nyanotrasen/Actions/Events/TelegnosisPowerActionEvent.cs create mode 100644 Content.Shared/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUiState.cs create mode 100644 Content.Shared/Nyanotrasen/Chapel/SacrificeDoAfterEvent.cs create mode 100644 Content.Shared/Nyanotrasen/Interaction/NoNormalInteractionComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Interaction/NoNormalInteractionSystem.cs create mode 100644 Content.Shared/Nyanotrasen/Psionics/Events.cs create mode 100644 Content.Shared/Nyanotrasen/Psionics/Glimmer/GlimmerSystem.cs create mode 100644 Content.Shared/Nyanotrasen/Psionics/Glimmer/SharedGlimmerReactiveComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Psionics/Glimmer/SharedGlimmerReactiveVisuals.cs create mode 100644 Content.Shared/Nyanotrasen/Soul/GolemMessages.cs create mode 100644 Content.Shared/Nyanotrasen/Soul/GunHeldByGolemComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Soul/SharedGolemComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Soul/SharedGolemSystem.cs create mode 100644 Resources/Locale/en-US/nyanotrasen/abilities/psionic.ftl create mode 100644 Resources/Locale/en-US/nyanotrasen/chemistry/effects.ftl create mode 100644 Resources/Locale/en-US/nyanotrasen/psionics/death-gasp.ftl create mode 100644 Resources/Locale/en-US/nyanotrasen/psionics/psionic-chat.ftl create mode 100644 Resources/Locale/en-US/nyanotrasen/psionics/psionic-commands.ftl create mode 100644 Resources/Locale/en-US/nyanotrasen/reagents/psionic.ftl create mode 100644 Resources/Locale/en-US/nyanotrasen/station-events/events/noospheric-storm.ftl create mode 100644 Resources/Locale/en-US/nyanotrasen/xenoarchaeology/artifact-hints.ftl create mode 100644 Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml create mode 100644 Resources/Prototypes/Nyanotrasen/Damage/types.yml create mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/special.yml create mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Objects/Tools/fish_labeler.yml create mode 100644 Resources/Prototypes/Nyanotrasen/GameRules/events.yml create mode 100644 Resources/Prototypes/Nyanotrasen/Recipes/Crafting/Graphs/fish_labeler.yml create mode 100644 Resources/Prototypes/Nyanotrasen/Recipes/Crafting/Graphs/tinfoilhat.yml create mode 100644 Resources/Prototypes/Nyanotrasen/Recipes/Crafting/improvised.yml create mode 100644 Resources/Prototypes/Nyanotrasen/ai_factions.yml create mode 100644 Resources/Prototypes/Nyanotrasen/psionicArtifacts.yml create mode 100644 Resources/Prototypes/Nyanotrasen/psionicPowers.yml create mode 100644 Resources/Prototypes/Nyanotrasen/status_effects.yml create mode 100644 Resources/Textures/DeltaV/Mobs/Aliens/Guardians/guardians.rsi/magic.png create mode 100644 Resources/Textures/DeltaV/Mobs/Aliens/Guardians/guardians.rsi/magic_base.png create mode 100644 Resources/Textures/DeltaV/Mobs/Aliens/Guardians/guardians.rsi/magic_flare.png create mode 100644 Resources/Textures/DeltaV/Mobs/Aliens/Guardians/guardians.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Mobs/Aliens/Guardians/guardians.rsi/miner.png create mode 100644 Resources/Textures/DeltaV/Mobs/Aliens/Guardians/guardians.rsi/miner_base.png create mode 100644 Resources/Textures/DeltaV/Mobs/Aliens/Guardians/guardians.rsi/miner_flare.png create mode 100644 Resources/Textures/DeltaV/Mobs/Aliens/Guardians/guardians.rsi/tech.png create mode 100644 Resources/Textures/DeltaV/Mobs/Aliens/Guardians/guardians.rsi/tech_base.png create mode 100644 Resources/Textures/DeltaV/Mobs/Aliens/Guardians/guardians.rsi/tech_flare.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/Paper/passenger_manifest.svg create mode 100644 Resources/Textures/Nyanotrasen/Interface/Paper/passenger_manifest.svg.96dpi.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/dispel.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/dispel.png.yml create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/license.txt create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/mass_sleep.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/mass_sleep.png.yml create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/metapsionic.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/metapsionic.png.yml create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/mind_swap.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/mind_swap.png.yml create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/mind_swap_return.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/mind_swap_return.png.yml create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/noospheric_zap.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/noospheric_zap.png.yml create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/psionic_invisibility.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/psionic_invisibility.png.yml create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/psionic_invisibility_off.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/psionic_invisibility_off.png.yml create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/psionic_regeneration.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/psionic_regeneration.png.yml create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/pyrokinesis.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/pyrokinesis.png.yml create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/telegnosis.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/VerbIcons/telegnosis.png.yml create mode 100644 Resources/Textures/Nyanotrasen/Interface/copy_action.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/copy_done_reticle.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/copy_reticle.png create mode 100644 Resources/Textures/Nyanotrasen/Interface/paste_action.png create mode 100644 Resources/Textures/Nyanotrasen/Objects/Tools/ifrit_hand.rsi/icon.png create mode 100644 Resources/Textures/Nyanotrasen/Objects/Tools/ifrit_hand.rsi/inhand-left-flame.png create mode 100644 Resources/Textures/Nyanotrasen/Objects/Tools/ifrit_hand.rsi/inhand-left.png create mode 100644 Resources/Textures/Nyanotrasen/Objects/Tools/ifrit_hand.rsi/inhand-right-flame.png create mode 100644 Resources/Textures/Nyanotrasen/Objects/Tools/ifrit_hand.rsi/inhand-right.png create mode 100644 Resources/Textures/Nyanotrasen/Objects/Tools/ifrit_hand.rsi/meta.json create mode 100644 Resources/Textures/Nyanotrasen/Objects/Tools/ifrit_hand.rsi/welder_flame.png diff --git a/Content.Client/Chat/Managers/ChatManager.cs b/Content.Client/Chat/Managers/ChatManager.cs index 67b5f5202f..18f03cd7db 100644 --- a/Content.Client/Chat/Managers/ChatManager.cs +++ b/Content.Client/Chat/Managers/ChatManager.cs @@ -14,7 +14,7 @@ namespace Content.Client.Chat.Managers [Dependency] private readonly IEntitySystemManager _systems = default!; private ISawmill _sawmill = default!; - + public event Action? PermissionsUpdated; //Nyano - Summary: need to be able to update perms for new psionics. public void Initialize() { _sawmill = Logger.GetSawmill("chat"); @@ -67,9 +67,19 @@ namespace Content.Client.Chat.Managers _consoleHost.ExecuteCommand($"whisper \"{CommandParsing.Escape(str)}\""); break; + //Nyano - Summary: sends the command for telepath communication. + case ChatSelectChannel.Telepathic: + _consoleHost.ExecuteCommand($"tsay \"{CommandParsing.Escape(str)}\""); + break; + default: throw new ArgumentOutOfRangeException(nameof(channel), channel, null); } } + //Nyano - Summary: fires off the update permissions script. + public void UpdatePermissions() + { + PermissionsUpdated?.Invoke(); + } } } diff --git a/Content.Client/Chat/Managers/IChatManager.cs b/Content.Client/Chat/Managers/IChatManager.cs index 6464ca1019..a21a8194fd 100644 --- a/Content.Client/Chat/Managers/IChatManager.cs +++ b/Content.Client/Chat/Managers/IChatManager.cs @@ -7,5 +7,11 @@ namespace Content.Client.Chat.Managers void Initialize(); public void SendMessage(string text, ChatSelectChannel channel); + + /// + /// Nyano - Summary:. Will refresh perms. + /// + event Action PermissionsUpdated; + public void UpdatePermissions(); } } diff --git a/Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUi.cs b/Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUi.cs new file mode 100644 index 0000000000..0b5fc7ad38 --- /dev/null +++ b/Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUi.cs @@ -0,0 +1,39 @@ +using Robust.Client.GameObjects; +using Robust.Client.UserInterface; +using Content.Client.UserInterface.Fragments; +using Content.Shared.CartridgeLoader.Cartridges; +using Content.Shared.CartridgeLoader; + +namespace Content.Client.Nyanotrasen.CartridgeLoader.Cartridges; + +public sealed partial class GlimmerMonitorUi : UIFragment +{ + private GlimmerMonitorUiFragment? _fragment; + + public override Control GetUIFragmentRoot() + { + return _fragment!; + } + + public override void Setup(BoundUserInterface userInterface, EntityUid? fragmentOwner) + { + _fragment = new GlimmerMonitorUiFragment(); + + _fragment.OnSync += _ => SendSyncMessage(userInterface); + } + + public override void UpdateState(BoundUserInterfaceState state) + { + if (state is not GlimmerMonitorUiState monitorState) + return; + + _fragment?.UpdateState(monitorState.GlimmerValues); + } + + private void SendSyncMessage(BoundUserInterface userInterface) + { + var syncMessage = new GlimmerMonitorSyncMessageEvent(); + var message = new CartridgeUiMessage(syncMessage); + userInterface.SendMessage(message); + } +} diff --git a/Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUiFragment.xaml b/Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUiFragment.xaml new file mode 100644 index 0000000000..119a1831e6 --- /dev/null +++ b/Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUiFragment.xaml @@ -0,0 +1,13 @@ + + + +