diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index 0b0970ec08f1..c35371e4831d 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -2,7 +2,9 @@ research-discipline-none = None research-discipline-industrial = Industrial research-discipline-arsenal = Arsenal research-discipline-experimental = Experimental -research-discipline-civilian-services = Civilian Services +research-discipline-civilian-services = Civilian +research-discipline-transport-and-mining = Transport and mining +research-discipline-biochemical = Biochemical research-technology-fulton = Fultons research-technology-salvage-equipment = Salvage Equipment diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml index fde151f20e08..dfcd7f40bce2 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml @@ -92,19 +92,64 @@ defaultPrototype: Beaker - type: entity - id: AmmoTechFabCircuitboard + id: ServiceTechFabCircuitboard parent: BaseMachineCircuitboard - name: ammo techfab circuit board - description: A machine printed circuit board for an ammo techfab. + name: service techfab circuit board + description: A machine printed circuit board for a service techfab. components: - type: Sprite - state: security + state: service - type: MachineBoard - prototype: AmmoTechFab + prototype: ServiceTechFab stackRequirements: MatterBin: 1 + Manipulator: 2 + Glass: 5 + +- type: entity + id: CargoTechFabCircuitboard + parent: BaseMachineCircuitboard + name: cargo techfab circuit board + description: A machine printed circuit board for a cargo techfab. + components: + - type: Sprite + state: supply + - type: MachineBoard + prototype: CargoTechFab + stackRequirements: + MatterBin: 2 Manipulator: 1 +- type: entity + id: ScienceTechFabCircuitboard + parent: BaseMachineCircuitboard + name: science techfab circuit board + description: A machine printed circuit board for a science techfab. + components: + - type: Sprite + state: science + - type: MachineBoard + prototype: ScienceTechFab + stackRequirements: + MatterBin: 2 + Manipulator: 3 + +- type: entity + id: EngineeringTechFabCircuitboard + parent: BaseMachineCircuitboard + name: engineering techfab circuit board + description: A machine printed circuit board for an engineering techfab. + components: + - type: Sprite + state: engineering + - type: MachineBoard + prototype: EngineeringTechFab + stackRequirements: + MatterBin: 1 + Manipulator: 2 + Steel: 5 + Capacitor: 1 + - type: entity id: MedicalTechFabCircuitboard parent: BaseMachineCircuitboard @@ -125,6 +170,42 @@ - type: StealTarget stealGroup: MedicalTechFabCircuitboard +- type: entity + id: GenericTechFabCircuitboard + parent: BaseMachineCircuitboard + name: generic techfab circuit board + description: A machine printed circuit board for a generic techfab. + components: + - type: Sprite + state: generic + - type: MachineBoard + prototype: GenericTechFab + stackRequirements: + MatterBin: 1 + Manipulator: 1 + Steel: 5 + +- type: entity + id: UniversalTechFabCircuitboard + parent: BaseMachineCircuitboard + name: universal techfab circuit board + description: A machine printed circuit board for an universal techfab. + components: + - type: Sprite + state: universal + - type: MachineBoard + prototype: UniversalTechFab + stackRequirements: + MatterBin: 3 + Manipulator: 2 + Steel: 10 + Capacitor: 1 + Plasma: 10 + tagRequirements: + GlassBeaker: + amount: 2 + defaultPrototype: Beaker + - type: entity id: CircuitImprinterMachineCircuitboard parent: BaseMachineCircuitboard diff --git a/Resources/Prototypes/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Entities/Objects/Devices/pda.yml index 0e8b51cc6a36..d783bc8a9f33 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/pda.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/pda.yml @@ -1455,3 +1455,525 @@ type: HealthAnalyzerBoundUserInterface enum.ChameleonUiKey.Key: type: ChameleonBoundUserInterface + + +- type: entity + parent: PassengerPDA + suffix: Empty + id: PassengerPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: TechnicalAssistantPDA + suffix: Empty + id: TechnicalAssistantPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: MedicalInternPDA + suffix: Empty + id: MedicalInternPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: SecurityCadetPDA + suffix: Empty + id: SecurityCadetPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ResearchAssistantPDA + suffix: Empty + id: ResearchAssistantPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ServiceWorkerPDA + suffix: Empty + id: ServiceWorkerPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ChefPDA + suffix: Empty + id: ChefPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: BotanistPDA + suffix: Empty + id: BotanistPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ClownPDA + suffix: Empty + id: ClownPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: VisitorClownPDA + suffix: Empty + id: VisitorClownPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: MimePDA + suffix: Empty + id: MimePDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ChaplainPDA + suffix: Empty + id: ChaplainPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: VisitorChaplainPDA + suffix: Empty + id: VisitorChaplainPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: QuartermasterPDA + suffix: Empty + id: QuartermasterPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: CargoPDA + suffix: Empty + id: CargoPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: SalvagePDA + suffix: Empty + id: SalvagePDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: BartenderPDA + suffix: Empty + id: BartenderPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: LibrarianPDA + suffix: Empty + id: LibrarianPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: VisitorLibrarianPDA + suffix: Empty + id: VisitorLibrarianPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: LawyerPDA + suffix: Empty + id: LawyerPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: VisitorLawyerPDA + suffix: Empty + id: VisitorLawyerPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: JanitorPDA + suffix: Empty + id: JanitorPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: CaptainPDA + suffix: Empty + id: CaptainPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: HoPPDA + suffix: Empty + id: HoPPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: CEPDA + suffix: Empty + id: CEPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: EngineerPDA + suffix: Empty + id: EngineerPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: CMOPDA + suffix: Empty + id: CMOPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: MedicalPDA + suffix: Empty + id: MedicalPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: VisitorMedicalPDA + suffix: Empty + id: VisitorMedicalPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ParamedicPDA + suffix: Empty + id: ParamedicPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ChemistryPDA + suffix: Empty + id: ChemistryPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: RnDPDA + suffix: Empty + id: RnDPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: SciencePDA + suffix: Empty + id: SciencePDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: HoSPDA + suffix: Empty + id: HoSPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: WardenPDA + suffix: Empty + id: WardenPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: SecurityPDA + suffix: Empty + id: SecurityPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: CentcomPDA + suffix: Empty + id: CentcomPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: AdminPDA + suffix: Empty + id: AdminPDAEmpty + description: Why the fuck are you need empty admin PDA? + components: + - type: Pda + id: null + +- type: entity + parent: DeathsquadPDA + suffix: Empty + id: DeathsquadPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: MusicianPDA + suffix: Empty + id: MusicianPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: VisitorMusicianPDA + suffix: Empty + id: VisitorMusicianPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: AtmosPDA + suffix: Empty + id: AtmosPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ClearPDA + suffix: Empty + id: ClearPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: VisitorPDA + suffix: Empty + id: VisitorPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: SyndiPDA + suffix: Empty + id: SyndiPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ERTLeaderPDA + suffix: Empty + id: ERTLeaderPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ERTChaplainPDA + suffix: Empty + id: ERTChaplainPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ERTEngineerPDA + suffix: Empty + id: ERTEngineerPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ERTJanitorPDA + suffix: Empty + id: ERTJanitorPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ERTMedicPDA + suffix: Empty + id: ERTMedicPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ERTSecurityPDA + suffix: Empty + id: ERTSecurityPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: CBURNPDA + suffix: Empty + id: CBURNPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: PsychologistPDA + suffix: Empty + id: PsychologistPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ReporterPDA + suffix: Empty + id: ReporterPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: ZookeeperPDA + suffix: Empty + id: ZookeeperPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: BoxerPDA + suffix: Empty + id: BoxerPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: DetectivePDA + suffix: Empty + id: DetectivePDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: BrigmedicPDA + suffix: Empty + id: BrigmedicPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: CluwnePDA + suffix: Empty + id: CluwnePDAEmpty + components: + - type: Pda + id: null #how lol + +- type: entity + parent: SeniorEngineerPDA + suffix: Empty + id: SeniorEngineerPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: SeniorResearcherPDA + suffix: Empty + id: SeniorResearcherPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: SeniorPhysicianPDA + suffix: Empty + id: SeniorPhysicianPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: SeniorOfficerPDA + suffix: Empty + id: SeniorOfficerPDAEmpty + components: + - type: Pda + id: null + +- type: entity + parent: PiratePDA + suffix: Empty + id: PiratePDA + components: + - type: Pda + id: null + +- type: entity + parent: SyndiAgentPDA + suffix: Empty + id: SyndiAgentPDAEmpty + components: + - type: Pda + id: null diff --git a/Resources/Prototypes/Entities/Objects/Misc/desk_bell.yml b/Resources/Prototypes/Entities/Objects/Misc/desk_bell.yml index f170aa899e66..927cc97b3588 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/desk_bell.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/desk_bell.yml @@ -3,6 +3,8 @@ id: DeskBell name: desk bell description: The cornerstone of any customer service job. You feel an unending urge to ring it. + placement: + mode: SnapgridCenter components: - type: Sprite sprite: Objects/Misc/desk_bell.rsi @@ -48,3 +50,5 @@ damage: types: Blunt: 4 + - type: Anchorable + delay: 0.5 diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml index 7cc09a90081c..ed42c1d8bfce 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml @@ -357,6 +357,17 @@ solutions: injector: maxVol: 15 + - type: ThrowingAngle + angle: 50 + - type: SolutionInjectWhileEmbedded + transferAmount: 1 + solution: injector + updateInterval: 2 + blockSlots: OUTERCLOTHING + - type: SolutionInjectOnEmbed + transferAmount: 2 + solution: injector + blockSlots: OUTERCLOTHING - type: Injector injectOnly: false - type: ExaminableSolution @@ -371,9 +382,41 @@ fillBaseName: syringe inHandsMaxFillLevels: 3 inHandsFillBaseName: -fill- + - type: EmbeddableProjectile + minimumSpeed: 3 + removalTime: 1.0 + offset: 0.0,0.0 + embedOnThrow: false + - type: Projectile + deleteOnCollide: false + onlyCollideWhenShot: true + damage: + types: + Piercing: 5 + - type: Fixtures + fixtures: + fix1: + shape: !type:PhysShapeCircle + radius: 0.2 + density: 5 + mask: + - ItemMask + restitution: 0.3 + friction: 0.2 + projectile: + shape: + !type:PhysShapeAabb + bounds: "-0.1,-0.3,0.1,0.3" + hard: false + mask: + - Impassable + - BulletImpassable - type: Tag tags: - Syringe + - Trash + - SyringeGunAmmo + - type: LandAtCursor - type: entity parent: BaseSyringe @@ -386,6 +429,7 @@ tags: - Syringe - Trash + - SyringeGunAmmo - type: entity name: mini syringe diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 106448b2e38b..282c59e74518 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -203,8 +203,6 @@ - AtmosTools - EngineeringWeapons - Chemistry - - Janitor - - Instruments - Equipment - FauxTiles - type: EmagLatheRecipes @@ -259,7 +257,6 @@ - EngineeringBoards - CargoBoards - MedicalBoards - - ServiceBoards - ScienceBoards - CameraBoards - MechBoards @@ -364,119 +361,6 @@ emagStaticPacks: - HostileCubesStatic -- type: entity - id: SecurityTechFab - parent: BaseLatheLube - name: security techfab - description: Prints equipment for use by security crew. - components: - - type: Sprite - sprite: Structures/Machines/techfab.rsi - layers: - - state: icon - map: ["enum.LatheVisualLayers.IsRunning"] - - state: sec - - state: unlit - shader: unshaded - map: ["enum.PowerDeviceVisualLayers.Powered"] - - state: inserting - map: ["enum.MaterialStorageVisualLayers.Inserting"] - - state: panel - map: ["enum.WiresVisualLayers.MaintenancePanel"] - - type: Machine - board: SecurityTechFabCircuitboard - - type: Lathe - idleState: icon - runningState: icon - staticPacks: - - SecurityEquipmentStatic - - SecurityPracticeStatic - - SecurityAmmoStatic - - SecurityWeaponsStatic - dynamicPacks: - - SecurityEquipment - - SecurityBoards - - SecurityExplosives - - SecurityAmmo - - SecurityWeapons - - SecurityDisablers - - type: MaterialStorage - whitelist: - tags: - - Sheet - - RawMaterial - - Ingot - -- type: entity - id: AmmoTechFab - parent: BaseLatheLube - name: ammo techfab - description: Prints the bare minimum of bullets that any budget military or armory could need. Nothing fancy. - components: - - type: Sprite - sprite: Structures/Machines/techfab.rsi - layers: - - state: icon - map: ["enum.LatheVisualLayers.IsRunning"] - - state: ammo - - state: unlit - shader: unshaded - map: ["enum.PowerDeviceVisualLayers.Powered"] - - state: inserting - map: ["enum.MaterialStorageVisualLayers.Inserting"] - - state: panel - map: ["enum.WiresVisualLayers.MaintenancePanel"] - - type: Machine - board: AmmoTechFabCircuitboard - - type: Lathe - idleState: icon - runningState: icon - staticPacks: - - SecurityAmmoStatic - - type: MaterialStorage - whitelist: - tags: - - Sheet - - RawMaterial - - Ingot - -- type: entity - id: MedicalTechFab - parent: BaseLatheLube - name: medical techfab - description: Prints equipment for use by the medbay. - components: - - type: Sprite - sprite: Structures/Machines/techfab.rsi - layers: - - state: icon - map: ["enum.LatheVisualLayers.IsRunning"] - - state: med - - state: unlit - shader: unshaded - map: ["enum.PowerDeviceVisualLayers.Powered"] - - state: inserting - map: ["enum.MaterialStorageVisualLayers.Inserting"] - - state: panel - map: ["enum.WiresVisualLayers.MaintenancePanel"] - - type: Lathe - idleState: icon - runningState: icon - staticPacks: - - TopicalsStatic - - ChemistryStatic - - MedicalStatic - - RollerBedsStatic - - MedicalClothingStatic - - EmptyMedkitsStatic - - SurgeryStatic - dynamicPacks: - - Chemistry - - type: Machine - board: MedicalTechFabCircuitboard - - type: StealTarget - stealGroup: MedicalTechFabCircuitboard - - type: entity parent: BaseLathe id: UniformPrinter diff --git a/Resources/Prototypes/Entities/Structures/Machines/research.yml b/Resources/Prototypes/Entities/Structures/Machines/research.yml index 81a5988c2c54..98948f7f2a7c 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/research.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/research.yml @@ -14,10 +14,12 @@ - type: ResearchServer - type: TechnologyDatabase supportedDisciplines: - - Industrial - Arsenal - - Experimental + - TransportAndMining + - Industrial - CivilianServices + - Biochemical + - Experimental - type: ApcPowerReceiver powerLoad: 200 - type: ExtensionCableReceiver diff --git a/Resources/Prototypes/Entities/Structures/Machines/techfab.yml b/Resources/Prototypes/Entities/Structures/Machines/techfab.yml new file mode 100644 index 000000000000..6cefacae41b1 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Machines/techfab.yml @@ -0,0 +1,302 @@ +- type: entity + id: SecurityTechFab + parent: BaseLatheLube + name: security techfab + description: Prints equipment for use by security crew. + components: + - type: Sprite + sprite: Structures/Machines/techfab.rsi + layers: + - state: icon + map: ["enum.LatheVisualLayers.IsRunning"] + - state: sec + - state: unlit + shader: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + - state: inserting + map: ["enum.MaterialStorageVisualLayers.Inserting"] + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: Machine + board: SecurityTechFabCircuitboard + - type: Lathe + idleState: icon + runningState: icon + staticPacks: + - SecurityEquipmentStatic + - SecurityPracticeStatic + - SecurityAmmoStatic + - SecurityWeaponsStatic + dynamicPacks: + - SecurityEquipment + - SecurityBoards + - SecurityExplosives + - SecurityAmmo + - SecurityWeapons + - type: MaterialStorage + whitelist: + tags: + - Sheet + - RawMaterial + - Ingot + +- type: entity + id: MedicalTechFab + parent: BaseLatheLube + name: medical techfab + description: Prints equipment for use by the medbay. + components: + - type: Sprite + sprite: Structures/Machines/techfab.rsi + layers: + - state: icon + map: ["enum.LatheVisualLayers.IsRunning"] + - state: med + - state: unlit + shader: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + - state: inserting + map: ["enum.MaterialStorageVisualLayers.Inserting"] + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: Lathe + idleState: icon + runningState: icon + staticPacks: + - TopicalsStatic + - ChemistryStatic + - MedicalStatic + - RollerBedsStatic + - MedicalClothingStatic + - EmptyMedkitsStatic + - SurgeryStatic + dynamicPacks: + - Chemistry + - type: Machine + board: MedicalTechFabCircuitboard + - type: StealTarget + stealGroup: MedicalTechFabCircuitboard + +- type: entity + id: ScienceTechFab + parent: BaseLatheLube + name: science techfab + description: Prints equipment for use by the R&D. + components: + - type: Sprite + sprite: Structures/Machines/techfab.rsi + layers: + - state: icon + map: ["enum.LatheVisualLayers.IsRunning"] + - state: sci + - state: unlit + shader: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + - state: inserting + map: ["enum.MaterialStorageVisualLayers.Inserting"] + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: Lathe + idleState: icon + runningState: icon + staticPacks: + - TopicalsStatic + dynamicPacks: + - Chemistry + - type: Machine + board: ScienceTechFabCircuitboard + +- type: entity + id: ServiceTechFab + parent: BaseLatheLube + name: service techfab + description: Prints equipment for use by service personnel. + components: + - type: Sprite + sprite: Structures/Machines/techfab.rsi + layers: + - state: icon + map: ["enum.LatheVisualLayers.IsRunning"] + - state: service + - state: unlit + shader: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + - state: inserting + map: ["enum.MaterialStorageVisualLayers.Inserting"] + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: Lathe + idleState: icon + runningState: icon + staticPacks: + - ServiceStatic + - ServiceBoardsStatic + - CivilianServices-1 + dynamicPacks: + - CivilianServices1 + - CivilianServices2 + - CivilianServices3 + - CivilianServices4 + - CivilianServices5 + - CivilianServices6 + - CivilianServices7 + - CivilianServices8 + - CivilianServices9 + - CivilianServices10 + - CivilianServices11 + - type: Machine + board: ServiceTechFabCircuitboard + +- type: entity + id: EngineeringTechFab + parent: BaseLatheLube + name: engineering techfab + description: Prints equipment for use by engineers. + components: + - type: Sprite + sprite: Structures/Machines/techfab.rsi + layers: + - state: icon + map: ["enum.LatheVisualLayers.IsRunning"] + - state: engi + - state: unlit + shader: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + - state: inserting + map: ["enum.MaterialStorageVisualLayers.Inserting"] + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: Lathe + idleState: icon + runningState: icon + staticPacks: + - TopicalsStatic + dynamicPacks: + - Chemistry + - type: Machine + board: EngineeringTechFabCircuitboard + +- type: entity + id: CargoTechFab + parent: BaseLatheLube + name: cargo techfab + description: Prints equipment for use by QM and his slaves. + components: + - type: Sprite + sprite: Structures/Machines/techfab.rsi + layers: + - state: icon + map: ["enum.LatheVisualLayers.IsRunning"] + - state: cargo + - state: unlit + shader: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + - state: inserting + map: ["enum.MaterialStorageVisualLayers.Inserting"] + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: Lathe + idleState: icon + runningState: icon + staticPacks: + - CargoStatic + - CargoFullStatic + - CargoBoardsStatic + dynamicPacks: + - TransportAndMining1 + - TransportAndMining2 + - TransportAndMining3 + - TransportAndMining4 + - TransportAndMining5 + - type: Machine + board: CargoTechFabCircuitboard + +- type: entity + id: GenericTechFab + parent: BaseLatheLube + name: techfab + description: Prints equipment for use by all the crew. + components: + - type: Sprite + sprite: Structures/Machines/techfab.rsi + layers: + - state: icon + map: ["enum.LatheVisualLayers.IsRunning"] + - state: general + - state: unlit + shader: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + - state: inserting + map: ["enum.MaterialStorageVisualLayers.Inserting"] + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: MaterialStorage + whitelist: + tags: + - Sheet + - RawMaterial + - Ingot + - type: Lathe + idleState: icon + runningState: building + unlitIdleState: unlit + unlitRunningState: unlit-building + staticPacks: + - ToolsStatic + - PartsStatic + - AtmosStatic + - CablesStatic + - CargoStatic + - MaterialsStatic + - BasicChemistryStatic + - RollerBedsStatic + - LightsStatic + - ServiceStatic + - PowerCellsStatic + - ElectronicsStatic + - type: EmagLatheRecipes + emagStaticPacks: + - SecurityAmmoStatic + - type: BlueprintReceiver + whitelist: + tags: + - BlueprintAutolathe + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + blueprint: !type:Container + - type: EmptyOnMachineDeconstruct + containers: + - blueprint + - type: Machine + board: GenericTechFabCircuitboard + +- type: entity + id: UniversalTechFab + parent: BaseLatheLube + name: universal techfab + description: Prints equipment for use by Ratvar himself. + components: + - type: Sprite + sprite: Structures/Machines/techfab.rsi + layers: + - state: icon + map: ["enum.LatheVisualLayers.IsRunning"] + - state: universal + - state: unlit + shader: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + - state: inserting + map: ["enum.MaterialStorageVisualLayers.Inserting"] + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: Lathe + idleState: icon + runningState: icon + staticPacks: + - TopicalsStatic + dynamicPacks: + - Chemistry + - type: Machine + board: UniversalTechFabCircuitboard diff --git a/Resources/Prototypes/Objectives/stealTargetGroups.yml b/Resources/Prototypes/Objectives/stealTargetGroups.yml index b21e0dc2dea4..1e45bba01a70 100644 --- a/Resources/Prototypes/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/Objectives/stealTargetGroups.yml @@ -158,13 +158,6 @@ sprite: Objects/Tools/lighters.rsi state: zippo_engraved_icon_base -- type: stealTargetGroup - id: AmmoTechFabCircuitboard - name: steal-target-groups-ammo-tech-fab-circuitboard - sprite: - sprite: Objects/Misc/module.rsi - state: security - - type: stealTargetGroup id: ClothingHeadHatWarden name: steal-target-groups-clothing-head-hat-warden diff --git a/Resources/Prototypes/Procedural/salvage_loot.yml b/Resources/Prototypes/Procedural/salvage_loot.yml index 68bfcd89573b..e15aaf764a52 100644 --- a/Resources/Prototypes/Procedural/salvage_loot.yml +++ b/Resources/Prototypes/Procedural/salvage_loot.yml @@ -7,8 +7,6 @@ entries: - proto: AdvMopItem prob: 0.5 - - proto: AmmoTechFabCircuitboard - cost: 2 - proto: AutolatheMachineCircuitboard cost: 2 - proto: BiomassReclaimerMachineCircuitboard diff --git a/Resources/Prototypes/Procedural/salvage_rewards.yml b/Resources/Prototypes/Procedural/salvage_rewards.yml index 7259d71529b9..9131b26011b2 100644 --- a/Resources/Prototypes/Procedural/salvage_rewards.yml +++ b/Resources/Prototypes/Procedural/salvage_rewards.yml @@ -55,7 +55,6 @@ id: SalvageRewardEpic weights: # rare machinery - AmmoTechFabCircuitboard: 1.0 ResearchAndDevelopmentServerMachineCircuitboard: 1.0 CratePartsT4: 1.0 PowerCellAntiqueProto: 0.25 diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/cargo.yml b/Resources/Prototypes/Recipes/Lathes/Packs/cargo.yml index 6ca2ef856640..6a46735e0896 100644 --- a/Resources/Prototypes/Recipes/Lathes/Packs/cargo.yml +++ b/Resources/Prototypes/Recipes/Lathes/Packs/cargo.yml @@ -6,6 +6,14 @@ - AppraisalTool - Pickaxe +- type: latheRecipePack + id: CargoFullStatic + recipes: + - OreBag + - RadioHandheld + - HandheldGPSBasic + - FultonBeacon + - type: latheRecipePack id: CargoBoardsStatic recipes: diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/service.yml b/Resources/Prototypes/Recipes/Lathes/Packs/service.yml index bbf5ec0eb1c5..e0ffee5c08eb 100644 --- a/Resources/Prototypes/Recipes/Lathes/Packs/service.yml +++ b/Resources/Prototypes/Recipes/Lathes/Packs/service.yml @@ -33,30 +33,3 @@ - ElectricGrillMachineCircuitboard - BoozeDispenserMachineCircuitboard - SodaDispenserMachineCircuitboard - -## Dynamic - -- type: latheRecipePack - id: Janitor - recipes: - - AdvMopItem - - WeaponSprayNozzle - - ClothingBackpackWaterTank - - MegaSprayBottle - -- type: latheRecipePack - id: Instruments - recipes: - - SynthesizerInstrument - -- type: latheRecipePack - id: ServiceBoards - recipes: - - BiofabricatorMachineCircuitboard - - FatExtractorMachineCircuitboard - - HydroponicsTrayMachineCircuitboard # roundstart gear being unlocked roundstart when - - SeedExtractorMachineCircuitboard # ^ - - MassMediaCircuitboard - - ReagentGrinderIndustrialMachineCircuitboard - - JukeboxCircuitBoard - - DawInstrumentMachineCircuitboard diff --git a/Resources/Prototypes/Recipes/Lathes/devices.yml b/Resources/Prototypes/Recipes/Lathes/devices.yml index 5d7c649cdeba..185688ff2e4d 100644 --- a/Resources/Prototypes/Recipes/Lathes/devices.yml +++ b/Resources/Prototypes/Recipes/Lathes/devices.yml @@ -198,3 +198,40 @@ Steel: 500 Glass: 400 Gold: 100 + +- type: latheRecipe + id: PassengerIDCard + result: PassengerIDCard + completetime: 3 + materials: + Steel: 300 + Plastic: 100 + +- type: latheRecipe + id: PassengerPDAEmpty + result: PassengerPDAEmpty + completetime: 3 + materials: + Steel: 500 + Plastic: 200 + +- type: latheRecipe + id: ClothingHeadsetGrey + result: ClothingHeadsetGrey + completetime: 3 + materials: + Steel: 200 + Plastic: 100 + +- type: latheRecipe + id: EncryptionKeyCommon + result: EncryptionKeyCommon + completetime: 3 + materials: + Steel: 100 + Plastic: 50 + +- type: latheRecipe + parent: PassengerPDAEmpty + id: ClearPDAEmpty + result: ClearPDAEmpty diff --git a/Resources/Prototypes/Recipes/Lathes/pda.yml b/Resources/Prototypes/Recipes/Lathes/pda.yml new file mode 100644 index 000000000000..dc72c8611052 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/pda.yml @@ -0,0 +1,211 @@ +- type: latheRecipe + parent: PassengerPDAEmpty + id: TechnicalAssistantPDAEmpty + result: TechnicalAssistantPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: MedicalInternPDAEmpty + result: MedicalInternPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: SecurityCadetPDAEmpty + result: SecurityCadetPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: ResearchAssistantPDAEmpty + result: ResearchAssistantPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: ServiceWorkerPDAEmpty + result: ServiceWorkerPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: ChefPDAEmpty + result: ChefPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: BotanistPDAEmpty + result: BotanistPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: ClownPDAEmpty + result: ClownPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: MimePDAEmpty + result: MimePDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: ChaplainPDAEmpty + result: ChaplainPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: QuartermasterPDAEmpty + result: QuartermasterPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: CargoPDAEmpty + result: CargoPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: SalvagePDAEmpty + result: SalvagePDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: BartenderPDAEmpty + result: BartenderPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: LibrarianPDAEmpty + result: LibrarianPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: LawyerPDAEmpty + result: LawyerPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: JanitorPDAEmpty + result: JanitorPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: CaptainPDAEmpty + result: CaptainPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: HoPPDAEmpty + result: HoPPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: CEPDAEmpty + result: CEPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: EngineerPDAEmpty + result: EngineerPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: CMOPDAEmpty + result: CMOPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: MedicalPDAEmpty + result: MedicalPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: ParamedicPDAEmpty + result: ParamedicPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: ChemistryPDAEmpty + result: ChemistryPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: RnDPDAEmpty + result: RnDPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: SciencePDAEmpty + result: SciencePDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: HoSPDAEmpty + result: HoSPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: WardenPDAEmpty + result: WardenPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: SecurityPDAEmpty + result: SecurityPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: MusicianPDAEmpty + result: MusicianPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: AtmosPDAEmpty + result: AtmosPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: PsychologistPDAEmpty + result: PsychologistPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: ReporterPDAEmpty + result: ReporterPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: ZookeeperPDAEmpty + result: ZookeeperPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: BoxerPDAEmpty + result: BoxerPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: DetectivePDAEmpty + result: DetectivePDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: BrigmedicPDAEmpty + result: BrigmedicPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: SeniorEngineerPDAEmpty + result: SeniorEngineerPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: SeniorResearcherPDAEmpty + result: SeniorResearcherPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: SeniorPhysicianPDAEmpty + result: SeniorPhysicianPDAEmpty + +- type: latheRecipe + parent: PassengerPDAEmpty + id: SeniorOfficerPDAEmpty + result: SeniorOfficerPDAEmpty + + diff --git a/Resources/Prototypes/Recipes/Lathes/salvage.yml b/Resources/Prototypes/Recipes/Lathes/salvage.yml index 4cf9b9073ce2..e10ab64eb489 100644 --- a/Resources/Prototypes/Recipes/Lathes/salvage.yml +++ b/Resources/Prototypes/Recipes/Lathes/salvage.yml @@ -37,6 +37,20 @@ Glass: 500 # If they get spammed make it cost silver. +- type: latheRecipe + id: OreBag + result: OreBag + completetime: 3 + materials: + Cloth: 300 + +- type: latheRecipe + id: RadioHandheld + result: RadioHandheld + completetime: 3 + materials: + Steel: 200 + - type: latheRecipe id: SeismicCharge result: SeismicCharge diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index 6cecc4903581..5cbc4ed7f70c 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -1,19 +1,5 @@ # Tier 1 -- type: technology - id: SalvageWeapons - name: research-technology-salvage-weapons - icon: - sprite: Objects/Weapons/Guns/Basic/kinetic_accelerator.rsi - state: icon - discipline: Arsenal - tier: 1 - cost: 5000 - recipeUnlocks: - - WeaponProtoKineticAccelerator - - ShuttleGunKineticCircuitboard - # These are roundstart but not replenishable for salvage - - type: technology id: DraconicMunitions name: research-technology-draconic-munitions diff --git a/Resources/Prototypes/Research/biochemical.yml b/Resources/Prototypes/Research/biochemical.yml new file mode 100644 index 000000000000..42ff59af6a98 --- /dev/null +++ b/Resources/Prototypes/Research/biochemical.yml @@ -0,0 +1,40 @@ +- type: technology + id: MechanizedTreatment + name: research-technology-mechanized-treatment + icon: + sprite: Mobs/Silicon/chassis.rsi + state: medical + discipline: Biochemical + tier: 1 + cost: 5000 + recipeUnlocks: + - BorgModuleAdvancedTreatment + - BorgModuleDefibrillator + +- type: technology + id: BiochemicalStasis + name: research-technology-biochemical-stasis + icon: + sprite: Structures/Machines/stasis_bed.rsi + state: icon + discipline: Biochemical + tier: 2 + cost: 7500 + recipeUnlocks: + - StasisBedMachineCircuitboard + - CryoPodMachineCircuitboard + - CryostasisBeaker + - SyringeCryostasis + +- type: technology + id: BluespaceChemistry + name: research-technology-bluespace-chemistry + icon: + sprite: Objects/Specific/Chemistry/beaker_bluespace.rsi + state: beakerbluespace + discipline: Biochemical + tier: 3 + cost: 10000 + recipeUnlocks: + - BluespaceBeaker + - SyringeBluespace \ No newline at end of file diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml index cdb82255448e..4e13a35e06c7 100644 --- a/Resources/Prototypes/Research/civilianservices.yml +++ b/Resources/Prototypes/Research/civilianservices.yml @@ -116,34 +116,6 @@ - FauxTileAstroSnow - FauxTileAstroAsteroidSand -- type: technology - id: BiochemicalStasis - name: research-technology-biochemical-stasis - icon: - sprite: Structures/Machines/stasis_bed.rsi - state: icon - discipline: CivilianServices - tier: 2 - cost: 7500 - recipeUnlocks: - - StasisBedMachineCircuitboard - - CryoPodMachineCircuitboard - - CryostasisBeaker - - SyringeCryostasis - -- type: technology - id: MechanizedTreatment - name: research-technology-mechanized-treatment - icon: - sprite: Mobs/Silicon/chassis.rsi - state: medical - discipline: CivilianServices - tier: 2 - cost: 5000 - recipeUnlocks: - - BorgModuleAdvancedTreatment - - BorgModuleDefibrillator - - type: technology id: AdvancedCleaning name: research-technology-advanced-cleaning @@ -191,40 +163,207 @@ - ClothingBackpackWaterTank - type: technology - id: BluespaceCargoTransport - name: research-technology-bluespace-cargo-transport + id: PDAs + name: research-technology-advanced-spray icon: - sprite: Structures/cargo_telepad.rsi - state: display + sprite: Objects/Weapons/Guns/Basic/spraynozzle.rsi + state: icon discipline: CivilianServices tier: 2 - cost: 15000 + cost: 12500 recipeUnlocks: - - CargoTelepadMachineCircuitboard + - TechnicalAssistantPDAEmpty + - MedicalInternPDAEmpty + - SecurityCadetPDAEmpty + - ResearchAssistantPDAEmpty + - ServiceWorkerPDAEmpty + - ChefPDAEmpty + - BotanistPDAEmpty + - ClownPDAEmpty + - MimePDAEmpty + - ChaplainPDAEmpty + - QuartermasterPDAEmpty + - CargoPDAEmpty + - SalvagePDAEmpty + - BartenderPDAEmpty + - LibrarianPDAEmpty + - LawyerPDAEmpty + - JanitorPDAEmpty + - CaptainPDAEmpty + - HoPPDAEmpty + - CEPDAEmpty + - EngineerPDAEmpty + - CMOPDAEmpty + - MedicalPDAEmpty + - ParamedicPDAEmpty + - ChemistryPDAEmpty + - RnDPDAEmpty + - SciencePDAEmpty + - HoSPDAEmpty + - WardenPDAEmpty + - SecurityPDAEmpty + - MusicianPDAEmpty + - AtmosPDAEmpty + - PsychologistPDAEmpty + - ReporterPDAEmpty + - ZookeeperPDAEmpty + - BoxerPDAEmpty + - DetectivePDAEmpty + - BrigmedicPDAEmpty + - SeniorEngineerPDAEmpty + - SeniorResearcherPDAEmpty + - SeniorPhysicianPDAEmpty + - SeniorOfficerPDAEmpty # Tier 3 -- type: technology - id: QuantumFiberWeaving - name: research-technology-quantum-fiber-weaving - icon: - sprite: Clothing/Shoes/Boots/speedboots.rsi - state: icon - discipline: CivilianServices - tier: 3 - cost: 10000 - recipeUnlocks: - - ClothingShoesBootsSpeed -- type: technology - id: BluespaceChemistry - name: research-technology-bluespace-chemistry - icon: - sprite: Objects/Specific/Chemistry/beaker_bluespace.rsi - state: beakerbluespace - discipline: CivilianServices - tier: 3 - cost: 10000 - recipeUnlocks: - - BluespaceBeaker - - SyringeBluespace + + +- type: latheRecipePack + id: CivilianServices1 + recipes: + - BorgModuleGardening + - BorgModuleHarvesting + - SeedExtractorMachineCircuitboard + - HydroponicsTrayMachineCircuitboard + - ReagentGrinderIndustrialMachineCircuitboard + +- type: latheRecipePack + id: CivilianServices2 + recipes: + - HamtrHarness + - HamtrLArm + - HamtrRArm + - HamtrLLeg + - HamtrRLeg + - HamtrCentralElectronics + - HamtrPeripheralsElectronics + - MechEquipmentGrabberSmall + - VimHarness + +- type: latheRecipePack + id: CivilianServices3 + recipes: + - SurveillanceCameraRouterCircuitboard + - SurveillanceCameraWirelessRouterCircuitboard + - SurveillanceWirelessCameraMovableCircuitboard + - SurveillanceWirelessCameraAnchoredCircuitboard + - SurveillanceCameraMonitorCircuitboard + - SurveillanceWirelessCameraMonitorCircuitboard + - TelecomServerCircuitboard + - HolopadMachineCircuitboard + +- type: latheRecipePack + id: CivilianServices4 + recipes: + - ComputerTelevisionCircuitboard + - SynthesizerInstrument + - DawInstrumentMachineCircuitboard + - MassMediaCircuitboard + - JukeboxCircuitBoard + +- type: latheRecipePack + id: CivilianServices5 + recipes: + - BorgModuleAdvancedCleaning + +- type: latheRecipePack + id: CivilianServices6 + recipes: + - FatExtractorMachineCircuitboard + - BiofabricatorMachineCircuitboard + - BiomassReclaimerMachineCircuitboard + +- type: latheRecipePack + id: CivilianServices7 + recipes: + - FauxTileAstroGrass + - FauxTileMowedAstroGrass + - FauxTileJungleAstroGrass + - FauxTileAstroIce + - FauxTileAstroSnow + - FauxTileAstroAsteroidSand + +- type: latheRecipePack + id: CivilianServices8 + recipes: + - AdvMopItem + - MegaSprayBottle + +- type: latheRecipePack + id: CivilianServices9 + recipes: + - HonkerHarness + - HonkerLArm + - HonkerRArm + - HonkerLLeg + - HonkerRLeg + - HonkerCentralElectronics + - HonkerPeripheralsElectronics + - HonkerTargetingElectronics + - MechEquipmentHorn + +- type: latheRecipePack + id: CivilianServices10 + recipes: + - WeaponSprayNozzle + - ClothingBackpackWaterTank + +- type: latheRecipePack + id: CivilianServices11 + recipes: + - TechnicalAssistantPDAEmpty + - MedicalInternPDAEmpty + - SecurityCadetPDAEmpty + - ResearchAssistantPDAEmpty + - ServiceWorkerPDAEmpty + - ChefPDAEmpty + - BotanistPDAEmpty + - ClownPDAEmpty + - MimePDAEmpty + - ChaplainPDAEmpty + - QuartermasterPDAEmpty + - CargoPDAEmpty + - SalvagePDAEmpty + - BartenderPDAEmpty + - LibrarianPDAEmpty + - LawyerPDAEmpty + - JanitorPDAEmpty + - CaptainPDAEmpty + - HoPPDAEmpty + - CEPDAEmpty + - EngineerPDAEmpty + - CMOPDAEmpty + - MedicalPDAEmpty + - ParamedicPDAEmpty + - ChemistryPDAEmpty + - RnDPDAEmpty + - SciencePDAEmpty + - HoSPDAEmpty + - WardenPDAEmpty + - SecurityPDAEmpty + - MusicianPDAEmpty + - AtmosPDAEmpty + - PsychologistPDAEmpty + - ReporterPDAEmpty + - ZookeeperPDAEmpty + - BoxerPDAEmpty + - DetectivePDAEmpty + - BrigmedicPDAEmpty + - SeniorEngineerPDAEmpty + - SeniorResearcherPDAEmpty + - SeniorPhysicianPDAEmpty + - SeniorOfficerPDAEmpty + + +- type: latheRecipePack + id: CivilianServices-1 + recipes: + - ClothingHeadsetGrey + - PassengerPDAEmpty + - PassengerIDCard + - EncryptionKeyCommon + - ClearPDAEmpty + + diff --git a/Resources/Prototypes/Research/disciplines.yml b/Resources/Prototypes/Research/disciplines.yml index 7a661da1a336..4446bd1121ab 100644 --- a/Resources/Prototypes/Research/disciplines.yml +++ b/Resources/Prototypes/Research/disciplines.yml @@ -45,3 +45,27 @@ 1: 0 2: 0.75 3: 0.75 + +- type: techDiscipline + id: TransportAndMining + name: research-discipline-transport-and-mining + color: "#c27b16" + icon: + sprite: Interface/Misc/research_disciplines.rsi + state: transport_and_mining + tierPrerequisites: + 1: 0 + 2: 0.75 + 3: 0.75 + +- type: techDiscipline + id: Biochemical + name: research-discipline-biochemical + color: "#449ae6" + icon: + sprite: Interface/Misc/research_disciplines.rsi + state: biochemical + tierPrerequisites: + 1: 0 + 2: 0.75 + 3: 0.75 diff --git a/Resources/Prototypes/Research/experimental.yml b/Resources/Prototypes/Research/experimental.yml index be19a1170287..3f411af58007 100644 --- a/Resources/Prototypes/Research/experimental.yml +++ b/Resources/Prototypes/Research/experimental.yml @@ -112,17 +112,16 @@ - BasicAnomalousResearch - type: technology - id: DeterrenceTechnologies - name: research-technology-deterrence + id: MechanicalCompression + name: research-technology-mechanical-compression icon: - sprite: Objects/Weapons/Guns/Battery/particle_decelerator.rsi + sprite: Structures/Machines/flatpacker.rsi state: base discipline: Experimental tier: 2 - cost: 7500 + cost: 10000 recipeUnlocks: - - WeaponParticleDecelerator - - HoloprojectorField + - FlatpackerMachineCircuitboard # Tier 3 @@ -150,3 +149,15 @@ cost: 10000 recipeUnlocks: - DeviceQuantumSpinInverter + +- type: technology + id: QuantumFiberWeaving + name: research-technology-quantum-fiber-weaving + icon: + sprite: Clothing/Shoes/Boots/speedboots.rsi + state: icon + discipline: Experimental + tier: 3 + cost: 15000 + recipeUnlocks: + - ClothingShoesBootsSpeed diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml index c0f184f71b0c..35f11fabf877 100644 --- a/Resources/Prototypes/Research/industrial.yml +++ b/Resources/Prototypes/Research/industrial.yml @@ -1,34 +1,5 @@ # Tier 1 -- type: technology - id: SalvageEquipment - name: research-technology-salvage-equipment - icon: - sprite: Objects/Tools/handdrill.rsi - state: handdrill - discipline: Industrial - tier: 1 - cost: 7500 - recipeUnlocks: - - MiningDrill - - MineralScannerEmpty - - OreProcessorIndustrialMachineCircuitboard - - ClothingMaskWeldingGas - -- type: technology - id: SpaceScanning - name: research-technology-space-scanning - icon: - sprite: Objects/Tools/handheld_mass_scanner.rsi - state: icon - discipline: Industrial - tier: 1 - cost: 5000 - recipeUnlocks: - - RadarConsoleCircuitboard - - HandHeldMassScanner - - BorgModuleGPS - - type: technology id: AdvancedPowercells name: research-technology-advanced-powercells @@ -43,18 +14,6 @@ - TurboItemRechargerCircuitboard - SMESAdvancedMachineCircuitboard -- type: technology - id: MechanicalCompression - name: research-technology-mechanical-compression - icon: - sprite: Structures/Machines/flatpacker.rsi - state: base - discipline: Industrial - tier: 1 - cost: 10000 - recipeUnlocks: - - FlatpackerMachineCircuitboard - - type: technology id: IndustrialEngineering name: research-technology-industrial-engineering @@ -136,6 +95,19 @@ - GyroscopeMachineCircuitboard - MiniGravityGeneratorCircuitboard +- type: technology + id: DeterrenceTechnologies + name: research-technology-deterrence + icon: + sprite: Objects/Weapons/Guns/Battery/particle_decelerator.rsi + state: base + discipline: Industrial + tier: 2 + cost: 7500 + recipeUnlocks: + - WeaponParticleDecelerator + - HoloprojectorField + - type: technology id: AdvancedAtmospherics name: research-technology-advanced-atmospherics @@ -169,20 +141,6 @@ - Fulton - FultonBeacon -- type: technology - id: MassExcavation - name: research-technology-excavation - icon: - sprite: Objects/Tools/handdrilldiamond.rsi - state: handdrill - discipline: Industrial - tier: 2 - cost: 12500 - recipeUnlocks: - - OreBagOfHolding - - MiningDrillDiamond - - AdvancedMineralScannerEmpty - # Tier 3 - type: technology diff --git a/Resources/Prototypes/Research/transport_and_mining.yml b/Resources/Prototypes/Research/transport_and_mining.yml new file mode 100644 index 000000000000..f7fe25ee48cb --- /dev/null +++ b/Resources/Prototypes/Research/transport_and_mining.yml @@ -0,0 +1,106 @@ +- type: technology + id: SalvageEquipment + name: research-technology-salvage-equipment + icon: + sprite: Objects/Tools/handdrill.rsi + state: handdrill + discipline: TransportAndMining + tier: 1 + cost: 7500 + recipeUnlocks: + - MiningDrill + - MineralScannerEmpty + - OreProcessorIndustrialMachineCircuitboard + - ClothingMaskWeldingGas + +- type: technology + id: SpaceScanning + name: research-technology-space-scanning + icon: + sprite: Objects/Tools/handheld_mass_scanner.rsi + state: icon + discipline: TransportAndMining + tier: 1 + cost: 7500 + recipeUnlocks: + - RadarConsoleCircuitboard + - HandHeldMassScanner + - BorgModuleGPS + +- type: technology + id: SalvageWeapons + name: research-technology-salvage-weapons + icon: + sprite: Objects/Weapons/Guns/Basic/kinetic_accelerator.rsi + state: icon + discipline: TransportAndMining + tier: 2 + cost: 10000 + recipeUnlocks: + - WeaponProtoKineticAccelerator + - ShuttleGunKineticCircuitboard + - WeaponGrapplingGun + # These are roundstart but not replenishable for salvage + +- type: technology + id: MassExcavation + name: research-technology-excavation + icon: + sprite: Objects/Tools/handdrilldiamond.rsi + state: handdrill + discipline: TransportAndMining + tier: 2 + cost: 12500 + recipeUnlocks: + - OreBagOfHolding + - MiningDrillDiamond + - AdvancedMineralScannerEmpty + +- type: technology + id: BluespaceCargoTransport + name: research-technology-bluespace-cargo-transport + icon: + sprite: Structures/cargo_telepad.rsi + state: display + discipline: TransportAndMining + tier: 3 + cost: 15000 + recipeUnlocks: + - CargoTelepadMachineCircuitboard + +- type: latheRecipePack + id: TransportAndMining1 + recipes: + - MiningDrill + - MineralScannerEmpty + - OreProcessorIndustrialMachineCircuitboard + - ClothingMaskWeldingGas + +- type: latheRecipePack + id: TransportAndMining2 + recipes: + - RadarConsoleCircuitboard + - HandHeldMassScanner + - BorgModuleGPS + +- type: latheRecipePack + id: TransportAndMining3 + recipes: + - WeaponProtoKineticAccelerator + - ShuttleGunKineticCircuitboard + - WeaponGrapplingGun + +- type: latheRecipePack + id: TransportAndMining4 + recipes: + - OreBagOfHolding + - MiningDrillDiamond + - AdvancedMineralScannerEmpty + +- type: latheRecipePack + id: TransportAndMining5 + recipes: + - CargoTelepadMachineCircuitboard + + + diff --git a/Resources/Textures/Interface/Misc/research_disciplines.rsi/arsenal.png b/Resources/Textures/Interface/Misc/research_disciplines.rsi/arsenal.png index 1bb171df85e4..46b7109f6a08 100644 Binary files a/Resources/Textures/Interface/Misc/research_disciplines.rsi/arsenal.png and b/Resources/Textures/Interface/Misc/research_disciplines.rsi/arsenal.png differ diff --git a/Resources/Textures/Interface/Misc/research_disciplines.rsi/biochemical.png b/Resources/Textures/Interface/Misc/research_disciplines.rsi/biochemical.png index 80b9b3047294..68045f91f3ff 100644 Binary files a/Resources/Textures/Interface/Misc/research_disciplines.rsi/biochemical.png and b/Resources/Textures/Interface/Misc/research_disciplines.rsi/biochemical.png differ diff --git a/Resources/Textures/Interface/Misc/research_disciplines.rsi/experimental.png b/Resources/Textures/Interface/Misc/research_disciplines.rsi/experimental.png index 20ab8092ceae..d72f02029738 100644 Binary files a/Resources/Textures/Interface/Misc/research_disciplines.rsi/experimental.png and b/Resources/Textures/Interface/Misc/research_disciplines.rsi/experimental.png differ diff --git a/Resources/Textures/Interface/Misc/research_disciplines.rsi/industrial.png b/Resources/Textures/Interface/Misc/research_disciplines.rsi/industrial.png index 80427526a61b..16ddede2dc9f 100644 Binary files a/Resources/Textures/Interface/Misc/research_disciplines.rsi/industrial.png and b/Resources/Textures/Interface/Misc/research_disciplines.rsi/industrial.png differ diff --git a/Resources/Textures/Interface/Misc/research_disciplines.rsi/meta.json b/Resources/Textures/Interface/Misc/research_disciplines.rsi/meta.json index 0284c3b1fdf1..c2515840613e 100644 --- a/Resources/Textures/Interface/Misc/research_disciplines.rsi/meta.json +++ b/Resources/Textures/Interface/Misc/research_disciplines.rsi/meta.json @@ -21,6 +21,9 @@ }, { "name": "industrial" + }, + { + "name": "transport_and_mining" } ] } diff --git a/Resources/Textures/Interface/Misc/research_disciplines.rsi/transport_and_mining.png b/Resources/Textures/Interface/Misc/research_disciplines.rsi/transport_and_mining.png new file mode 100644 index 000000000000..454be4d30fd8 Binary files /dev/null and b/Resources/Textures/Interface/Misc/research_disciplines.rsi/transport_and_mining.png differ diff --git a/Resources/Textures/Objects/Misc/module.rsi/meta.json b/Resources/Textures/Objects/Misc/module.rsi/meta.json index fed9220aae31..ec022450f8c9 100644 --- a/Resources/Textures/Objects/Misc/module.rsi/meta.json +++ b/Resources/Textures/Objects/Misc/module.rsi/meta.json @@ -353,6 +353,9 @@ }, { "name": "supply" + }, + { + "name": "universal" } ] } diff --git a/Resources/Textures/Objects/Misc/module.rsi/universal.png b/Resources/Textures/Objects/Misc/module.rsi/universal.png new file mode 100644 index 000000000000..c6060aa01400 Binary files /dev/null and b/Resources/Textures/Objects/Misc/module.rsi/universal.png differ diff --git a/Resources/Textures/Structures/Machines/techfab.rsi/ammo.png b/Resources/Textures/Structures/Machines/techfab.rsi/general.png similarity index 65% rename from Resources/Textures/Structures/Machines/techfab.rsi/ammo.png rename to Resources/Textures/Structures/Machines/techfab.rsi/general.png index c2f1c61ace7f..89ea255ade6e 100644 Binary files a/Resources/Textures/Structures/Machines/techfab.rsi/ammo.png and b/Resources/Textures/Structures/Machines/techfab.rsi/general.png differ diff --git a/Resources/Textures/Structures/Machines/techfab.rsi/meta.json b/Resources/Textures/Structures/Machines/techfab.rsi/meta.json index 7530b9322a27..1652545983ed 100644 --- a/Resources/Textures/Structures/Machines/techfab.rsi/meta.json +++ b/Resources/Textures/Structures/Machines/techfab.rsi/meta.json @@ -29,7 +29,10 @@ "name": "cargo" }, { - "name": "ammo" + "name": "universal" + }, + { + "name": "general" }, { "name": "panel" diff --git a/Resources/Textures/Structures/Machines/techfab.rsi/universal.png b/Resources/Textures/Structures/Machines/techfab.rsi/universal.png new file mode 100644 index 000000000000..8ba420c95846 Binary files /dev/null and b/Resources/Textures/Structures/Machines/techfab.rsi/universal.png differ