diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index dc6e718290b75b..3b5bfe1cb8b19a 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -209,6 +209,14 @@ - type: GuideHelp guides: - Cyborgs + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - RobotTalk + understands: + - GalacticCommon + - RobotTalk - type: entity id: BaseBorgChassisNT diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 1251884965e96b..682fa8186af6cf 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -48,8 +48,14 @@ flavorKind: station-event-random-sentience-flavor-organic - type: Bloodstream bloodMaxVolume: 50 - - type: ReplacementAccent - accent: mouse + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: mouse + - type: LanguageSpeaker + speaks: + - Mouse + understands: + - Mouse - type: MeleeWeapon soundHit: path: /Audio/Effects/bite.ogg @@ -121,7 +127,13 @@ rootTask: task: SimpleHostileCompound - type: ZombieImmune - + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - Bee + understands: + - Bee + - type: entity name: bee suffix: Angry @@ -221,8 +233,14 @@ - type: EggLayer eggSpawn: - id: FoodEgg - - type: ReplacementAccent - accent: chicken + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: chicken + - type: LanguageSpeaker + speaks: + - Chicken + understands: + - Chicken - type: SentienceTarget flavorKind: station-event-random-sentience-flavor-organic - type: NpcFactionMember @@ -589,8 +607,14 @@ - type: EggLayer eggSpawn: - id: FoodEgg - - type: ReplacementAccent - accent: duck + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: duck + - type: LanguageSpeaker + speaks: + - Duck + understands: + - Duck - type: SentienceTarget flavorKind: station-event-random-sentience-flavor-organic - type: NpcFactionMember @@ -775,6 +799,12 @@ - type: GuideHelp guides: - Chef + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - Cow + understands: + - Cow - type: entity name: crab @@ -1062,8 +1092,14 @@ - type: Inventory speciesId: kangaroo templateId: kangaroo - - type: ReplacementAccent - accent: kangaroo + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: kangaroo + - type: LanguageSpeaker + speaks: + - Kangaroo + understands: + - Kangaroo - type: InventorySlots - type: Strippable - type: Butcherable @@ -1262,6 +1298,12 @@ Burn: 3 clumsySound: path: /Audio/Animals/monkey_scream.ogg + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - Monkey + understands: + - Monkey - type: entity name: monkey @@ -1544,8 +1586,14 @@ spawned: - id: FoodMeatRat amount: 1 - - type: ReplacementAccent - accent: mouse + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: mouse + - type: LanguageSpeaker + speaks: + - Mouse + understands: + - Mouse - type: Tag tags: - Trash @@ -2108,8 +2156,14 @@ - type: MeleeChemicalInjector transferAmount: 0.75 solution: melee - - type: ReplacementAccent - accent: xeno + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: xeno + - type: LanguageSpeaker + speaks: + - Xeno + understands: + - Xeno - type: InteractionPopup successChance: 0.5 interactSuccessString: petting-success-tarantula @@ -2469,8 +2523,12 @@ spawned: - id: FoodMeat amount: 2 - - type: ReplacementAccent - accent: dog + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - Dog + understands: + - Dog - type: InteractionPopup interactSuccessString: petting-success-dog interactFailureString: petting-failure-generic @@ -2487,6 +2545,12 @@ - type: Tag tags: - VimPilot + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - Dog + understands: + - Dog - type: entity name: corrupted corgi @@ -2621,8 +2685,14 @@ spawned: - id: FoodMeat amount: 3 - - type: ReplacementAccent - accent: cat + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: cat + - type: LanguageSpeaker + speaks: + - Cat + understands: + - Cat - type: InteractionPopup successChance: 0.7 interactSuccessString: petting-success-cat @@ -2984,8 +3054,14 @@ spawned: - id: FoodMeat amount: 1 - - type: ReplacementAccent - accent: mouse + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: mouse + - type: LanguageSpeaker + speaks: + - Mouse + understands: + - Mouse - type: Tag tags: - VimPilot @@ -3091,8 +3167,14 @@ interactSuccessSpawn: EffectHearts interactSuccessSound: path: /Audio/Animals/pig_oink.ogg - - type: ReplacementAccent - accent: pig + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: pig + - type: LanguageSpeaker + speaks: + - Pig + understands: + - Pig - type: SentienceTarget flavorKind: station-event-random-sentience-flavor-organic - type: NpcFactionMember diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml b/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml index 472daed59b7a27..e3a9551a249098 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml @@ -15,8 +15,14 @@ - type: Sprite sprite: Mobs/Aliens/Argocyte/argocyte_common.rsi - type: SolutionContainerManager - - type: ReplacementAccent - accent: xeno + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: xeno + - type: LanguageSpeaker + speaks: + - Xeno + understands: + - Xeno - type: Bloodstream bloodReagent: FerrochromicAcid bloodMaxVolume: 75 #we don't want the map to become pools of blood diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml b/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml index bc63deeac36f13..34a68d984bd64e 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml @@ -5,6 +5,12 @@ abstract: true description: A floating demon aspect of the honkmother. components: + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + understands: + - GalacticCommon - type: GhostRole allowMovement: true makeSentient: true @@ -112,9 +118,6 @@ Radiation: 10 - type: Input context: "human" - - type: Bloodstream - bloodMaxVolume: 300 - bloodReagent: Laughter - type: entity name: behonker diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml index 73082674736452..6824cce08e9ff4 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml @@ -70,8 +70,14 @@ tags: - Carp - DoorBumpOpener - - type: ReplacementAccent - accent: genericAggressive + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: genericAggressive + - type: LanguageSpeaker + speaks: + - Xeno + understands: + - Xeno - type: Speech speechVerb: LargeMob - type: InteractionPopup @@ -167,23 +173,24 @@ - type: HTN rootTask: task: DragonCarpCompound + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - Xeno + understands: + - GalacticCommon + - Xeno - type: entity id: MobCarpDungeon parent: MobCarp suffix: Dungeon components: - - type: MobThresholds - thresholds: - 0: Alive - 50: Dead - - type: SlowOnDamage - speedModifierThresholds: - 25: 0.7 - type: MeleeWeapon damage: types: - Slash: 6 + Slash: 5 - type: entity name: sharkminnow diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/dummy_npcs.yml b/Resources/Prototypes/Entities/Mobs/NPCs/dummy_npcs.yml index 245d4227fdcdd6..9bdd868a2ee74c 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/dummy_npcs.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/dummy_npcs.yml @@ -1,6 +1,6 @@ - type: entity save: false - name: pathfinding dummy + name: Pathfinding Dummy parent: BaseMobHuman id: MobHumanPathDummy description: A miserable pile of secrets. diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml index 9694148287dbc3..40e8c489945705 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml @@ -118,9 +118,9 @@ collection: GlassBreak - !type:SpawnEntitiesBehavior spawn: - SpaceQuartz1: - min: 2 - max: 4 + SpaceQuartz: + min: 4 + max: 6 - !type:DoActsBehavior acts: [ "Destruction" ] @@ -150,8 +150,8 @@ - !type:SpawnEntitiesBehavior spawn: SteelOre1: - min: 2 - max: 4 + min: 4 + max: 6 - !type:DoActsBehavior acts: [ "Destruction" ] @@ -181,8 +181,8 @@ - !type:SpawnEntitiesBehavior spawn: UraniumOre1: - min: 1 - max: 3 + min: 3 + max: 6 - !type:DoActsBehavior acts: [ "Destruction" ] - type: PointLight @@ -214,8 +214,8 @@ - !type:SpawnEntitiesBehavior spawn: SilverOre1: - min: 1 - max: 3 + min: 4 + max: 6 - !type:DoActsBehavior acts: [ "Destruction" ] @@ -264,7 +264,7 @@ animation: WeaponArcBite damage: types: - Slash: 8 + Slash: 15 - type: MeleeChemicalInjector solution: bloodstream transferAmount: 5 @@ -288,6 +288,12 @@ solution: bloodstream - type: DrainableSolution solution: bloodstream + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - Bubblish + understands: + - Bubblish - type: entity name: Reagent Slime Spawner @@ -310,10 +316,6 @@ - ReagentSlimeToxin - ReagentSlimeNapalm - ReagentSlimeOmnizine - - ReagentSlimeMuteToxin - - ReagentSlimeNorepinephricAcid - - ReagentSlimeEphedrine - - ReagentSlimeRobustHarvest chance: 1 - type: entity @@ -349,9 +351,6 @@ - map: [ "enum.DamageStateVisualLayers.Base" ] state: alive color: "#AAAAAA" - - type: MeleeChemicalInjector - solution: bloodstream - transferAmount: 1 - type: entity id: ReagentSlimeNocturine @@ -369,9 +368,6 @@ - map: [ "enum.DamageStateVisualLayers.Base" ] state: alive color: "#128e80" - - type: MeleeChemicalInjector - solution: bloodstream - transferAmount: 3 - type: entity id: ReagentSlimeTHC @@ -457,71 +453,3 @@ - map: [ "enum.DamageStateVisualLayers.Base" ] state: alive color: "#fcf7f9" - -- type: entity - id: ReagentSlimeMuteToxin - parent: ReagentSlime - suffix: Mute Toxin - components: - - type: Bloodstream - bloodReagent: MuteToxin - - type: PointLight - color: "#0f0f0f" - - type: Sprite - drawdepth: Mobs - sprite: Mobs/Aliens/elemental.rsi - layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#0f0f0f" - -- type: entity - id: ReagentSlimeNorepinephricAcid - parent: ReagentSlime - suffix: Norepinephric Acid - components: - - type: Bloodstream - bloodReagent: NorepinephricAcid - - type: PointLight - color: "#96a8b5" - - type: Sprite - drawdepth: Mobs - sprite: Mobs/Aliens/elemental.rsi - layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#96a8b5" - -- type: entity - id: ReagentSlimeEphedrine - parent: ReagentSlime - suffix: Ephedrine - components: - - type: Bloodstream - bloodReagent: Ephedrine - - type: PointLight - color: "#D2FFFA" - - type: Sprite - drawdepth: Mobs - sprite: Mobs/Aliens/elemental.rsi - layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#D2FFFA" - -- type: entity - id: ReagentSlimeRobustHarvest - parent: ReagentSlime - suffix: Robust Harvest - components: - - type: Bloodstream - bloodReagent: RobustHarvest - - type: PointLight - color: "#3e901c" - - type: Sprite - drawdepth: Mobs - sprite: Mobs/Aliens/elemental.rsi - layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#3e901c" diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml b/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml index 06ab02dedc906c..a1bf795bae8ba0 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml @@ -52,8 +52,14 @@ damage: types: Slash: 6 - - type: ReplacementAccent - accent: genericAggressive + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: genericAggressive + - type: LanguageSpeaker + speaks: + - Xeno + understands: + - Xeno - type: entity parent: BaseMobFlesh @@ -252,6 +258,10 @@ Slash: 6 - type: ReplacementAccent accent: genericAggressive + - type: GhostRole + prob: 0.25 + name: ghost-role-information-salvage-flesh-name + description: ghost-role-information-salvage-flesh-description - type: SalvageMobRestrictions - type: entity diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/human.yml b/Resources/Prototypes/Entities/Mobs/NPCs/human.yml index 9427989edaf3b5..c50074bc31d74c 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/human.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/human.yml @@ -1,5 +1,5 @@ - type: entity - name: civilian + name: Civilian parent: BaseMobHuman id: MobCivilian description: A miserable pile of secrets. @@ -13,7 +13,7 @@ - NanoTrasen - type: entity - name: salvager + name: Salvager parent: BaseMobHuman id: MobSalvager components: @@ -30,7 +30,7 @@ task: SimpleHumanoidHostileCompound - type: entity - name: spirate + name: Spirate parent: BaseMobHuman id: MobSpirate description: Yarr! diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/lavaland.yml b/Resources/Prototypes/Entities/Mobs/NPCs/lavaland.yml index edbfb5bf12d3eb..1a9709a0c80b37 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/lavaland.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/lavaland.yml @@ -69,6 +69,12 @@ interactFailureString: petting-failure-generic interactSuccessSound: path: /Audio/Animals/lizard_happy.ogg + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - Xeno + understands: + - Xeno - type: entity id: MobWatcherLavaland diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml b/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml index cc75405e1033c6..52a0a1c5897db1 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml @@ -18,8 +18,8 @@ - SimpleHostile - type: MovementIgnoreGravity - type: MovementSpeedModifier - baseWalkSpeed: 3.5 - baseSprintSpeed: 3.5 + baseWalkSpeed: 5.5 + baseSprintSpeed: 5.5 - type: Sprite drawdepth: Mobs sprite: Mobs/Elemental/living_light/luminous_person.rsi @@ -33,10 +33,7 @@ - type: MobThresholds thresholds: 0: Alive - 50: Dead - - type: SlowOnDamage - speedModifierThresholds: - 20: 0.5 + 100: Dead - type: DamageStateVisuals states: Alive: @@ -73,15 +70,15 @@ types: Heat: -0.2 - type: NoSlip - - type: Pullable - type: ZombieImmune - type: NameIdentifier group: GenericNumber - type: GhostTakeoverAvailable - type: PointLight - radius: 3.0 - energy: 4.5 - color: "#6270bb" + color: "#e4de6c" + radius: 8 + softness: 2 + energy: 5 - type: FootstepModifier footstepSoundCollection: collection: FootstepBells @@ -90,17 +87,16 @@ - type: Tag tags: - FootstepSound + - DoorBumpOpener - type: Destructible thresholds: - - trigger: - !type:DamageTrigger - damage: 50 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - !type:PlaySoundBehavior - sound: - collection: GlassBreak + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 150 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] - type: entity id: MobLuminousPerson @@ -109,7 +105,7 @@ - type: MeleeWeapon damage: types: - Heat: 10 + Heat: 16 animation: WeaponArcFist - type: StaminaDamageOnHit damage: 16 @@ -143,7 +139,16 @@ - type: MeleeWeapon damage: types: - Heat: 6 + Heat: 8 + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 80 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] - type: entity id: MobLuminousEntity @@ -162,7 +167,7 @@ - type: MobThresholds thresholds: 0: Alive - 40: Dead + 60: Dead - type: DamageStateVisuals states: Alive: @@ -176,7 +181,7 @@ types: Heat: 5 - type: HitscanBatteryAmmoProvider - proto: RedLaser + proto: Pulse fireCost: 140 - type: Battery maxCharge: 1000 @@ -195,3 +200,12 @@ path: /Audio/Weapons/Guns/Gunshots/laser3.ogg soundEmpty: path: /Audio/Items/Lighters/lighter_off.ogg + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml index 657ac466f84660..635f31a171f123 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml @@ -41,3 +41,11 @@ - type: MovementSpeedModifier baseWalkSpeed : 1 baseSprintSpeed : 1 + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - Xeno + understands: + - GalacticCommon + - Xeno diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml b/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml index 633a4ff3cac704..74ac666769e76d 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml @@ -66,3 +66,9 @@ interactFailureString: petting-failure-generic interactSuccessSound: path: /Audio/Animals/lizard_happy.ogg + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - Xeno + understands: + - Xeno diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml index 6ad5a4f647c25d..c0654b8a646475 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml @@ -110,6 +110,7 @@ - type: NpcFactionMember factions: - PetsNT + - Cat - type: HTN rootTask: task: SimpleHostileCompound @@ -131,6 +132,7 @@ - type: NpcFactionMember factions: - PetsNT + - Cat - type: Grammar attributes: proper: true @@ -146,6 +148,9 @@ parent: MobCatCaracal description: He out here. components: + - type: NpcFactionMember + factions: + - Cat - type: Fixtures fixtures: fix1: @@ -186,6 +191,9 @@ id: MobBingus description: Bingus my beloved... components: + - type: NpcFactionMember + factions: + - Cat - type: Sprite drawdepth: Mobs sprite: Mobs/Pets/bingus.rsi @@ -288,8 +296,14 @@ spawned: - id: FoodMeat amount: 2 - - type: ReplacementAccent - accent: dog + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: dog + - type: LanguageSpeaker + speaks: + - Dog + understands: + - Dog - type: InteractionPopup successChance: 0.5 interactSuccessString: petting-success-dog @@ -387,8 +401,14 @@ spawned: - id: FoodMeat amount: 3 - - type: ReplacementAccent - accent: dog + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: dog + - type: LanguageSpeaker + speaks: + - Dog + understands: + - Dog - type: InteractionPopup successChance: 0.7 interactSuccessString: petting-success-dog @@ -557,15 +577,8 @@ drawdepth: SmallMobs sprite: Mobs/Pets/hamlet.rsi layers: - - map: ["enum.DamageStateVisualLayers.Base", "movement"] + - map: ["enum.DamageStateVisualLayers.Base"] state: hamster-0 - - type: SpriteMovement - movementLayers: - movement: - state: hamster-moving-0 - noMovementLayers: - movement: - state: hamster-0 - type: GhostRole makeSentient: true allowSpeech: true @@ -615,26 +628,35 @@ - type: Sprite drawdepth: Mobs layers: - - map: ["enum.DamageStateVisualLayers.Base", "movement"] + - map: ["enum.DamageStateVisualLayers.Base"] state: shiva sprite: Mobs/Pets/shiva.rsi - - type: SpriteMovement - movementLayers: - movement: - state: shiva-moving - noMovementLayers: - movement: - state: shiva - type: HTN rootTask: task: SimpleHostileCompound - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 130 + mask: + - MobMask + layer: + - MobLayer - type: DamageStateVisuals states: Alive: Base: shiva Dead: Base: shiva_dead + - type: Butcherable + spawned: + - id: FoodMeatSpider + amount: 2 + - type: CombatMode - type: MobThresholds thresholds: 0: Alive @@ -648,6 +670,17 @@ types: Piercing: 8 Poison: 8 + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: xeno + - type: LanguageSpeaker + speaks: + - Xeno + understands: + - Xeno + - type: NoSlip + - type: Spider + - type: IgnoreSpiderWeb - type: Grammar attributes: proper: true @@ -656,8 +689,6 @@ tags: - CannotSuicide - VimPilot - - DoorBumpOpener - - FootstepSound - type: StealTarget stealGroup: AnimalShiva @@ -772,6 +803,8 @@ makeSentient: true allowSpeech: true allowMovement: true + requirements: + - !type:WhitelistRequirement name: ghost-role-information-punpun-name description: ghost-role-information-punpun-description - type: GhostTakeoverAvailable @@ -821,5 +854,3 @@ proper: true gender: male # - type: AlwaysRevolutionaryConvertible - - type: StealTarget - stealGroup: AnimalTropico diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml index a2875582127222..5247c17fc87f86 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml @@ -114,6 +114,14 @@ - type: Grammar attributes: gender: male + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - Mouse + understands: + - GalacticCommon + - Mouse - type: entity id: MobRatKingBuff @@ -182,15 +190,8 @@ drawdepth: SmallMobs sprite: Mobs/Animals/mouse.rsi layers: - - map: ["enum.DamageStateVisualLayers.Base", "movement"] + - map: ["enum.DamageStateVisualLayers.Base"] state: mouse-3 - - type: SpriteMovement - movementLayers: - movement: - state: mouse-moving-3 - noMovementLayers: - movement: - state: mouse-3 - type: Physics bodyType: KinematicController - type: Fixtures @@ -272,6 +273,13 @@ - type: GuideHelp guides: - MinorAntagonists + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - Mouse + understands: + - GalacticCommon + - Mouse - type: weightedRandomEntity id: RatKingLoot diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml b/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml index 68ebf52dc06548..531df7c1574c94 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml @@ -93,3 +93,11 @@ - RevenantTheme - type: Speech speechVerb: Ghost + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - Xeno + understands: + - GalacticCommon + - Xeno diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index 42b7ff9e2119f9..b8377b2a3f7ab0 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -107,6 +107,14 @@ - type: TypingIndicator proto: robot - type: ZombieImmune + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - RobotTalk + understands: + - GalacticCommon + - RobotTalk - type: entity parent: MobSiliconBase diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml index 41fb6a5eec4384..fbacd05bea8835 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml @@ -111,8 +111,14 @@ successChance: 0.5 interactSuccessString: petting-success-slimes interactFailureString: petting-failure-generic - - type: ReplacementAccent - accent: slimes + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: slimes + - type: LanguageSpeaker + speaks: + - Bubblish + understands: + - Bubblish - type: GhostTakeoverAvailable - type: GhostRole makeSentient: true diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index a08b46fb512272..57bb8519ac6347 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -165,8 +165,14 @@ - type: FootstepModifier footstepSoundCollection: collection: FootstepBounce - - type: ReplacementAccent - accent: kangaroo + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: kangaroo + - type: LanguageSpeaker + speaks: + - Kangaroo + understands: + - Kangaroo - type: InventorySlots - type: Strippable - type: UserInterface @@ -238,18 +244,24 @@ damage: types: Piercing: 6 - Poison: 4 + Poison: 2 - type: SolutionContainerManager solutions: melee: reagents: - ReagentId: ChloralHydrate - Quantity: 80 + Quantity: 60 - type: MeleeChemicalInjector solution: melee - transferAmount: 4 - - type: ReplacementAccent - accent: xeno + transferAmount: 3 + # Frontier - languages mechanic +# - type: ReplacementAccent +# accent: xeno + - type: LanguageSpeaker + speaks: + - Xeno + understands: + - Xeno - type: InteractionPopup successChance: 0.20 interactSuccessString: petting-success-tarantula @@ -268,8 +280,6 @@ Male: UnisexArachnid Female: UnisexArachnid Unsexed: UnisexArachnid - - type: TypingIndicator - proto: spider - type: entity id: MobSpiderSpaceSalvage @@ -351,8 +361,14 @@ - type: MeleeChemicalInjector solution: melee transferAmount: 6 - - type: ReplacementAccent - accent: xeno +# Frontier - languages mechanic +# - type: ReplacementAccent +# accent: xeno + - type: LanguageSpeaker + speaks: + - Xeno + understands: + - Xeno - type: InteractionPopup successChance: 0.2 interactSuccessString: petting-success-snake diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml b/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml index 0a2b4f80bbcd34..26295f52f753ec 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml @@ -74,8 +74,14 @@ Quantity: 5 - type: MeleeChemicalInjector solution: melee - - type: ReplacementAccent - accent: genericAggressive + # Frontier - languages mechanic + # - type: ReplacementAccent + # accent: genericAggressive + - type: LanguageSpeaker + speaks: + - Xeno + understands: + - Xeno - type: Speech speechVerb: SmallMob - type: NonSpreaderZombie diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index 01ff22368913a9..d972936de41c11 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -120,6 +120,12 @@ molsPerSecondPerUnitMass: 0.0005 - type: Speech speechVerb: LargeMob + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - Xeno + understands: + - Xeno - type: entity name: Praetorian diff --git a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml index d188070b269020..7b635e09efd8d8 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml @@ -123,6 +123,14 @@ - type: Tag tags: - CannotSuicide + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - Xeno + understands: + - GalacticCommon + - Xeno - type: entity parent: BaseMobDragon diff --git a/Resources/Prototypes/Entities/Mobs/Player/familiars.yml b/Resources/Prototypes/Entities/Mobs/Player/familiars.yml index 63e27b8c53059c..c69d392c1035fd 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/familiars.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/familiars.yml @@ -30,6 +30,13 @@ - PetsNT - type: Alerts - type: Familiar + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - Mouse + understands: + - GalacticCommon + - Mouse - type: entity name: Cerberus @@ -88,3 +95,10 @@ Male: Cerberus Female: Cerberus Unsexed: Cerberus + - type: LanguageSpeaker + speaks: + - Dog + understands: + - GalacticCommon + - CodeSpeak + - Dog \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml index d892b31fac3a53..8e3379563960b6 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml @@ -134,6 +134,14 @@ - type: HTN rootTask: task: SimpleHumanoidHostileCompound + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - CodeSpeak + understands: + - GalacticCommon + - CodeSpeak # From Wizard deck of cards - type: entity @@ -161,6 +169,12 @@ map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] color: "#40a7d7" shader: unshaded + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + understands: + - GalacticCommon - type: entity name: HoloClown @@ -241,6 +255,12 @@ - type: HTN rootTask: task: SimpleHumanoidHostileCompound + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + understands: + - GalacticCommon - type: entity id: ActionToggleGuardian diff --git a/Resources/Prototypes/Entities/Mobs/Player/observer.yml b/Resources/Prototypes/Entities/Mobs/Player/observer.yml index 114c3fa747986b..b62de96a35fca0 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/observer.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/observer.yml @@ -48,6 +48,8 @@ - type: Tag tags: - BypassInteractionRangeChecks + # Frontier - languages mechanic + - type: UniversalLanguageSpeaker # Ghosts should understand any language. - type: entity id: ActionGhostBoo diff --git a/Resources/Prototypes/Entities/Mobs/Player/replay_observer.yml b/Resources/Prototypes/Entities/Mobs/Player/replay_observer.yml index ad9b37f63e1d27..789a291ad4716d 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/replay_observer.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/replay_observer.yml @@ -7,3 +7,5 @@ - type: MovementSpeedModifier baseSprintSpeed: 24 baseWalkSpeed: 16 + # Frontier - languages mechanic + - type: UniversalLanguageSpeaker \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml index 072c419bc86ad5..45a5c8c5c9083e 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml @@ -69,7 +69,15 @@ - type: Tag tags: - ShoesRequiredStepTriggerImmune - + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - RobotTalk + understands: + - GalacticCommon + - RobotTalk + - type: entity name: drone id: Drone diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index eb104e05fa3090..a72030aac69de7 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -301,6 +301,12 @@ Asphyxiation: -1.0 - type: FireVisuals alternateState: Standing + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + understands: + - GalacticCommon - type: entity save: false diff --git a/Resources/Prototypes/Entities/Mobs/Species/diona.yml b/Resources/Prototypes/Entities/Mobs/Species/diona.yml index 6371fb74eb8457..783768c2b98c4d 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/diona.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/diona.yml @@ -94,6 +94,13 @@ - type: BodyEmotes soundsId: DionaBodyEmotes - type: IgnoreKudzu + - type: LanguageSpeaker + speaks: + - GalacticCommon + - RootSpeak + understands: + - GalacticCommon + - RootSpeak - type: entity parent: BaseSpeciesDummy diff --git a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml index 2c0ab1e15d78fc..f266205b56a1a0 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml @@ -51,7 +51,15 @@ accent: dwarf - type: Speech speechSounds: Bass - + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - SolCommon + understands: + - GalacticCommon + - SolCommon + - type: entity parent: BaseSpeciesDummy id: MobDwarfDummy diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml index d469d6c60fb5c6..51c21e93f03863 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml @@ -15,6 +15,14 @@ spawned: - id: FoodMeatHuman amount: 5 + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - SolCommon + understands: + - GalacticCommon + - SolCommon - type: entity parent: BaseSpeciesDummy diff --git a/Resources/Prototypes/Entities/Mobs/Species/ipc.yml b/Resources/Prototypes/Entities/Mobs/Species/ipc.yml index 39c5295a0e1296..9b73dd186f0edd 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/ipc.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/ipc.yml @@ -129,6 +129,14 @@ - type: Inventory templateId: ipc - type: ZombieImmune + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - RobotTalk + understands: + - GalacticCommon + - RobotTalk - type: entity name: Urist McIPC diff --git a/Resources/Prototypes/Entities/Mobs/Species/moth.yml b/Resources/Prototypes/Entities/Mobs/Species/moth.yml index 199e99bef39078..605c4b7d144e1e 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/moth.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/moth.yml @@ -115,6 +115,13 @@ sprite: "Effects/creampie.rsi" state: "creampie_moth" visible: false + - type: LanguageSpeaker # Frontier + speaks: + - GalacticCommon + - Moffic + understands: + - GalacticCommon + - Moffic - type: entity parent: BaseSpeciesDummy diff --git a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml index f00c2f6db393d9..47840a44a5e2cb 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml @@ -58,6 +58,14 @@ types: Heat : 1.5 #per second, scales with temperature & other constants - type: Wagging + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - Draconic + understands: + - GalacticCommon + - Draconic - type: entity parent: BaseSpeciesDummy diff --git a/Resources/Prototypes/Entities/Mobs/Species/slime.yml b/Resources/Prototypes/Entities/Mobs/Species/slime.yml index dfb2dd3919e256..142c8ba116e71b 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/slime.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/slime.yml @@ -73,6 +73,14 @@ types: Asphyxiation: -1.0 maxSaturation: 15 + # Frontier - languages mechanic + - type: LanguageSpeaker + speaks: + - GalacticCommon + - Bubblish + understands: + - GalacticCommon + - Bubblish - type: entity parent: MobHumanDummy diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index ac926119849033..7a4ad5fdf0093b 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -314,6 +314,21 @@ - FauxTileAstroIce - OreBagOfHolding - DeviceQuantumSpinInverter + # Frontier - languages mechanic + - BubblishTranslator + - DraconicTranslator + - SolCommonTranslator + - RootSpeakTranslator + - XenoTranslator + - BasicGalaticCommonTranslatorImplanter + - AdvancedGalaticCommonTranslatorImplanter + - BubblishTranslatorImplanter + - DraconicTranslatorImplanter + - SolCommonTranslatorImplanter + - RootSpeakTranslatorImplanter + - AnimalTranslator + - MofficTranslatorImplanter + - MofficTranslator - type: EmagLatheRecipes emagDynamicRecipes: - ExplosivePayload diff --git a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml index 0bfb173c8019ee..ead973690ddaaf 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml @@ -101,6 +101,14 @@ price: 100 - type: Appearance - type: WiresVisuals + # Frontier - languages mechanic (for ghost takeover, mainly) + - type: LanguageSpeaker + speaks: + - GalacticCommon + - RobotTalk + understands: + - GalacticCommon + - RobotTalk - type: entity parent: VendingMachine diff --git a/Resources/Prototypes/_NF/Actions/language.yml b/Resources/Prototypes/_NF/Actions/language.yml new file mode 100644 index 00000000000000..be81f3eca9bf75 --- /dev/null +++ b/Resources/Prototypes/_NF/Actions/language.yml @@ -0,0 +1,10 @@ +- type: entity + id: ActionLanguageMenu + name: Language Menu + description: Show the language menu. + noSpawn: true + components: + - type: InstantAction + icon: _NF/Interface/Actions/language.png + event: !type:LanguageMenuActionEvent + useDelay: 2 diff --git a/Resources/Prototypes/_NF/Entities/Objects/Devices/Misc/translator_implants.yml b/Resources/Prototypes/_NF/Entities/Objects/Devices/Misc/translator_implants.yml new file mode 100644 index 00000000000000..abdaf86ce392cc --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Devices/Misc/translator_implants.yml @@ -0,0 +1,145 @@ +- type: entity + id: BaseTranslatorImplanter + parent: [ BaseItem ] + name: Basic translator implant + description: "Translates speech." + components: + - type: Sprite + sprite: Objects/Specific/Medical/implanter.rsi + state: implanter0 + layers: + - state: implanter1 + map: [ "implantFull" ] + visible: true + - state: implanter0 + map: [ "implantBroken" ] + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ImplanterVisuals.Full: + implantFull: + True: {visible: true} + False: {visible: false} + implantBroken: + True: {visible: false} + False: {visible: true} + +- type: entity + id: BasicGalaticCommonTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: Basic Galatic Common translator implant + description: "An implant giving the ability to understand Galatic Common." + components: + - type: TranslatorImplanter + understood: + - GalacticCommon + +- type: entity + id: AdvancedGalaticCommonTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: Advanced Galatic Common translator implant + description: "An implant giving the ability to understand and speak Galatic Common." + components: + - type: TranslatorImplanter + spoken: + - GalacticCommon + understood: + - GalacticCommon + +- type: entity + id: BubblishTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: Bubblish translator implant + description: "An implant giving the ability to understand and speak Bubblish." + components: + - type: TranslatorImplanter + spoken: + - Bubblish + understood: + - Bubblish + +- type: entity + id: NekomimeticTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: Nekomimetic translator implant + description: "An implant giving the ability to understand and speak Nekomimetic, Nya~!" + components: + - type: TranslatorImplanter + spoken: + - Nekomimetic + understood: + - Nekomimetic + +- type: entity + id: DraconicTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: Draconic translator implant + description: "An implant giving the ability to understand and speak Draconic." + components: + - type: TranslatorImplanter + spoken: + - Draconic + understood: + - Draconic + +- type: entity + id: CanilunztTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: Canilunzt translator implant + description: "An implant giving the ability to understand and speak Canilunzt, Yeeps!" + components: + - type: TranslatorImplanter + spoken: + - Canilunzt + understood: + - Canilunzt + +- type: entity + id: SolCommonTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: SolCommon translator implant + description: "An implant giving the ability to understand and speak SolCommon, raaagh!" + components: + - type: TranslatorImplanter + spoken: + - SolCommon + understood: + - SolCommon + +- type: entity + id: RootSpeakTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: RootSpeak translator implant + description: "An implant giving the ability to understand and speak RootSpeak." + components: + - type: TranslatorImplanter + spoken: + - RootSpeak + understood: + - RootSpeak + +- type: entity + id: MofficTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: Moffic translator implant + description: "An implant giving the ability to understand and speak Moffic." + components: + - type: TranslatorImplanter + spoken: + - Moffic + understood: + - Moffic + +- type: entity + id: CodeSpeakImplanter + parent: [ BaseTranslatorImplanter ] + name: CodeSpeak Implanter + description: "\"CodeSpeak(tm) - Secure your communication with metaphors so elaborate, they seem randomly generated!\"" + components: + - type: TranslatorImplanter + spoken: + - CodeSpeak + understood: + - CodeSpeak + - type: StaticPrice + price: 150 diff --git a/Resources/Prototypes/_NF/Entities/Objects/Devices/Misc/translators.yml b/Resources/Prototypes/_NF/Entities/Objects/Devices/Misc/translators.yml new file mode 100644 index 00000000000000..f875b40102b3a7 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Devices/Misc/translators.yml @@ -0,0 +1,236 @@ +- type: entity + id: TranslatorUnpowered + parent: [ BaseItem ] + name: Translator + description: "Translates speech." + components: + - type: Sprite + sprite: _NF/Objects/Devices/translator.rsi + state: icon + layers: + - state: icon + - state: translator + shader: unshaded + visible: false + map: [ "enum.ToggleVisuals.Layer", "enum.PowerDeviceVisualLayers.Powered" ] + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ToggleVisuals.Toggled: + enum.ToggleVisuals.Layer: + True: { visible: true } + False: { visible: false } + - type: HandheldTranslator + enabled: false + +- type: entity + id: Translator + parent: [ TranslatorUnpowered, PowerCellSlotMediumItem ] + suffix: Powered + components: + - type: PowerCellDraw + drawRate: 1 + +- type: entity + id: TranslatorEmtpy + parent: [ Translator ] + suffix: Empty + components: + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + +- type: entity + id: VulpTranslator + parent: [ Translator ] + name: Vulpkanin translator + description: "Used only by Vulpkanin to understand and speak with Galatic Common speakers." + components: + - type: HandheldTranslator + default-language: GalacticCommon + spoken: + - GalacticCommon + understood: + - GalacticCommon + requires: + - Canilunzt + requires-all: false + - type: PowerCellDraw + drawRate: 0.1 + - type: StaticPrice + price: 35 + +- type: entity + id: CanilunztTranslator + parent: [ TranslatorEmtpy ] + name: Canilunzt translator + description: "Translates speech between Canilunzt and Galactic Common. Commonly used by Vulpkanin to communicate with galactic common speakers" + components: + - type: HandheldTranslator + default-language: GalacticCommon + spoken: + - GalacticCommon + - Canilunzt + understood: + - GalacticCommon + - Canilunzt + requires: + - GalacticCommon + - Canilunzt + requires-all: false + +- type: entity + id: BubblishTranslator + parent: [ TranslatorEmtpy ] + name: Bubblish translator + description: "Translates speech between Bubblish and Galactic Common." + components: + - type: HandheldTranslator + default-language: GalacticCommon + spoken: + - GalacticCommon + - Bubblish + understood: + - GalacticCommon + - Bubblish + requires: + - GalacticCommon + - Bubblish + requires-all: false + +- type: entity + id: NekomimeticTranslator + parent: [ TranslatorEmtpy ] + name: Nekomimetic translator + description: "Translates speech between Nekomimetic and Galactic Common. Why would you want that?" + components: + - type: HandheldTranslator + default-language: GalacticCommon + spoken: + - GalacticCommon + - Nekomimetic + understood: + - GalacticCommon + - Nekomimetic + requires: + - GalacticCommon + - Nekomimetic + requires-all: false + +- type: entity + id: DraconicTranslator + parent: [ TranslatorEmtpy ] + name: Draconic translator + description: "Translates speech between Draconic and Galactic Common." + components: + - type: HandheldTranslator + default-language: GalacticCommon + spoken: + - GalacticCommon + - Draconic + understood: + - GalacticCommon + - Draconic + requires: + - GalacticCommon + - Draconic + requires-all: false + +- type: entity + id: SolCommonTranslator + parent: [ TranslatorEmtpy ] + name: Sol Common translator + description: "Translates speech between Sol Common and Galactic Common. Like a true Earthman!" + components: + - type: HandheldTranslator + default-language: GalacticCommon + spoken: + - GalacticCommon + - SolCommon + understood: + - GalacticCommon + - SolCommon + requires: + - GalacticCommon + - SolCommon + requires-all: false + +- type: entity + id: RootSpeakTranslator + parent: [ TranslatorEmtpy ] + name: RootSpeak translator + description: "Translates speech between RootSpeak and Galactic Common. Like a true plant?" + components: + - type: HandheldTranslator + default-language: GalacticCommon + spoken: + - GalacticCommon + - RootSpeak + understood: + - GalacticCommon + - RootSpeak + requires: + - GalacticCommon + - RootSpeak + requires-all: false + +- type: entity + id: MofficTranslator + parent: [ TranslatorEmtpy ] + name: Moffic translator + description: "Translates speech between Moffic and Galactic Common. Like a true moth... or bug?" + components: + - type: HandheldTranslator + default-language: GalacticCommon + spoken: + - GalacticCommon + - Moffic + understood: + - GalacticCommon + - Moffic + requires: + - GalacticCommon + - Moffic + requires-all: false + +- type: entity + id: XenoTranslator + parent: [ TranslatorEmtpy ] + name: Xeno translator + description: "Translates speech between Xeno and Galactic Common. Not sure if that will help." + components: + - type: HandheldTranslator + default-language: GalacticCommon + spoken: + - GalacticCommon + - Xeno + understood: + - GalacticCommon + - Xeno + requires: + - GalacticCommon + +- type: entity + id: AnimalTranslator + parent: [ TranslatorEmtpy ] + name: Animal translator + description: "Translates all the cutes nosies that animals make into a more understandable form!" + components: + - type: HandheldTranslator + understood: + - Cat + - Dog + - Mothroach + - Monkey + - Bee + - Mouse + - Chicken + - Duck + - Cow + - Sheep + - Kangaroo + - Pig + requires: + - GalacticCommon + requires-all: false diff --git a/Resources/Prototypes/_NF/Language/languages.yml b/Resources/Prototypes/_NF/Language/languages.yml new file mode 100644 index 00000000000000..5b5e747a26e4db --- /dev/null +++ b/Resources/Prototypes/_NF/Language/languages.yml @@ -0,0 +1,407 @@ +# The universal language, assumed if the entity has a UniversalLanguageSpeakerComponent. +# Do not use otherwise. Try to use the respective component instead of this language. +- type: language + id: Universal + obfuscateSyllables: false + replacement: + - "*incomprehensible*" + +# The common galactic tongue. +- type: language + id: GalacticCommon + obfuscateSyllables: true + replacement: + - Blah + - Blah + - Blah + - dingle-doingle + - dingle + - dangle + - jibber-jabber + - jubber + - bleh + - zippity + - zoop + - wibble + - wobble + - wiggle + - yada + - meh + - neh + - nah + - wah + +# Spoken by slimes. +- type: language + id: Bubblish + obfuscateSyllables: true + replacement: + - blob + - plop + - pop + - bop + - boop + +# Spoken by moths. +- type: language + id: Moffic + obfuscateSyllables: true + replacement: + - år + - i + - går + - sek + - mo + - ff + - ok + - gj + - ø + - gå + - la + - le + - lit + - ygg + - van + - dår + - næ + - møt + - idd + - hvo + - ja + - på + - han + - så + - ån + - det + - att + - nå + - gö + - bra + - int + - tyc + - om + - när + - två + - må + - dag + - sjä + - vii + - vuo + - eil + - tun + - käyt + - teh + - vä + - hei + - huo + - suo + - ää + - ten + - ja + - heu + - stu + - uhr + - kön + - we + - hön + + # Spoken by dionas. +- type: language + id: RootSpeak + obfuscateSyllables: true + replacement: + - hs + - zt + - kr + - st + - sh + +# Syndicate operatives can use a series of codewords to convey complex information. +- type: language + id: CodeSpeak + obfuscateSyllables: true + replacement: + - WhiteRussian + - Station Representative + - Sherrif + - Deputy + - Vault + - Frontier + - Station + - Security + - Coffee + - Cola + - Water + - Engineering + - Captain + - Calling a friend + - Atmos + - Robotic + - Medical + - AI + - Human + - Vulpkanin + - Lizard + - Moth + - Tea + - Chair + - Sofa + - Ship + - Shuttle + - Weapon + - Weapons + - Laser + - Carp + - Space Carp + - Xeno + - Xenomorph + - Biohazard + - Money + - Space + - Danger + - Monkey + - Pun pun + - In + - Running + - Killing + - Kill + - Save + - Life + - Dragon + - Ninja + - Secret + +# Spoken by the Lizard race. +- type: language + id: Draconic + obfuscateSyllables: true + replacement: + - za + - az + - ze + - ez + - zi + - iz + - zo + - oz + - zu + - uz + - zs + - sz + - ha + - ah + - he + - eh + - hi + - ih + - ho + - oh + - hu + - uh + - hs + - sh + - la + - al + - le + - el + - li + - il + - lo + - ol + - lu + - ul + - ls + - sl + - ka + - ak + - ke + - ek + - ki + - ik + - ko + - ok + - ku + - uk + - ks + - sk + - sa + - as + - se + - es + - si + - is + - so + - os + - su + - us + - ss + - ss + - ra + - ar + - re + - er + - ri + - ir + - ro + - or + - ru + - ur + - rs + - sr + - a + - a + - e + - e + - i + - i + - o + - o + - u + - u + - s + - s + +# The common language of the Sol system. +- type: language + id: SolCommon + obfuscateSyllables: true + replacement: + - tao + - shi + - tzu + - yi + - com + - be + - is + - i + - op + - vi + - ed + - lec + - mo + - cle + - te + - dis + - e + +# Languages spoken by various critters. +- type: language + id: Cat + obfuscateSyllables: true + replacement: + - murr + - meow + - purr + - mrow + +- type: language + id: Dog + obfuscateSyllables: true + replacement: + - woof + - bark + - ruff + - bork + - raff + - garr + +- type: language + id: Mothroach + obfuscateSyllables: false + replacement: + - Chitter + - Buzz + - Chirp + - Squeak + - Peep + - Eeee + - Eep + +- type: language + id: Xeno + obfuscateSyllables: true + replacement: + - sss + - sSs + - SSS + +- type: language + id: RobotTalk + obfuscateSyllables: true + replacement: + - beep + - boop + +- type: language + id: Monkey + obfuscateSyllables: true + replacement: + - ok + - ook + - oook + - ooook + - oooook + +- type: language + id: Bee + obfuscateSyllables: false + replacement: + - Buz + - Buuz + - Buzz + - Buzzz + - Buuzz + +- type: language + id: Mouse + obfuscateSyllables: false + replacement: + - Squeak + - Piep + - Chuu + - Eeee + - Pip + - Fwiep + - Heep + +- type: language + id: Chicken + obfuscateSyllables: false + replacement: + - Coo + - Coot + - Cooot + +- type: language + id: Duck + obfuscateSyllables: false + replacement: + - Quack + +- type: language + id: Cow + obfuscateSyllables: false + replacement: + - Moo + - Mooo + +- type: language + id: Sheep + obfuscateSyllables: false + replacement: + - Ba + - Baa + - Baaa + +- type: language + id: Kangaroo + obfuscateSyllables: false + replacement: + - Shreak + - Chuu + +- type: language + id: Pig + obfuscateSyllables: false + replacement: + - Oink diff --git a/Resources/Prototypes/_NF/Recipes/Lathes/devices.yml b/Resources/Prototypes/_NF/Recipes/Lathes/devices.yml new file mode 100644 index 00000000000000..9daa187bd0844a --- /dev/null +++ b/Resources/Prototypes/_NF/Recipes/Lathes/devices.yml @@ -0,0 +1,170 @@ +# Translators +- type: latheRecipe + id: BubblishTranslator + result: BubblishTranslator + completetime: 2 + materials: + Steel: 500 + Plastic: 50 + Gold: 50 + +- type: latheRecipe + id: DraconicTranslator + result: DraconicTranslator + completetime: 2 + materials: + Steel: 500 + Glass: 100 + Plastic: 50 + Gold: 50 + +- type: latheRecipe + id: SolCommonTranslator + result: SolCommonTranslator + completetime: 2 + materials: + Steel: 500 + Glass: 100 + Plastic: 50 + Gold: 50 + +- type: latheRecipe + id: RootSpeakTranslator + result: RootSpeakTranslator + completetime: 2 + materials: + Steel: 500 + Glass: 100 + Plastic: 50 + Gold: 50 + +- type: latheRecipe + id: MofficTranslator + result: MofficTranslator + completetime: 2 + materials: + Steel: 500 + Glass: 100 + Plastic: 50 + Gold: 50 + +- type: latheRecipe + id: BasicGalaticCommonTranslatorImplanter + result: BasicGalaticCommonTranslatorImplanter + completetime: 2 + materials: + Steel: 500 + Glass: 500 + Plastic: 100 + Gold: 50 + Silver: 50 + +- type: latheRecipe + id: XenoTranslator + result: XenoTranslator + completetime: 2 + materials: + Steel: 200 + Plastic: 50 + Gold: 50 + Plasma: 50 + Silver: 50 + +- type: latheRecipe + id: AdvancedGalaticCommonTranslatorImplanter + result: AdvancedGalaticCommonTranslatorImplanter + completetime: 2 + materials: + Steel: 500 + Glass: 500 + Plastic: 100 + Gold: 50 + Silver: 50 + +- type: latheRecipe + id: BubblishTranslatorImplanter + result: BubblishTranslatorImplanter + completetime: 2 + materials: + Steel: 500 + Glass: 500 + Plastic: 100 + Gold: 50 + Silver: 50 + +- type: latheRecipe + id: NekomimeticTranslatorImplanter + result: NekomimeticTranslatorImplanter + completetime: 2 + materials: + Steel: 500 + Glass: 500 + Plastic: 100 + Gold: 50 + Silver: 50 + +- type: latheRecipe + id: DraconicTranslatorImplanter + result: DraconicTranslatorImplanter + completetime: 2 + materials: + Steel: 500 + Glass: 500 + Plastic: 100 + Gold: 50 + Silver: 50 + +- type: latheRecipe + id: CanilunztTranslatorImplanter + result: CanilunztTranslatorImplanter + completetime: 2 + materials: + Steel: 500 + Glass: 500 + Plastic: 100 + Gold: 50 + Silver: 50 + +- type: latheRecipe + id: SolCommonTranslatorImplanter + result: SolCommonTranslatorImplanter + completetime: 2 + materials: + Steel: 500 + Glass: 500 + Plastic: 100 + Gold: 50 + Silver: 50 + +- type: latheRecipe + id: RootSpeakTranslatorImplanter + result: RootSpeakTranslatorImplanter + completetime: 2 + materials: + Steel: 500 + Glass: 500 + Plastic: 100 + Gold: 50 + Silver: 50 + +- type: latheRecipe + id: MofficTranslatorImplanter + result: MofficTranslatorImplanter + completetime: 2 + materials: + Steel: 500 + Glass: 500 + Plastic: 100 + Gold: 50 + Silver: 50 + +- type: latheRecipe + id: AnimalTranslator + result: AnimalTranslator + completetime: 2 + materials: + Steel: 200 + Plastic: 50 + Gold: 50 + Plasma: 50 + Silver: 5 diff --git a/Resources/Prototypes/_NF/Research/civilianservices.yml b/Resources/Prototypes/_NF/Research/civilianservices.yml new file mode 100644 index 00000000000000..7a44847d30b02f --- /dev/null +++ b/Resources/Prototypes/_NF/Research/civilianservices.yml @@ -0,0 +1,38 @@ +# Tier 2 - entrypoint to translators +- type: technology + id: BasicTranslation + name: research-technology-basic-translation + icon: + sprite: _NF/Objects/Devices/translator.rsi + state: icon + discipline: CivilianServices + tier: 2 + cost: 10000 + recipeUnlocks: + - BubblishTranslator + - DraconicTranslator + - SolCommonTranslator + - RootSpeakTranslator + - BasicGalaticCommonTranslatorImplanter + - MofficTranslator + + +# Frontier - languages mechanic +- type: technology + id: AdvancedTranslation + name: research-technology-advanced-translation + icon: + sprite: _NF/Objects/Devices/translator.rsi + state: icon + discipline: CivilianServices + tier: 3 + cost: 15000 + recipeUnlocks: + - XenoTranslator + - AdvancedGalaticCommonTranslatorImplanter + - BubblishTranslatorImplanter + - DraconicTranslatorImplanter + - SolCommonTranslatorImplanter + - RootSpeakTranslatorImplanter + - AnimalTranslator + - MofficTranslatorImplanter diff --git a/Resources/Textures/_NF/Actions/Actions/language.png b/Resources/Textures/_NF/Actions/Actions/language.png new file mode 100644 index 00000000000000..51962871ac7350 Binary files /dev/null and b/Resources/Textures/_NF/Actions/Actions/language.png differ diff --git a/Resources/Textures/_NF/Objects/Devices/translator.rsi/icon.png b/Resources/Textures/_NF/Objects/Devices/translator.rsi/icon.png new file mode 100644 index 00000000000000..6871c808ccdd49 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Devices/translator.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Objects/Devices/translator.rsi/meta.json b/Resources/Textures/_NF/Objects/Devices/translator.rsi/meta.json new file mode 100644 index 00000000000000..0202c0c39c71b1 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Devices/translator.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 2, + "license": "CC-BY-SA-3.0", + "copyright": "baystation12", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "translator" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Devices/translator.rsi/translator.png b/Resources/Textures/_NF/Objects/Devices/translator.rsi/translator.png new file mode 100644 index 00000000000000..6c54a0b86366ce Binary files /dev/null and b/Resources/Textures/_NF/Objects/Devices/translator.rsi/translator.png differ