From 6d15eca3903ef09b98231c52d6e14e6159e0fddc Mon Sep 17 00:00:00 2001 From: Dvir Date: Thu, 24 Aug 2023 02:16:44 +0300 Subject: [PATCH 01/10] Pets --- .../Entities/Mobs/Species/dwarf.yml | 4 ++ .../_NF/Catalog/Fills/Crates/npc.yml | 10 +-- .../Mobs/NPCs/emotionalsupportanimals.yml | 44 ++++++++----- .../_NF/Entities/Mobs/NPCs/simplemob.yml | 62 +++++++++++++++++++ .../Random/emotionalsupportanimals.yml | 4 +- Resources/Prototypes/_NF/ai_factions.yml | 17 +++++ .../_Nyano/Entities/Mobs/Player/felinid.yml | 3 - .../_Nyano/Entities/Mobs/Species/felinid.yml | 4 ++ Resources/Prototypes/ai_factions.yml | 17 +++-- 9 files changed, 133 insertions(+), 32 deletions(-) create mode 100644 Resources/Prototypes/_NF/Entities/Mobs/NPCs/simplemob.yml create mode 100644 Resources/Prototypes/_NF/ai_factions.yml diff --git a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml index 34b14dacd59..b38483ab82d 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml @@ -56,6 +56,10 @@ - type: Speech speechSounds: Bass - type: Perishable + - type: NpcFactionMember + factions: + - NanoTrasen + - Dwarf - type: entity save: false diff --git a/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml b/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml index 861dc74b49d..8026a3d9193 100644 --- a/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml +++ b/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml @@ -11,20 +11,20 @@ prob: 1 orGroup: MobCatGhost - id: MobCatCaracalGhost - prob: 0.15 + prob: 1 orGroup: MobCatGhost - id: MobBingusGhost - prob: 0.15 + prob: 1 orGroup: MobCatGhost - id: MobCatSpaceGhost - prob: 0.15 + prob: 1 orGroup: MobCatGhost - id: MobCorgiGhost prob: 1 orGroup: MobCatGhost - id: MobCorgiPuppyGhost - prob: 0.15 + prob: 1 orGroup: MobCatGhost - id: MobChickenGhost - prob: 0.15 + prob: 1 orGroup: MobCatGhost \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml index 0e0aa42e227..3b73b4bd58f 100644 --- a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml +++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml @@ -73,7 +73,7 @@ - type: entity name: space cat suffix: Ghost - parent: MobCatGhost + parent: MobCat id: MobCatSpaceGhost description: Feline pet, prepared for the worst. components: @@ -93,21 +93,33 @@ interactFailureString: petting-failure-generic interactSuccessSound: path: /Audio/Animals/cat_meow.ogg - - type: Barotrauma - damage: - types: - Blunt: 0.0 #per second, scales with pressure and other constants. - - type: Temperature - heatDamageThreshold: 360 - coldDamageThreshold: 0 - currentTemperature: 310.15 - coldDamage: - types: - Cold : 0.1 #per second, scales with temperature & other constants - specificHeat: 42 - heatDamage: - types: - Heat : 0.1 #per second, scales with temperature & other constants + - type: GhostRole + name: ghost-role-information-emotional-support-name + description: ghost-role-information-emotional-support-description + makeSentient: true + allowSpeech: true + allowMovement: true + - type: GhostTakeoverAvailable + - type: CombatMode + combatToggleAction: + enabled: false + autoPopulate: false + name: action-name-combat + - type: ReplacementAccent + accent: cat + - type: Grammar + attributes: + gender: epicene + - type: Vocal + sounds: + Male: Cat + Female: Cat + Unsexed: Cat + wilhelmProbability: 0.001 + - type: Tag + tags: + - CannotSuicide + - DoorBumpOpener - type: entity name: bingus diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/simplemob.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/simplemob.yml new file mode 100644 index 00000000000..389dd9d20bb --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/simplemob.yml @@ -0,0 +1,62 @@ +- type: entity + save: false + abstract: true + id: SimpleSpaceSuitMobBase # for air breathers + parent: SimpleSpaceMobBase + suffix: AI + components: + - type: InputMover + - type: MobMover + - type: Hunger + thresholds: # only animals and rats are derived from this prototype so let's override it here and in rats' proto + Overfed: 100 + Okay: 50 + Peckish: 25 + Starving: 10 + Dead: 0 + baseDecayRate: 0.00925925925926 # it is okay for animals to eat and drink less than humans, but more frequently + - type: Thirst + thresholds: + OverHydrated: 200 + Okay: 150 + Thirsty: 100 + Parched: 50 + Dead: 0 + baseDecayRate: 0.04 + - type: StatusEffects + allowed: + - Stun + - KnockedDown + - SlowedDown + - Stutter + - Electrocution + - ForcedSleep + - TemporaryBlindness + - Pacified + - StaminaModifier + - type: Respirator + damage: + types: + Asphyxiation: 2 + damageRecovery: + types: + Asphyxiation: -1.0 + - type: Temperature + heatDamageThreshold: 360 + coldDamageThreshold: 0 + currentTemperature: 310.15 + specificHeat: 42 + coldDamage: + types: + Cold : 0.1 #per second, scales with temperature & other constants + heatDamage: + types: + Heat : 0.1 #per second, scales with temperature & other constants + - type: Bloodstream + bloodMaxVolume: 150 + - type: MobPrice + price: 150 + - type: FloatingVisuals + - type: Puller + needsHands: false + diff --git a/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml b/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml index 95709c7fc5a..239fe0aa012 100644 --- a/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml +++ b/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml @@ -16,10 +16,8 @@ - MobCatCalicoGhost - MobCatCaracalGhost - MobCorgiGhost - chance: 1 - rarePrototypes: - MobBingusGhost - MobCatSpaceGhost - MobCorgiPuppyGhost - MobChickenGhost - rareChance: 0.15 + chance: 1 diff --git a/Resources/Prototypes/_NF/ai_factions.yml b/Resources/Prototypes/_NF/ai_factions.yml new file mode 100644 index 00000000000..81b35028a20 --- /dev/null +++ b/Resources/Prototypes/_NF/ai_factions.yml @@ -0,0 +1,17 @@ +- type: npcFaction + id: Pitbull + hostile: + - Mouse + - SimpleHostile + - Zombie + - Xeno + +- type: npcFaction + id: Dwarf + hostile: + - Pitbull + +- type: npcFaction + id: Felinid + hostile: + - Pitbull diff --git a/Resources/Prototypes/_Nyano/Entities/Mobs/Player/felinid.yml b/Resources/Prototypes/_Nyano/Entities/Mobs/Player/felinid.yml index a15aaa333a9..6583be8eb70 100644 --- a/Resources/Prototypes/_Nyano/Entities/Mobs/Player/felinid.yml +++ b/Resources/Prototypes/_Nyano/Entities/Mobs/Player/felinid.yml @@ -31,9 +31,6 @@ - type: CameraRecoil - type: Examiner - type: CanHostGuardian - - type: NpcFactionMember - factions: - - NanoTrasen - type: Felinid #since this just adds an action... - type: MailReceiver - type: InteractionPopup diff --git a/Resources/Prototypes/_Nyano/Entities/Mobs/Species/felinid.yml b/Resources/Prototypes/_Nyano/Entities/Mobs/Species/felinid.yml index 940840af5ee..5f42a13c106 100644 --- a/Resources/Prototypes/_Nyano/Entities/Mobs/Species/felinid.yml +++ b/Resources/Prototypes/_Nyano/Entities/Mobs/Species/felinid.yml @@ -126,6 +126,10 @@ - type: Stamina - type: PseudoItem - type: Perishable + - type: NpcFactionMember + factions: + - NanoTrasen + - Felinid - type: entity save: false diff --git a/Resources/Prototypes/ai_factions.yml b/Resources/Prototypes/ai_factions.yml index 9c8f0015774..80a264d5ef9 100644 --- a/Resources/Prototypes/ai_factions.yml +++ b/Resources/Prototypes/ai_factions.yml @@ -1,11 +1,12 @@ - type: npcFaction id: Dragon hostile: - - NanoTrasen - - Syndicate - - Xeno - - PetsNT - - Zombie + - NanoTrasen + - Syndicate + - Xeno + - PetsNT + - Zombie + - Pitbull - type: npcFaction id: NanoTrasen @@ -19,6 +20,7 @@ id: Mouse hostile: - PetsNT + - Pitbull - type: npcFaction id: Passive @@ -30,6 +32,7 @@ - SimpleHostile - Zombie - Xeno + - Pitbull - type: npcFaction id: SimpleHostile @@ -39,6 +42,7 @@ - Passive - PetsNT - Zombie + - Pitbull - type: npcFaction id: SimpleNeutral @@ -51,6 +55,7 @@ - Xeno - PetsNT - Zombie + - Pitbull - type: npcFaction id: Xeno @@ -60,6 +65,7 @@ - Passive - PetsNT - Zombie + - Pitbull - type: npcFaction id: Zombie @@ -70,3 +76,4 @@ - Syndicate - Passive - PetsNT + - Pitbull From 2c56ecbade5595401622bf22a3d61859293cea38 Mon Sep 17 00:00:00 2001 From: Dvir Date: Fri, 25 Aug 2023 01:22:50 +0300 Subject: [PATCH 02/10] Pets --- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 54 +++++++++++++------ .../Mobs/NPCs/emotionalsupportanimals.yml | 18 +------ 2 files changed, 39 insertions(+), 33 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index a165b054a7d..28e4640afcf 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2076,10 +2076,12 @@ - type: entity name: space cat id: MobCatSpace - parent: MobCat + parent: SimpleSpaceSuitMobBase description: Feline pet, prepared for the worst. components: - type: Sprite + drawdepth: Mobs + sprite: Mobs/Pets/cat.rsi layers: - map: ["enum.DamageStateVisualLayers.Base"] state: spacecat @@ -2096,21 +2098,41 @@ interactFailureString: petting-failure-generic interactSuccessSound: path: /Audio/Animals/cat_meow.ogg - - type: Barotrauma - damage: - types: - Blunt: 0.0 #per second, scales with pressure and other constants. - - type: Temperature - heatDamageThreshold: 360 - coldDamageThreshold: 0 - currentTemperature: 310.15 - coldDamage: - types: - Cold : 0.1 #per second, scales with temperature & other constants - specificHeat: 42 - heatDamage: - types: - Heat : 0.1 #per second, scales with temperature & other constants + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 15 + mask: + - MobMask + layer: + - MobLayer + - type: Inventory + speciesId: cat + templateId: pet + - type: InventorySlots + - type: Strippable + - type: UserInterface + interfaces: + - key: enum.StrippingUiKey.Key + type: StrippableBoundUserInterface + - type: Butcherable + spawned: + - id: FoodMeat + amount: 3 + - type: ReplacementAccent + accent: cat + - type: Grammar + attributes: + gender: epicene + - type: MobPrice + price: 200 + - type: Tag + tags: + - VimPilot - type: entity name: caracal cat diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml index 3b73b4bd58f..348ada353eb 100644 --- a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml +++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml @@ -73,26 +73,10 @@ - type: entity name: space cat suffix: Ghost - parent: MobCat + parent: MobCatSpace id: MobCatSpaceGhost description: Feline pet, prepared for the worst. components: - - type: Sprite - layers: - - map: ["enum.DamageStateVisualLayers.Base"] - state: spacecat - - type: DamageStateVisuals - states: - Alive: - Base: spacecat - Dead: - Base: spacecat_dead - - type: InteractionPopup - successChance: 0.7 - interactSuccessString: petting-success-space-cat - interactFailureString: petting-failure-generic - interactSuccessSound: - path: /Audio/Animals/cat_meow.ogg - type: GhostRole name: ghost-role-information-emotional-support-name description: ghost-role-information-emotional-support-description From ca9ed3fc82c7bc650575a414779da279898c213e Mon Sep 17 00:00:00 2001 From: Dvir Date: Sat, 26 Aug 2023 14:30:59 +0300 Subject: [PATCH 03/10] No need with the use of the crate --- .../Random/emotionalsupportanimals.yml | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml diff --git a/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml b/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml deleted file mode 100644 index 239fe0aa012..00000000000 --- a/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml +++ /dev/null @@ -1,23 +0,0 @@ -- type: entity - name: Random Animal Spawner - suffix: Emotional Support - parent: MarkerBase - id: RandomAnimalSpawnerEmotionalSupport - components: - - type: Sprite - layers: - - state: red - - sprite: Mobs/Animals/chicken.rsi - state: icon-1 - - type: RandomSpawner - offset: 0 - prototypes: - - MobCatGhost - - MobCatCalicoGhost - - MobCatCaracalGhost - - MobCorgiGhost - - MobBingusGhost - - MobCatSpaceGhost - - MobCorgiPuppyGhost - - MobChickenGhost - chance: 1 From b2f983c8df6416b9749133f6395e801b3510b7ac Mon Sep 17 00:00:00 2001 From: Dvir Date: Sat, 26 Aug 2023 23:50:27 +0300 Subject: [PATCH 04/10] Pets --- .../Faction/NPCCombatTargetComponent.cs | 15 ++++++++ .../interaction-popup-component.ftl | 3 ++ Resources/Prototypes/_NF/ai_factions.yml | 13 ++++--- .../_Nyano/Datasets/Names/pitbull.yml | 34 +++++++++++++++++++ .../_Nyano/Entities/Mobs/NPCs/dogs.yml | 18 +++++++++- Resources/Prototypes/ai_factions.yml | 17 +++------- 6 files changed, 80 insertions(+), 20 deletions(-) create mode 100644 Content.Server/Nyanotrasen/Components/Faction/NPCCombatTargetComponent.cs create mode 100644 Resources/Locale/en-US/_Nyano/interaction/interaction-popup-component.ftl create mode 100644 Resources/Prototypes/_Nyano/Datasets/Names/pitbull.yml diff --git a/Content.Server/Nyanotrasen/Components/Faction/NPCCombatTargetComponent.cs b/Content.Server/Nyanotrasen/Components/Faction/NPCCombatTargetComponent.cs new file mode 100644 index 00000000000..c0e8fed4de2 --- /dev/null +++ b/Content.Server/Nyanotrasen/Components/Faction/NPCCombatTargetComponent.cs @@ -0,0 +1,15 @@ +namespace Content.Server.NPC.Components; + +/// +/// Added to the target of NPC combat operators so they can see which enemies +/// are trying to kill them. +/// +[RegisterComponent] +public sealed class NPCCombatTargetComponent : Component +{ + /// + /// Which entities are trying to kill us right now... + /// + [ViewVariables] + public HashSet EngagingEnemies = new(); +} diff --git a/Resources/Locale/en-US/_Nyano/interaction/interaction-popup-component.ftl b/Resources/Locale/en-US/_Nyano/interaction/interaction-popup-component.ftl new file mode 100644 index 00000000000..5fe7aa7fc6f --- /dev/null +++ b/Resources/Locale/en-US/_Nyano/interaction/interaction-popup-component.ftl @@ -0,0 +1,3 @@ +## Petting animals + +petting-failure-pibble = You reach out to pet {THE($target)}, and {SUBJECT($target)} lunges at you! diff --git a/Resources/Prototypes/_NF/ai_factions.yml b/Resources/Prototypes/_NF/ai_factions.yml index 81b35028a20..1417f7ba41e 100644 --- a/Resources/Prototypes/_NF/ai_factions.yml +++ b/Resources/Prototypes/_NF/ai_factions.yml @@ -1,17 +1,16 @@ - type: npcFaction id: Pitbull hostile: - - Mouse - - SimpleHostile - - Zombie + - Dwarf + - Felinid + - NanoTrasen + - Syndicate - Xeno + - PetsNT + - Zombie - type: npcFaction id: Dwarf - hostile: - - Pitbull - type: npcFaction id: Felinid - hostile: - - Pitbull diff --git a/Resources/Prototypes/_Nyano/Datasets/Names/pitbull.yml b/Resources/Prototypes/_Nyano/Datasets/Names/pitbull.yml new file mode 100644 index 00000000000..628c600a5c4 --- /dev/null +++ b/Resources/Prototypes/_Nyano/Datasets/Names/pitbull.yml @@ -0,0 +1,34 @@ +- type: dataset + id: names_pitbull + values: + - Zeus + - Magnum + - Diesel + - Satan + - Dante + - Midas + - Blue + - Petunia + - Luna + - Bubbles + - Rainbow + - Echo + - Cuddles + - Killer + - Paisley + - Echo + - Sweetie + - Tutu + - Reaper + - Peaches + - Cujo + - Cuddles + - Lucifer + - Daisy + - Blaze + - Lady + - Franny + - Hades + - Baby + - Demon + - Trixie diff --git a/Resources/Prototypes/_Nyano/Entities/Mobs/NPCs/dogs.yml b/Resources/Prototypes/_Nyano/Entities/Mobs/NPCs/dogs.yml index 9a8fe83b385..82087151b79 100644 --- a/Resources/Prototypes/_Nyano/Entities/Mobs/NPCs/dogs.yml +++ b/Resources/Prototypes/_Nyano/Entities/Mobs/NPCs/dogs.yml @@ -24,10 +24,22 @@ - map: ["enum.DamageStateVisualLayers.Base"] state: pibble - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 65 + mask: + - MobMask + layer: + - MobLayer - type: Appearance - type: Inventory speciesId: dog templateId: pet + - type: InventorySlots - type: Strippable - type: UserInterface interfaces: @@ -53,8 +65,12 @@ interactFailureString: petting-failure-pibble interactSuccessSound: path: /Audio/Animals/small_dog_bark_happy.ogg - hostileOnFail: true +# hostileOnFail: true - type: DogVision + - type: NpcFactionMember + factions: + - Passive +# - Pibble - type: HTN rootTask: task: SimpleHostileCompound diff --git a/Resources/Prototypes/ai_factions.yml b/Resources/Prototypes/ai_factions.yml index 80a264d5ef9..3a228d69bf2 100644 --- a/Resources/Prototypes/ai_factions.yml +++ b/Resources/Prototypes/ai_factions.yml @@ -1,12 +1,11 @@ - type: npcFaction id: Dragon hostile: - - NanoTrasen - - Syndicate - - Xeno - - PetsNT - - Zombie - - Pitbull + - NanoTrasen + - Syndicate + - Xeno + - PetsNT + - Zombie - type: npcFaction id: NanoTrasen @@ -20,7 +19,6 @@ id: Mouse hostile: - PetsNT - - Pitbull - type: npcFaction id: Passive @@ -32,7 +30,6 @@ - SimpleHostile - Zombie - Xeno - - Pitbull - type: npcFaction id: SimpleHostile @@ -42,7 +39,6 @@ - Passive - PetsNT - Zombie - - Pitbull - type: npcFaction id: SimpleNeutral @@ -55,7 +51,6 @@ - Xeno - PetsNT - Zombie - - Pitbull - type: npcFaction id: Xeno @@ -65,7 +60,6 @@ - Passive - PetsNT - Zombie - - Pitbull - type: npcFaction id: Zombie @@ -76,4 +70,3 @@ - Syndicate - Passive - PetsNT - - Pitbull From 1baba67d3f8711b33dc1a0f6e5f285ef35df2866 Mon Sep 17 00:00:00 2001 From: Dvir Date: Sun, 27 Aug 2023 00:58:36 +0300 Subject: [PATCH 05/10] Pets --- Resources/Prototypes/_NF/ai_factions.yml | 6 +++--- Resources/Prototypes/ai_factions.yml | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Resources/Prototypes/_NF/ai_factions.yml b/Resources/Prototypes/_NF/ai_factions.yml index 1417f7ba41e..90d904375a9 100644 --- a/Resources/Prototypes/_NF/ai_factions.yml +++ b/Resources/Prototypes/_NF/ai_factions.yml @@ -3,11 +3,11 @@ hostile: - Dwarf - Felinid - - NanoTrasen - - Syndicate - - Xeno - PetsNT + - Mouse + - Xeno - Zombie + - SimpleHostile - type: npcFaction id: Dwarf diff --git a/Resources/Prototypes/ai_factions.yml b/Resources/Prototypes/ai_factions.yml index 3a228d69bf2..63adc7a4310 100644 --- a/Resources/Prototypes/ai_factions.yml +++ b/Resources/Prototypes/ai_factions.yml @@ -1,11 +1,11 @@ - type: npcFaction id: Dragon hostile: - - NanoTrasen - - Syndicate - - Xeno - - PetsNT - - Zombie + - NanoTrasen + - Syndicate + - Xeno + - PetsNT + - Zombie - type: npcFaction id: NanoTrasen @@ -18,7 +18,7 @@ - type: npcFaction id: Mouse hostile: - - PetsNT + - PetsNT - type: npcFaction id: Passive From 3832eb1ca368da690195ca7f35fcb7c93e42073f Mon Sep 17 00:00:00 2001 From: Dvir Date: Tue, 29 Aug 2023 01:46:22 +0300 Subject: [PATCH 06/10] Pets --- .../interaction-popup-component.ftl | 3 +- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 7 ++++ .../Prototypes/Entities/Mobs/NPCs/pets.yml | 8 +++++ .../Mobs/NPCs/emotionalsupportanimals.yml | 32 ++++++++++++++++++- Resources/Prototypes/_NF/ai_factions.yml | 19 ++++++++--- .../_Nyano/Entities/Mobs/NPCs/dogs.yml | 18 ++--------- 6 files changed, 66 insertions(+), 21 deletions(-) diff --git a/Resources/Locale/en-US/_Nyano/interaction/interaction-popup-component.ftl b/Resources/Locale/en-US/_Nyano/interaction/interaction-popup-component.ftl index 5fe7aa7fc6f..9a208d75452 100644 --- a/Resources/Locale/en-US/_Nyano/interaction/interaction-popup-component.ftl +++ b/Resources/Locale/en-US/_Nyano/interaction/interaction-popup-component.ftl @@ -1,3 +1,4 @@ ## Petting animals -petting-failure-pibble = You reach out to pet {THE($target)}, and {SUBJECT($target)} lunges at you! +#petting-failure-pibble = You reach out to pet {THE($target)}, and {SUBJECT($target)} lunges at you! +petting-failure-pibble = You reach out to pet {THE($target)}, but think better of it. \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 28e4640afcf..f369516a88e 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -216,6 +216,7 @@ - type: NpcFactionMember factions: - Passive + - Chicken - type: entity id: FoodEggChickenFertilized @@ -2002,6 +2003,9 @@ id: MobCat description: Feline pet, very funny. components: + - type: NpcFactionMember + factions: + - Cat - type: Sprite drawdepth: Mobs sprite: Mobs/Pets/cat.rsi @@ -2079,6 +2083,9 @@ parent: SimpleSpaceSuitMobBase description: Feline pet, prepared for the worst. components: + - type: NpcFactionMember + factions: + - Cat - type: Sprite drawdepth: Mobs sprite: Mobs/Pets/cat.rsi diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml index 762f1affe48..779d130426c 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml @@ -90,6 +90,7 @@ - type: NpcFactionMember factions: - PetsNT + - Cat - type: HTN rootTask: task: SimpleHostileCompound @@ -110,6 +111,7 @@ - type: NpcFactionMember factions: - PetsNT + - Cat - type: Grammar attributes: gender: male @@ -124,6 +126,9 @@ parent: MobCatCaracal description: He out here. components: + - type: NpcFactionMember + factions: + - Cat - type: Fixtures fixtures: fix1: @@ -163,6 +168,9 @@ id: MobBingus description: Bingus my beloved... components: + - type: NpcFactionMember + factions: + - Cat - type: Sprite drawdepth: Mobs sprite: Mobs/Pets/bingus.rsi diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml index 348ada353eb..97e132391df 100644 --- a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml +++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml @@ -232,4 +232,34 @@ - type: Tag tags: - CannotSuicide - - DoorBumpOpener \ No newline at end of file + - DoorBumpOpener + +- type: entity + name: pitbull + suffix: Ghost + parent: MobPibble + id: MobPibbleGhost + description: Nanny dog. Or a lab mix depending on who is asking. + components: + - type: GhostRole + name: ghost-role-information-emotional-support-name + description: ghost-role-information-emotional-support-description + makeSentient: true + allowSpeech: true + allowMovement: true + - type: GhostTakeoverAvailable + - type: ReplacementAccent + accent: Dog + - type: Grammar + attributes: + gender: epicene + - type: Vocal + sounds: + Male: Dog + Female: Dog + Unsexed: Dog + wilhelmProbability: 0.001 + - type: Tag + tags: + - CannotSuicide + - DoorBumpOpener diff --git a/Resources/Prototypes/_NF/ai_factions.yml b/Resources/Prototypes/_NF/ai_factions.yml index 90d904375a9..ff34579b39b 100644 --- a/Resources/Prototypes/_NF/ai_factions.yml +++ b/Resources/Prototypes/_NF/ai_factions.yml @@ -1,16 +1,27 @@ - type: npcFaction - id: Pitbull + id: Pibble hostile: - - Dwarf - - Felinid - - PetsNT - Mouse - Xeno - Zombie - SimpleHostile + - Dwarf + - Felinid + - Cat + - Chicken + - Mailman - type: npcFaction id: Dwarf - type: npcFaction id: Felinid + +- type: npcFaction + id: Mailman # Need ClothingAddFaction to work from Nyanotrasen code + +- type: npcFaction + id: Cat + +- type: npcFaction + id: Chicken diff --git a/Resources/Prototypes/_Nyano/Entities/Mobs/NPCs/dogs.yml b/Resources/Prototypes/_Nyano/Entities/Mobs/NPCs/dogs.yml index 82087151b79..866a23845f4 100644 --- a/Resources/Prototypes/_Nyano/Entities/Mobs/NPCs/dogs.yml +++ b/Resources/Prototypes/_Nyano/Entities/Mobs/NPCs/dogs.yml @@ -24,22 +24,10 @@ - map: ["enum.DamageStateVisualLayers.Base"] state: pibble - type: Physics - - type: Fixtures - fixtures: - fix1: - shape: - !type:PhysShapeCircle - radius: 0.35 - density: 65 - mask: - - MobMask - layer: - - MobLayer - type: Appearance - type: Inventory speciesId: dog templateId: pet - - type: InventorySlots - type: Strippable - type: UserInterface interfaces: @@ -65,12 +53,12 @@ interactFailureString: petting-failure-pibble interactSuccessSound: path: /Audio/Animals/small_dog_bark_happy.ogg -# hostileOnFail: true + hostileOnFail: true - type: DogVision - type: NpcFactionMember factions: - - Passive -# - Pibble + - PetsNT + - Pibble - type: HTN rootTask: task: SimpleHostileCompound From 69f562d1f6bb4349e6c06fdbac891095f77b3642 Mon Sep 17 00:00:00 2001 From: Dvir Date: Tue, 29 Aug 2023 03:42:49 +0300 Subject: [PATCH 07/10] Pets --- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 1 + .../_NF/Catalog/Fills/Crates/npc.yml | 39 +++++++++- .../Mobs/NPCs/emotionalsupportanimals.yml | 78 ++++++++++++++++++- ...emotionalsupportpet_inventory_template.yml | 42 ++++++++++ .../_NF/Roles/Jobs/Fun/misc_startinggear.yml | 4 + Resources/Prototypes/_NF/ai_factions.yml | 4 + 6 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 Resources/Prototypes/_NF/InventoryTemplates/emotionalsupportpet_inventory_template.yml create mode 100644 Resources/Prototypes/_NF/Roles/Jobs/Fun/misc_startinggear.yml diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index f369516a88e..13cc993b358 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -869,6 +869,7 @@ - type: NpcFactionMember factions: - Passive + - Monkey - type: GhostRole prob: 0.05 makeSentient: true diff --git a/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml b/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml index 8026a3d9193..0b8d19f09e9 100644 --- a/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml +++ b/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml @@ -1,4 +1,5 @@ - type: entity + name: Emotional support pet crate id: CrateNPCEmotionalSupport parent: CrateLivestock components: @@ -27,4 +28,40 @@ orGroup: MobCatGhost - id: MobChickenGhost prob: 1 - orGroup: MobCatGhost \ No newline at end of file + orGroup: MobCatGhost + - id: MobPibbleGhost + prob: 0.25 + orGroup: MobCatGhost + +- type: entity + name: Emotional support pet crate + id: CrateNPCEmotionalSupportSafe # No pitbull + parent: CrateLivestock + suffix: Safe + components: + - type: StorageFill + contents: + - id: MobCatGhost + prob: 1 + orGroup: MobCatGhost + - id: MobCatCalicoGhost + prob: 1 + orGroup: MobCatGhost + - id: MobCatCaracalGhost + prob: 1 + orGroup: MobCatGhost + - id: MobBingusGhost + prob: 1 + orGroup: MobCatGhost + - id: MobCatSpaceGhost + prob: 1 + orGroup: MobCatGhost + - id: MobCorgiGhost + prob: 1 + orGroup: MobCatGhost + - id: MobCorgiPuppyGhost + prob: 1 + orGroup: MobCatGhost + - id: MobChickenGhost + prob: 1 + orGroup: MobCatGhost diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml index 97e132391df..0996e27f7f4 100644 --- a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml +++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml @@ -32,6 +32,17 @@ tags: - CannotSuicide - DoorBumpOpener + - type: IdExaminable + - type: Inventory + speciesId: cat + templateId: emotionalsupportpet + - type: Strippable + - type: UserInterface + interfaces: + - key: enum.StrippingUiKey.Key + type: StrippableBoundUserInterface + - type: Loadout + prototypes: [ MobEmotionalSupportGear ] - type: entity name: calico cat @@ -104,6 +115,17 @@ tags: - CannotSuicide - DoorBumpOpener + - type: IdExaminable + - type: Inventory + speciesId: cat + templateId: emotionalsupportpet + - type: Strippable + - type: UserInterface + interfaces: + - key: enum.StrippingUiKey.Key + type: StrippableBoundUserInterface + - type: Loadout + prototypes: [ MobEmotionalSupportGear ] - type: entity name: bingus @@ -139,6 +161,17 @@ tags: - CannotSuicide - DoorBumpOpener + - type: IdExaminable + - type: Inventory + speciesId: cat + templateId: emotionalsupportpet + - type: Strippable + - type: UserInterface + interfaces: + - key: enum.StrippingUiKey.Key + type: StrippableBoundUserInterface + - type: Loadout + prototypes: [ MobEmotionalSupportGear ] - type: entity name: corgi @@ -174,6 +207,17 @@ tags: - CannotSuicide - DoorBumpOpener + - type: IdExaminable + - type: Inventory + speciesId: dog + templateId: emotionalsupportpet + - type: Strippable + - type: UserInterface + interfaces: + - key: enum.StrippingUiKey.Key + type: StrippableBoundUserInterface + - type: Loadout + prototypes: [ MobEmotionalSupportGear ] - type: entity name: corgi puppy @@ -190,7 +234,7 @@ state: puppy - type: Inventory speciesId: puppy - templateId: pet + templateId: emotionalsupportpet - type: InventorySlots - type: DamageStateVisuals states: @@ -198,6 +242,14 @@ Base: puppy Dead: Base: puppy_dead + - type: IdExaminable + - type: Strippable + - type: UserInterface + interfaces: + - key: enum.StrippingUiKey.Key + type: StrippableBoundUserInterface + - type: Loadout + prototypes: [ MobEmotionalSupportGear ] - type: entity name: chicken @@ -233,6 +285,19 @@ tags: - CannotSuicide - DoorBumpOpener + - type: IdExaminable + - type: Inventory + speciesId: chicken + templateId: emotionalsupportpet + - type: Strippable + - type: UserInterface + interfaces: + - key: enum.StrippingUiKey.Key + type: StrippableBoundUserInterface + - type: Loadout + prototypes: [ MobEmotionalSupportGear ] + - type: Puller + needsHands: false - type: entity name: pitbull @@ -263,3 +328,14 @@ tags: - CannotSuicide - DoorBumpOpener + - type: IdExaminable + - type: Inventory + speciesId: dog + templateId: emotionalsupportpet + - type: Strippable + - type: UserInterface + interfaces: + - key: enum.StrippingUiKey.Key + type: StrippableBoundUserInterface + - type: Loadout + prototypes: [ MobEmotionalSupportGear ] diff --git a/Resources/Prototypes/_NF/InventoryTemplates/emotionalsupportpet_inventory_template.yml b/Resources/Prototypes/_NF/InventoryTemplates/emotionalsupportpet_inventory_template.yml new file mode 100644 index 00000000000..101d432a790 --- /dev/null +++ b/Resources/Prototypes/_NF/InventoryTemplates/emotionalsupportpet_inventory_template.yml @@ -0,0 +1,42 @@ +- type: inventoryTemplate + id: emotionalsupportpet + slots: + - name: ears + slotTexture: ears + slotFlags: EARS + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 1,2 + strippingWindowPos: 1,2 + displayName: Ears + + - name: mask + slotTexture: mask + slotFlags: MASK + uiWindowPos: 1,1 + strippingWindowPos: 1,1 + displayName: Mask + whitelist: + tags: + - PetWearable + + - name: suitstorage + slotTexture: suit_storage + slotFlags: SUITSTORAGE + slotGroup: SecondHotbar + stripTime: 3 + uiWindowPos: 2,0 + strippingWindowPos: 2,5 + displayName: Suit Storage + whitelist: + components: + - GasTank + + - name: id + slotTexture: id + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,1 + strippingWindowPos: 2,4 + displayName: ID \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Roles/Jobs/Fun/misc_startinggear.yml b/Resources/Prototypes/_NF/Roles/Jobs/Fun/misc_startinggear.yml new file mode 100644 index 00000000000..9656d44484b --- /dev/null +++ b/Resources/Prototypes/_NF/Roles/Jobs/Fun/misc_startinggear.yml @@ -0,0 +1,4 @@ +- type: startingGear + id: MobEmotionalSupportGear + equipment: + id: PassengerIDCard diff --git a/Resources/Prototypes/_NF/ai_factions.yml b/Resources/Prototypes/_NF/ai_factions.yml index ff34579b39b..c7b169907ff 100644 --- a/Resources/Prototypes/_NF/ai_factions.yml +++ b/Resources/Prototypes/_NF/ai_factions.yml @@ -9,6 +9,7 @@ - Felinid - Cat - Chicken + - Monkey - Mailman - type: npcFaction @@ -25,3 +26,6 @@ - type: npcFaction id: Chicken + +- type: npcFaction + id: Monkey From 76e64154860b151b7b7fe4033a83d2e723cb842a Mon Sep 17 00:00:00 2001 From: Dvir <39403717+dvir001@users.noreply.github.com> Date: Tue, 29 Aug 2023 19:45:41 +0300 Subject: [PATCH 08/10] Update emotionalsupportanimals.yml --- .../_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml index 0996e27f7f4..92049f27287 100644 --- a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml +++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml @@ -314,7 +314,7 @@ allowMovement: true - type: GhostTakeoverAvailable - type: ReplacementAccent - accent: Dog + accent: dog - type: Grammar attributes: gender: epicene From 31abbbc51ba02ed8d36d0986ceb1716dffaf2f07 Mon Sep 17 00:00:00 2001 From: Dvir <39403717+dvir001@users.noreply.github.com> Date: Tue, 29 Aug 2023 19:48:35 +0300 Subject: [PATCH 09/10] Delete NPCCombatTargetComponent.cs --- .../Faction/NPCCombatTargetComponent.cs | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 Content.Server/Nyanotrasen/Components/Faction/NPCCombatTargetComponent.cs diff --git a/Content.Server/Nyanotrasen/Components/Faction/NPCCombatTargetComponent.cs b/Content.Server/Nyanotrasen/Components/Faction/NPCCombatTargetComponent.cs deleted file mode 100644 index c0e8fed4de2..00000000000 --- a/Content.Server/Nyanotrasen/Components/Faction/NPCCombatTargetComponent.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace Content.Server.NPC.Components; - -/// -/// Added to the target of NPC combat operators so they can see which enemies -/// are trying to kill them. -/// -[RegisterComponent] -public sealed class NPCCombatTargetComponent : Component -{ - /// - /// Which entities are trying to kill us right now... - /// - [ViewVariables] - public HashSet EngagingEnemies = new(); -} From 62e03e2db9f7eb7ebba1a9fe494b7a7233a2280c Mon Sep 17 00:00:00 2001 From: Dvir <39403717+dvir001@users.noreply.github.com> Date: Wed, 30 Aug 2023 01:20:35 +0300 Subject: [PATCH 10/10] Update emotionalsupportpet_inventory_template.yml --- .../emotionalsupportpet_inventory_template.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Resources/Prototypes/_NF/InventoryTemplates/emotionalsupportpet_inventory_template.yml b/Resources/Prototypes/_NF/InventoryTemplates/emotionalsupportpet_inventory_template.yml index 101d432a790..4b3e78d4ba4 100644 --- a/Resources/Prototypes/_NF/InventoryTemplates/emotionalsupportpet_inventory_template.yml +++ b/Resources/Prototypes/_NF/InventoryTemplates/emotionalsupportpet_inventory_template.yml @@ -1,14 +1,14 @@ - type: inventoryTemplate id: emotionalsupportpet slots: - - name: ears - slotTexture: ears - slotFlags: EARS - slotGroup: MainHotbar - stripTime: 3 - uiWindowPos: 1,2 - strippingWindowPos: 1,2 - displayName: Ears +# - name: ears +# slotTexture: ears +# slotFlags: EARS +# slotGroup: MainHotbar +# stripTime: 3 +# uiWindowPos: 1,2 +# strippingWindowPos: 1,2 +# displayName: Ears - name: mask slotTexture: mask @@ -39,4 +39,4 @@ stripTime: 6 uiWindowPos: 2,1 strippingWindowPos: 2,4 - displayName: ID \ No newline at end of file + displayName: ID