diff --git a/Resources/Locale/en-US/_CP14/ghostRoles/roles.ftl b/Resources/Locale/en-US/_CP14/ghostRoles/roles.ftl index fd26a694e1..ae328ec3c5 100644 --- a/Resources/Locale/en-US/_CP14/ghostRoles/roles.ftl +++ b/Resources/Locale/en-US/_CP14/ghostRoles/roles.ftl @@ -15,3 +15,6 @@ cp14-ghost-role-information-description-bone-hound = A bone hound created by nec cp14-ghost-role-information-name-snail = Snail cp14-ghost-role-information-description-snail = Surviving is already an achievement. + +cp14-ghost-role-information-cat-name = Cat +cp14-ghost-role-information-cat-description = You're the fluffiest thing in the world. Hunt the mice/rats, be cute or stick with some adventurers! diff --git a/Resources/Locale/ru-RU/_CP14/ghostRoles/roles.ftl b/Resources/Locale/ru-RU/_CP14/ghostRoles/roles.ftl index a9c70b367f..b05afef46f 100644 --- a/Resources/Locale/ru-RU/_CP14/ghostRoles/roles.ftl +++ b/Resources/Locale/ru-RU/_CP14/ghostRoles/roles.ftl @@ -15,3 +15,6 @@ cp14-ghost-role-information-description-bone-hound = Костяная гонча cp14-ghost-role-information-name-snail = Улитка cp14-ghost-role-information-description-snail = Выжить – это уже достижение. + +cp14-ghost-role-information-cat-name = Кот +cp14-ghost-role-information-cat-description = Ты самое пушистое существо в этом мире! Охоться за мышами/крысами, будь милым или ходи вместе с авантюристами! diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml index f9cbaa52f6..2603bea5b7 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml @@ -123,6 +123,40 @@ prototypes: - CP14MobSnail +- type: entity + name: cat spawner + id: CP14SpawnMobCatRandomColored + parent: MarkerBase + categories: [ ForkFiltered ] + suffix: "Colored" + components: + - type: Sprite + layers: + - sprite: Markers/cross.rsi + state: green + - sprite: _CP14/Mobs/Animals/cat.rsi + state: lying + - type: ConditionalSpawner + prototypes: + - CP14MobCatRandomColored + +- type: entity + name: cat spawner + id: CP14SpawnMobCatRandomColoredWithSpots + parent: MarkerBase + categories: [ ForkFiltered ] + suffix: "Colored, Spotted" + components: + - type: Sprite + layers: + - sprite: Markers/cross.rsi + state: green + - sprite: _CP14/Mobs/Animals/cat.rsi + state: lying + - type: ConditionalSpawner + prototypes: + - CP14MobCatRandomColoredWithSpots + # Dino - type: entity diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/cats.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/cats.yml new file mode 100644 index 0000000000..a47b6f5c39 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/cats.yml @@ -0,0 +1,170 @@ +- type: entity + id: CP14MobCatBase + parent: CP14SimpleMobBase + name: cat + description: A cute small feline, that purrs when you pet it. Meow! + categories: [ ForkFiltered ] + abstract: true + components: + - type: NpcFactionMember + factions: + - CP14Cat + - type: HTN + rootTask: + task: SimpleHostileCompound + - type: MovementSpeedModifier + baseWalkSpeed: 3 + baseSprintSpeed: 5 + - type: Sprite + drawdepth: Mobs + sprite: _CP14/Mobs/Animals/cat.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: walking + - type: SpriteMovement + movementLayers: + movement: + state: walking + noMovementLayers: + movement: + state: lying + - type: FireVisuals + sprite: Mobs/Effects/onfire.rsi + normalState: Mouse_burning + - type: Appearance + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.25 + density: 40 + mask: + - MobMask + layer: + - MobLayer + - type: MobThresholds + thresholds: + 0: Alive + 50: Critical + 75: Dead + - type: CP14NightVision # Why do carcats have night vision, but not cats? + - type: DamageStateVisuals + states: + Alive: + Base: walking + Critical: + Base: dead + Dead: + Base: dead + - type: MeleeWeapon + damage: + types: + Slash: 7.5 + attackRate: 1.5 + range: 1.25 + altDisarm: false + angle: 0 + animation: WeaponArcClaw + soundHit: + collection: AlienClaw + wideAnimation: WeaponArcClaw + - type: GhostRole + name: cp14-ghost-role-information-cat-name + description: cp14-ghost-role-information-cat-description + rules: cp14-ghost-role-information-rules-pet + raffle: + settings: short + - type: GhostTakeoverAvailable + - type: MessyDrinker + spillChance: 0.2 + - type: Speech + speechSounds: Cat + speechVerb: SmallMob + - type: ReplacementAccent + accent: cat + - type: InteractionPopup + successChance: 0.6 + interactSuccessString: petting-success-cat + interactFailureString: petting-failure-generic + interactSuccessSpawn: EffectHearts + interactSuccessSound: + path: /Audio/Animals/cat_meow.ogg + - type: PassiveDamage + allowedStates: + - Alive + damageCap: 40 + damage: + groups: + Brute: -0.05 + Burn: -0.02 + Toxin: -0.02 + - type: Bloodstream + bloodMaxVolume: 80 + bloodReagent: CP14BloodAnimal + - type: Tag + tags: + - CannotSuicide + +- type: entity + parent: CP14MobCatBase + id: CP14MobCatColoredWithSpotsBase + categories: [ ForkFiltered ] + abstract: true + components: + - type: Sprite + drawdepth: Mobs + sprite: _CP14/Mobs/Animals/cat.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: walking + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded", "overlay"] + state: walking-overlay + - type: SpriteMovement + movementLayers: + movement: + sprite: _CP14/Mobs/Animals/cat.rsi + state: walking + overlay: + sprite: _CP14/Mobs/Animals/cat.rsi + state: walking-overlay + noMovementLayers: + movement: + sprite: _CP14/Mobs/Animals/cat.rsi + state: lying + overlay: + sprite: _CP14/Mobs/Animals/cat.rsi + state: lying-overlay + - type: DamageStateVisuals + states: + Alive: + Base: walking + BaseUnshaded: walking-overlay + Dead: + Base: dead + BaseUnshaded: dead-overlay + +- type: entity + parent: CP14MobCatBase + id: CP14MobCatRandomColored + suffix: "Colored" + categories: [ ForkFiltered ] + components: + - type: RandomSprite + available: + - enum.DamageStateVisualLayers.Base: + walking: CP14CatColors + +- type: entity + parent: CP14MobCatColoredWithSpotsBase + id: CP14MobCatRandomColoredWithSpots + suffix: "Colored, Spotted" + categories: [ ForkFiltered ] + components: + - type: RandomSprite + available: + - enum.DamageStateVisualLayers.Base: + walking: CP14CatColors + - enum.DamageStateVisualLayers.BaseUnshaded: + walking-overlay: CP14CatColors diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/rat.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/rat.yml index ba39dda326..dffce022c5 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/rat.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/rat.yml @@ -10,7 +10,7 @@ task: RuminantHostileCompound - type: NpcFactionMember factions: - - CP14PeacefulAnimals + - CP14Rodent - type: NPCRetaliation attackMemoryLength: 20 - type: Sprite diff --git a/Resources/Prototypes/_CP14/Palettes/cat.yml b/Resources/Prototypes/_CP14/Palettes/cat.yml new file mode 100644 index 0000000000..ba707f8c28 --- /dev/null +++ b/Resources/Prototypes/_CP14/Palettes/cat.yml @@ -0,0 +1,10 @@ +- type: palette + id: CP14CatColors + name: CP14CatColors + colors: + black: "#333333" + gray: "#666666" + white: "#ffffff" + brown: "#595042" + lightbrown: "#654321" + orange: "#e49b0f" diff --git a/Resources/Prototypes/_CP14/ai_factions.yml b/Resources/Prototypes/_CP14/ai_factions.yml index 85b02a011b..adf4399b1f 100644 --- a/Resources/Prototypes/_CP14/ai_factions.yml +++ b/Resources/Prototypes/_CP14/ai_factions.yml @@ -19,6 +19,8 @@ - CP14Monster - CP14Slimes - CP14Fishies + - CP14Cat + - CP14Rodent - type: npcFaction id: CP14Undead @@ -28,6 +30,8 @@ - CP14PeacefulAnimals - CP14AggressiveAnimals - CP14Fishies + - CP14Cat + - CP14Rodent - type: npcFaction id: CP14PeacefulAnimals @@ -35,6 +39,15 @@ - type: npcFaction id: CP14Neutrals +- type: npcFaction + id: CP14Cat + hostile: + - CP14Rodent + - CP14Fishies + +- type: npcFaction + id: CP14Rodent + - type: npcFaction id: CP14AggressiveAnimals hostile: @@ -45,6 +58,8 @@ - CP14Slimes - CP14HostileEveryone - CP14Fishies + - CP14Cat + - CP14Rodent - type: npcFaction id: CP14Monster @@ -53,6 +68,8 @@ - CP14HostileEveryone - CP14AggressiveAnimals - CP14PeacefulAnimals + - CP14Cat + - CP14Rodent - type: npcFaction id: CP14Insects @@ -69,6 +86,8 @@ - CP14HostileEveryone - CP14PeacefulAnimals - CP14AggressiveAnimals + - CP14Cat + - CP14Rodent - type: npcFaction id: CP14Fishies diff --git a/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/dead-overlay.png b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/dead-overlay.png new file mode 100644 index 0000000000..cf5ba9ca81 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/dead-overlay.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/dead.png b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/dead.png new file mode 100644 index 0000000000..cd52d9da95 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/dead.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/lying-overlay.png b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/lying-overlay.png new file mode 100644 index 0000000000..91dcdbd553 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/lying-overlay.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/lying.png b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/lying.png new file mode 100644 index 0000000000..f33cd1a640 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/lying.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/meta.json new file mode 100644 index 0000000000..212afb7c3b --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/meta.json @@ -0,0 +1,31 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by darksovet(discord), modified by omsoyk(discord), modified RSI by oldschool_otaku, owned by Gogenych", + "states": [ + { + "name": "walking", + "directions": 4 + }, + { + "name": "lying" + }, + { + "name": "dead" + }, + { + "name": "walking-overlay", + "directions": 4 + }, + { + "name": "lying-overlay" + }, + { + "name": "dead-overlay" + } + ] +} diff --git a/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/walking-overlay.png b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/walking-overlay.png new file mode 100644 index 0000000000..bb5a912958 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/walking-overlay.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/walking.png b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/walking.png new file mode 100644 index 0000000000..2764caa216 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/cat.rsi/walking.png differ