diff --git a/Resources/Locale/en-US/_CP14/ghostRoles/roles.ftl b/Resources/Locale/en-US/_CP14/ghostRoles/roles.ftl index f1b8f50ba8..fd26a694e1 100644 --- a/Resources/Locale/en-US/_CP14/ghostRoles/roles.ftl +++ b/Resources/Locale/en-US/_CP14/ghostRoles/roles.ftl @@ -12,3 +12,6 @@ cp14-ghost-role-information-description-rat = An honorable rat. Relieve tavernke cp14-ghost-role-information-name-bone-hound = Bone hound cp14-ghost-role-information-description-bone-hound = A bone hound created by necromantic magic, usually summoned by skeleton mages to form a pack of hunters. Obeys the skeleton that summoned it. + +cp14-ghost-role-information-name-snail = Snail +cp14-ghost-role-information-description-snail = Surviving is already an achievement. diff --git a/Resources/Locale/ru-RU/_CP14/ghostRoles/roles.ftl b/Resources/Locale/ru-RU/_CP14/ghostRoles/roles.ftl index 8f6a42ebb7..a9c70b367f 100644 --- a/Resources/Locale/ru-RU/_CP14/ghostRoles/roles.ftl +++ b/Resources/Locale/ru-RU/_CP14/ghostRoles/roles.ftl @@ -12,3 +12,6 @@ cp14-ghost-role-information-description-rat = Крыса чести. Избав cp14-ghost-role-information-name-bone-hound = Костяная гончая cp14-ghost-role-information-description-bone-hound = Костяная гончая, созданная с помощью магии некромантии, обычно вызываемая магами скелетами для формирования стаи охотников. Подчиняется скелету, который его вызвал. + +cp14-ghost-role-information-name-snail = Улитка +cp14-ghost-role-information-description-snail = Выжить – это уже достижение. diff --git a/Resources/Prototypes/_CP14/Catalog/Fills/closets.yml b/Resources/Prototypes/_CP14/Catalog/Fills/closets.yml index 68c4e06b76..80e34059b7 100644 --- a/Resources/Prototypes/_CP14/Catalog/Fills/closets.yml +++ b/Resources/Prototypes/_CP14/Catalog/Fills/closets.yml @@ -126,3 +126,5 @@ - id: CP14BookTieflingGambit - id: CP14GuidebookCooking - id: CP14SackFarmingSeedFull + - id: CP14SackFarmingSeedSnail + prob: 0.6 diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml index c1df477292..f9cbaa52f6 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml @@ -107,6 +107,22 @@ prototypes: - CP14MobSheep +- type: entity + name: snail spawner + id: CP14SpawnMobSnail + parent: MarkerBase + categories: [ ForkFiltered ] + components: + - type: Sprite + layers: + - sprite: Markers/cross.rsi + state: green + - sprite: _CP14/Mobs/Animals/snail.rsi + state: live + - type: ConditionalSpawner + prototypes: + - CP14MobSnail + # Dino - type: entity diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/timed.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/timed.yml new file mode 100644 index 0000000000..ab864ac882 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/timed.yml @@ -0,0 +1,20 @@ +- type: entity + name: snail timed spawner + id: CP14SpawnTimedMobSnail + parent: MarkerBase + categories: [ ForkFiltered ] + components: + - type: Sprite + layers: + - sprite: Markers/cross.rsi + state: blue + - sprite: _CP14/Mobs/Animals/snail.rsi + state: live + - type: Timer + - type: TimedSpawner + prototypes: + - CP14MobSnail + chance: 0.5 + intervalSeconds: 540 + minimumEntitiesSpawned: 1 + maximumEntitiesSpawned: 1 diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml index 0889c3e213..3ebbd4cf8e 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml @@ -565,4 +565,139 @@ volume: -2 variation: 0.125 - type: SoundWhileAlive - - type: FloorOcclusion + +- type: entity + id: CP14MobSnail + parent: CP14SimpleMobBase + name: snail + description: A small and slow snail. It seems that any touch could crush it. + categories: [ ForkFiltered ] + components: + - type: GhostRole + makeSentient: true + allowSpeech: true + allowMovement: true + name: cp14-ghost-role-information-name-snail + description: cp14-ghost-role-information-description-snail + rules: ghost-role-information-freeagent-rules + mindRoles: + - MindRoleGhostRoleFreeAgentHarmless + - type: GhostTakeoverAvailable + - type: HTN + constantlyReplan: false + rootTask: + task: MouseCompound + - type: NpcFactionMember + factions: + - CP14PeacefulAnimals + - type: Sprite + drawdepth: SmallMobs + layers: + - sprite: _CP14/Mobs/Animals/snail.rsi + state: live + - type: Item + size: Tiny + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.1 + density: 20 + mask: + - SmallMobMask + layer: + - SmallMobLayer + - type: MobState + - type: MobThresholds + thresholds: + 0: Alive + 10: Dead + - type: MovementSpeedModifier + baseWalkSpeed: 2 + baseSprintSpeed: 3 + - type: Speech + speechVerb: SmallMob + - type: ReplacementAccent + accent: mouse + - type: Food + - type: Thirst + baseDecayRate: 0.01 + - type: Hunger + baseDecayRate: 0.01 + - type: Body + prototype: null + - type: Respirator + minSaturation: 5.0 + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: UncookedAnimalProteins + Quantity: 3 + - type: Tag + tags: + - Meat + - type: CombatMode + combatToggleAction: ActionCombatModeToggleOff + - type: Bloodstream + bloodMaxVolume: 10 + bloodReagent: CP14BloodAnimal + - type: CanEscapeInventory + - type: BadFood + - type: FireVisuals + sprite: Mobs/Effects/onfire.rsi + normalState: Mouse_burning + - type: NoSlip + - type: Slippery + - type: StepTrigger + requiredTriggeredSpeed: 1 + - type: TriggerOnStepTrigger + - type: RandomChanceTriggerCondition + successChance: 0.3 + - type: GibOnTrigger + - type: ProtectedFromStepTriggers + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:GibBehavior + recursive: false + - !type:SpawnEntitiesBehavior + spawnInContainer: true + spawn: + CP14FoodSnailShell: + min: 1 + max: 1 + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 3 + behaviors: + - !type:GibBehavior + recursive: false + - trigger: + !type:DamageTypeTrigger + damageType: Slash + damage: 5 + behaviors: + - !type:GibBehavior + recursive: false + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 9 + behaviors: + - !type:SpawnEntitiesBehavior + spawnInContainer: true + spawn: + CP14Ash1: + min: 1 + max: 1 + - !type:BurnBodyBehavior { } + - !type:PlaySoundBehavior + sound: + collection: MeatLaserImpact diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/simple_dish.yml b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/simple_dish.yml index 2825277a6c..41afcc3157 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/simple_dish.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/simple_dish.yml @@ -63,3 +63,62 @@ Quantity: 6 - type: Temperature currentTemperature: 250 + +- type: entity + id: CP14FoodSnailShell + parent: FoodInjectableBase + categories: [ ForkFiltered ] + name: shell + description: A snail shell with a dead snail inside. + components: + - type: Item + size: Tiny + - type: FlavorProfile + flavors: + - meaty + - type: Sprite + sprite: _CP14/Objects/Consumable/Food/shell.rsi + layers: + - state: shell + - type: SolutionContainerManager + solutions: + food: + maxVol: 6 + reagents: + - ReagentId: UncookedAnimalProteins + Quantity: 3 + - type: Temperature + currentTemperature: 290 + - type: InternalTemperature + thickness: 0.006 + area: 0.006 + - type: CP14TemperatureTransformation + entries: + - temperatureRange: 400, 500 + transformTo: CP14FoodSnailShellCooked + +- type: entity + id: CP14FoodSnailShellCooked + parent: + - FoodInjectableBase + - CP14BurnsAsh + categories: [ ForkFiltered ] + name: cooked snail + description: Fried shells with snails in their own juice. Excellent. + components: + - type: Item + size: Tiny + - type: FlavorProfile + flavors: + - meaty + - type: Sprite + sprite: _CP14/Objects/Consumable/Food/shell.rsi + layers: + - state: cooked_snail + - type: SolutionContainerManager + solutions: + food: + maxVol: 6 + reagents: + - ReagentId: Protein + Quantity: 3 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Farming/sack.yml b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Farming/sack.yml index ad8e03e215..5f51f7ed68 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Farming/sack.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Farming/sack.yml @@ -131,3 +131,13 @@ - id: CP14SeedCotton amount: 1 prob: 0.4 + +- type: entity + id: CP14SackFarmingSeedSnail + parent: CP14SackFarmingSeed + suffix: Snail + components: + - type: StorageFill + contents: + - id: CP14FoodSnailShellCooked + amount: 12 diff --git a/Resources/Textures/_CP14/Mobs/Animals/snail.rsi/live.png b/Resources/Textures/_CP14/Mobs/Animals/snail.rsi/live.png new file mode 100644 index 0000000000..49aeb71c2a Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/snail.rsi/live.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/snail.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Animals/snail.rsi/meta.json new file mode 100644 index 0000000000..aedab130a5 --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Animals/snail.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-4.0", + "copyright": "Created by omsoyk (github/discord)", + "states": [ + { + "name": "live", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CP14/Objects/Consumable/Food/shell.rsi/cooked_snail.png b/Resources/Textures/_CP14/Objects/Consumable/Food/shell.rsi/cooked_snail.png new file mode 100644 index 0000000000..fb7fa32014 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Food/shell.rsi/cooked_snail.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Food/shell.rsi/meta.json b/Resources/Textures/_CP14/Objects/Consumable/Food/shell.rsi/meta.json new file mode 100644 index 0000000000..8510b812a3 --- /dev/null +++ b/Resources/Textures/_CP14/Objects/Consumable/Food/shell.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-4.0", + "copyright": "Created by omsoyk (github/discord)", + "states": [ + { + "name": "shell" + }, + { + "name": "cooked_snail" + } + ] +} diff --git a/Resources/Textures/_CP14/Objects/Consumable/Food/shell.rsi/shell.png b/Resources/Textures/_CP14/Objects/Consumable/Food/shell.rsi/shell.png new file mode 100644 index 0000000000..9e7c1a9a2e Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Food/shell.rsi/shell.png differ