diff --git a/Content.Goobstation.Common/Silicons/Components/ExperimentalLawProviderComponent.cs b/Content.Goobstation.Common/Silicons/Components/ExperimentalLawProviderComponent.cs index b388a8c5a9a..82703202eff 100644 --- a/Content.Goobstation.Common/Silicons/Components/ExperimentalLawProviderComponent.cs +++ b/Content.Goobstation.Common/Silicons/Components/ExperimentalLawProviderComponent.cs @@ -12,7 +12,11 @@ public sealed partial class ExperimentalLawProviderComponent : Component [DataField] public string RandomLawsets = "IonStormLawsets"; // buffed point amounts 3x so people will actually use this; 30k in two minutes seems ok to me (triples points per second from ~80 to ~240)- strong but takes a lot of setup by RD (and stealing the AI upload console) - [DataField] public float RewardTime = 120.0f; + [DataField] public float RewardTime = 300.0f; // Arcane-Edit - [DataField] public int RewardPoints = 30000; + // Arcane-Edit-Start + //[DataField] public int RewardPoints = 30000; + [DataField] public int MinRewardPoints = 10; + [DataField] public int MaxRewardPoints = 15001; +// Arcane-Edit-End } diff --git a/Content.Server/Silicons/Laws/SiliconLawSystem.cs b/Content.Server/Silicons/Laws/SiliconLawSystem.cs index 9926908cee7..0c3726d3165 100644 --- a/Content.Server/Silicons/Laws/SiliconLawSystem.cs +++ b/Content.Server/Silicons/Laws/SiliconLawSystem.cs @@ -35,6 +35,7 @@ using Content.Shared.Research.Components; using Content.Server.Radio.EntitySystems; using Content.Server.Research.Systems; +using Robust.Shared.Timing; // Corvax-Next-AiRemoteControl using Content.Shared.Silicons.StationAi; @@ -181,7 +182,7 @@ private void OnIonStormLaws(EntityUid uid, SiliconLawProviderComponent component component.Subverted = true; // new laws may allow antagonist behaviour so make it clear for admins - if(_mind.TryGetMind(uid, out var mindId, out _)) + if (_mind.TryGetMind(uid, out var mindId, out _)) EnsureSubvertedSiliconRole(mindId); } @@ -423,7 +424,11 @@ private void ApplyExperimentalLaws(Entity ent, Entit var activeProv = EnsureComp(ent); activeProv.Timer = experiment.Comp1.RewardTime; - activeProv.RewardPoints = experiment.Comp1.RewardPoints; + /*Arcane-Edit-Start + activeProv.RewardPoints = experiment.Comp1.RewardPoints;*/ + activeProv.RewardPoints = _robustRandom.Next(experiment.Comp1.MinRewardPoints, experiment.Comp1.MaxRewardPoints + 1); + //Arcane-Edit-End + activeProv.OldSiliconLawsetId = ent.Comp.LastLawset; var message = Loc.GetString("experimental-law-provider-start", ("timeLeft", (int) experiment.Comp1.RewardTime)); diff --git a/Resources/Locale/ru-RU/_Arcane/research/experiements.ftl b/Resources/Locale/ru-RU/_Arcane/research/experiements.ftl new file mode 100644 index 00000000000..10b02891f27 --- /dev/null +++ b/Resources/Locale/ru-RU/_Arcane/research/experiements.ftl @@ -0,0 +1,16 @@ +research-experiment-scanning-reagent-gun-name = Сканирование оружия +research-experiment-scanning-reagent-gun-desc = Сборка оружия позволяет узнать их слабые стороны и пересобрать в будущем. Отсканируйте 2 эксземпляра. +research-experiment-scanning-riotshield-name = Композитный щит подавления +research-experiment-scanning-riotshield-desc = Щит содержит слоистый композит, способный рассеивать энергию. Для усиления защиты нужен анализ структуры. Соберите щит и отсканируйте его. +research-experiment-scanning-ripley-name = Тяжёлый экзоскелет Рипли +research-experiment-scanning-ripley-desc = Механический экзоскелет Рипли использует сервоприводы нового поколения. Для улучшения маневренности необходим анализ гидравлики. Соберите Рипли и отсканируйте его. +research-experiment-scanning-clothing-name = Сканирование одежды +research-experiment-scanning-clothing-desc = Анализ тканей одежды позволяет улучшить их износостойкость. Отсканируйте 5 экземпляров. +research-experiment-scanning-implants-name = Сканирование имплантов +research-experiment-scanning-implants-desc = Анализ имплантации позволяет улучшить их износостойкость. Отсканируйте 3 экземпляров. +research-experiment-scanning-machines-name = Сканирование машин +research-experiment-scanning-machines-desc = Анализ машин позволяет улучшить их эффективность и надёжность. Отсканируйте 2 экземпляров. +research-experiment-scanning-bots-name = Сканирование ботов +research-experiment-scanning-bots-desc = Изучение конструкции ботов позволяет улучшить их автономность. Отсканируйте 3 экземпляра. +research-experiment-scanning-humanoids-name = Сканирование гуманоидов +research-experiment-scanning-humanoids-desc = Изучение анатомии гуманоидов позволяет улучшить медицинские процедуры. Отсканируйте 5 экземпляров. diff --git a/Resources/Locale/ru-RU/_Arcane/silicon/laws.ftl b/Resources/Locale/ru-RU/_Arcane/silicon/laws.ftl new file mode 100644 index 00000000000..813859b9637 --- /dev/null +++ b/Resources/Locale/ru-RU/_Arcane/silicon/laws.ftl @@ -0,0 +1,2 @@ +experimental-law-provider-already-used = Экспериментальный закон уже был использован и не может быть активирован повторно. +experimental-law-provider-already-subverted = Невозможно применить экспериментальные законы: законы целевого ИИ/борга уже были изменены. diff --git a/Resources/Prototypes/_Arcane/Research/scanning.yml b/Resources/Prototypes/_Arcane/Research/scanning.yml new file mode 100644 index 00000000000..d330112f289 --- /dev/null +++ b/Resources/Prototypes/_Arcane/Research/scanning.yml @@ -0,0 +1,127 @@ +- type: researchExperiment + id: ScanningRandomGun + name: research-experiment-scanning-reagent-gun-name + description: research-experiment-scanning-reagent-gun-desc + category: Scanning + objective: !type:ScanDifferentEntitiesExperimentObjective + requiredComponents: + - Gun + target: 2 + reward: + pointRewards: + - type: General + amount: 5000 + - type: Experimental + amount: 500 + +- type: researchExperiment + id: ScanningRandomBlocking + name: research-experiment-scanning-riotshield-name + description: research-experiment-scanning-riotshield-desc + category: Scanning + objective: !type:ScanDifferentEntitiesExperimentObjective + requiredComponents: + - Blocking + target: 3 + reward: + pointRewards: + - type: General + amount: 5000 + - type: Experimental + amount: 500 + +- type: researchExperiment + id: ScanningRandomRipley + name: research-experiment-scanning-ripley-name + description: research-experiment-scanning-ripley-desc + category: Scanning + objective: !type:ScanDifferentEntitiesExperimentObjective + requiredComponents: + - MechAir + target: 1 + reward: + pointRewards: + - type: General + amount: 8000 + - type: Experimental + amount: 500 + +- type: researchExperiment + id: ScanningClothing + name: research-experiment-scanning-clothing-name + description: research-experiment-scanning-clothing-desc + category: Scanning + objective: !type:ScanDifferentEntitiesExperimentObjective + requiredComponents: + - Clothing + target: 5 + reward: + pointRewards: + - type: General + amount: 3000 + - type: Experimental + amount: 600 + +- type: researchExperiment + id: ScanningImplanter + name: research-experiment-scanning-clothing-name + description: research-experiment-scanning-clothing-desc + category: Scanning + objective: !type:ScanDifferentEntitiesExperimentObjective + requiredComponents: + - Implanter + target: 3 + reward: + pointRewards: + - type: General + amount: 4500 + - type: Experimental + amount: 600 + +- type: researchExperiment + id: ScanningVehicle + name: research-experiment-scanning-machines-name + description: research-experiment-scanning-machines-desc + category: Scanning + objective: !type:ScanDifferentEntitiesExperimentObjective + requiredComponents: + - Vehicle + target: 2 + reward: + pointRewards: + - type: General + amount: 4500 + - type: Experimental + amount: 600 + +- type: researchExperiment + id: ScanningBots + name: research-experiment-scanning-bots-name + description: research-experiment-scanning-bots-desc + category: Scanning + objective: !type:ScanDifferentEntitiesExperimentObjective + requiredComponents: + - HTN + target: 3 + reward: + pointRewards: + - type: General + amount: 4500 + - type: Experimental + amount: 600 + +- type: researchExperiment + id: ScanningHumanoids + name: research-experiment-scanning-humanoids-name + description: research-experiment-scanning-humanoids-desc + category: Scanning + objective: !type:ScanDifferentEntitiesExperimentObjective + requiredComponents: + - HumanoidAppearance + target: 5 + reward: + pointRewards: + - type: General + amount: 4000 + - type: Experimental + amount: 400 diff --git a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/experimental_boards.yml b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/experimental_boards.yml index 86ae6d37329..61bc9c3a23e 100644 --- a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/experimental_boards.yml +++ b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/experimental_boards.yml @@ -27,4 +27,4 @@ laws: Crewsimov # Placeholder because lazy. - type: ExperimentalLawProvider rewardTime: 10.0 - rewardPoints: 100000 + # rewardPoints: 100000 Arcane-Edit diff --git a/Resources/Prototypes/_Orion/Research/Experiments/scanning.yml b/Resources/Prototypes/_Orion/Research/Experiments/scanning.yml index 6dcce330882..e783c63ac53 100644 --- a/Resources/Prototypes/_Orion/Research/Experiments/scanning.yml +++ b/Resources/Prototypes/_Orion/Research/Experiments/scanning.yml @@ -10,9 +10,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningFish @@ -26,9 +26,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningFishSecond @@ -42,9 +42,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningPeopleAndroid @@ -58,9 +58,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningPeopleAugmentedOrgans @@ -74,9 +74,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningPeopleMutant @@ -90,9 +90,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningPeopleSkillchip @@ -104,9 +104,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningPointsAnomalies @@ -120,9 +120,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 300 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningPointsBluespaceCrystal @@ -136,9 +136,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 3000 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningPointsMachineryTieredScanTier2Any @@ -151,9 +151,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningPointsMachineryTieredScanTier3Any @@ -166,9 +166,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningPointsSlimeHard @@ -182,9 +182,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningRandomJanitorTrash @@ -198,9 +198,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningRandomMechaDamageScan @@ -216,9 +216,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningRandomMechaEquippedScan @@ -232,9 +232,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningRandomPlantsTraits @@ -248,9 +248,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningRandomPlantsWild @@ -264,9 +264,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 2500 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningReagentCryostylane @@ -279,9 +279,9 @@ reward: pointRewards: - type: General - amount: 500 + amount: 3600 - type: Experimental - amount: 150 + amount: 500 - type: researchExperiment id: ScanningReagentHaloperidol @@ -294,6 +294,6 @@ reward: pointRewards: - type: General - amount: 500 + amount: 400 - type: Experimental - amount: 150 + amount: 500