diff --git a/Resources/Audio/_CP14/Animals/attributions.yml b/Resources/Audio/_CP14/Animals/attributions.yml index c31c70aeef..40e12e1430 100644 --- a/Resources/Audio/_CP14/Animals/attributions.yml +++ b/Resources/Audio/_CP14/Animals/attributions.yml @@ -58,8 +58,12 @@ copyright: 'by egomassive of Freesound.org.' source: "https://freesound.org/people/egomassive/sounds/536728/" - - files: ["ghost_ambi.ogg"] license: "CC0-1.0" copyright: 'by Litruv of Freesound.org.' source: "https://freesound.org/people/Litruv/sounds/175944/" + +- files: ["frog1.ogg, frog2.ogg, frog3.ogg"] + license: "CC-BY-4.0" + copyright: 'by iainmccurdy of Freesound.org. Cropped and mixed from stereo to mono.' + source: "https://freesound.org/people/iainmccurdy/sounds/743820/" diff --git a/Resources/Audio/_CP14/Animals/frog1.ogg b/Resources/Audio/_CP14/Animals/frog1.ogg new file mode 100644 index 0000000000..6354ece308 Binary files /dev/null and b/Resources/Audio/_CP14/Animals/frog1.ogg differ diff --git a/Resources/Audio/_CP14/Animals/frog2.ogg b/Resources/Audio/_CP14/Animals/frog2.ogg new file mode 100644 index 0000000000..c791d0a72b Binary files /dev/null and b/Resources/Audio/_CP14/Animals/frog2.ogg differ diff --git a/Resources/Audio/_CP14/Animals/frog3.ogg b/Resources/Audio/_CP14/Animals/frog3.ogg new file mode 100644 index 0000000000..5f4e5a72ed Binary files /dev/null and b/Resources/Audio/_CP14/Animals/frog3.ogg differ diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml index 1c4f463059..8dcf60616b 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml @@ -73,6 +73,22 @@ prototypes: - CP14MobBoar +- type: entity + name: frog spawner + id: CP14SpawnMobFrog + parent: MarkerBase + categories: [ ForkFiltered ] + components: + - type: Sprite + layers: + - sprite: Markers/cross.rsi + state: green + - sprite: _CP14/Mobs/Animals/frog.rsi + state: frog + - type: ConditionalSpawner + prototypes: + - CP14MobFrog + # Dino - type: entity diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml index 330ed7489b..3796718bbb 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml @@ -209,3 +209,109 @@ path: /Audio/Animals/pig_oink.ogg - type: StealTarget stealGroup: CP14Boar + +- type: entity + name: frog + parent: SimpleMobBase + id: CP14MobFrog + description: Green and constantly jumping frog, and perhaps thanks to it mosquitoes have not completely filled the marshes. + categories: [ ForkFiltered ] + components: + - type: NpcFactionMember + factions: + - CP14Neutrals + - type: MovementSpeedModifier + baseWalkSpeed: 3 + baseSprintSpeed: 5 + - type: Sprite + drawdepth: SmallMobs + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + sprite: _CP14/Mobs/Animals/frog.rsi + state: frog + - type: Clothing + quickEquip: false + sprite: _CP14/Mobs/Animals/frog_helmet.rsi + equippedPrefix: 0 + slots: + - HEAD + - type: SpriteMovement + movementLayers: + movement: + state: frog_moving + noMovementLayers: + movement: + state: frog_blinks + - type: Item + size: Normal + - type: FireVisuals + sprite: Mobs/Effects/onfire.rsi + normalState: Mouse_burning + - type: Speech + speechVerb: SmallMob + - type: Appearance + - type: Physics + - type: FloorOcclusion + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 5 + mask: + - SmallMobMask + layer: + - SmallMobLayer + - type: MobThresholds + thresholds: + 0: Alive + 10: Dead + - type: DamageStateVisuals + states: + Alive: + Base: frog + Dead: + Base: frog_dead + - type: Butcherable + butcherDelay: 2 + spawned: + - id: CP14FoodMeatFrogLeg + amount: 2 + - type: MeleeWeapon + angle: 0 + animation: WeaponArcBite + damage: + types: + Slash: 0 + - type: InteractionPopup + successChance: 0.6 + interactSuccessString: petting-success-frog + interactFailureString: petting-failure-generic + interactSuccessSpawn: EffectHearts + interactSuccessSound: + path: /Audio/Animals/frog_ribbit.ogg + - type: CanEscapeInventory + - type: Bloodstream + bloodMaxVolume: 30 + bloodReagent: CP14Blood + - type: Tag + tags: + - CP14Mosquito + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 60 + behaviors: + - !type:GibBehavior { } + - type: SpamEmitSound + minInterval: 10 + maxInterval: 20 + sound: + collection: CP14Frog + params: + volume: -8 + variation: 0.125 + - type: SoundWhileAlive diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/meat.yml b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/meat.yml index 7b1e111896..2ab761c114 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/meat.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/meat.yml @@ -163,7 +163,7 @@ id: CP14FoodMeatLambCutlet parent: CP14FoodMeatSliceBase name: lamb cutlet - description: the result of mixing sliced lamb and egg - a raw round cutlet. + description: The result of mixing sliced lamb and egg - a raw round cutlet. components: - type: Sprite sprite: _CP14/Objects/Consumable/Food/meat.rsi @@ -210,4 +210,52 @@ - type: CP14TemperatureTransformation entries: - temperatureRange: 400, 500 - transformTo: CP14Ash1 \ No newline at end of file + transformTo: CP14Ash1 + +- type: entity + id: CP14FoodMeatFrogLeg + parent: CP14FoodMeatBase + name: frog leg + description: They say they eat it somewhere. + components: + - type: Sprite + sprite: _CP14/Objects/Consumable/Food/meat.rsi + state: frog_leg + - type: Item + size: Tiny + - type: SolutionContainerManager + solutions: + food: + maxVol: 5 + reagents: + - ReagentId: Nutriment + Quantity: 3 + - ReagentId: UncookedAnimalProteins + Quantity: 1 + - type: CP14TemperatureTransformation + entries: + - temperatureRange: 400, 500 + transformTo: CP14FoodMeatFrogLegCooked + +- type: entity + id: CP14FoodMeatFrogLegCooked + parent: CP14FoodMeatFrogLeg + name: cooked frog leg + description: It even seems edible. + components: + - type: Sprite + sprite: _CP14/Objects/Consumable/Food/meat.rsi + state: frog_leg_cooked + - type: SolutionContainerManager + solutions: + food: + maxVol: 5 + reagents: + - ReagentId: Nutriment + Quantity: 3 + - ReagentId: Protein + Quantity: 1 + - type: CP14TemperatureTransformation + entries: + - temperatureRange: 400, 500 + transformTo: CP14Ash1 diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_grass_geode.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_grass_geode.yml index 59dcab50c8..ecb008db90 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_grass_geode.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_grass_geode.yml @@ -8,6 +8,7 @@ - CP14DemiplaneHerbals - CP14DemiplaneUnderground - CP14DemiplaneWater + - CP14DemiplaneAnimalsSwamp - type: dungeonConfig id: CP14DemiplaneSwampGeode diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/misc.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/misc.yml index a3b6322c86..0ff24ab265 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/misc.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/misc.yml @@ -72,6 +72,27 @@ minGroupSize: 2 maxGroupSize: 3 +- type: cp14DemiplaneModifier + id: Frog + tiers: + - 1 + - 2 + generationWeight: 0.4 + categories: + Reward: 0.2 + requiredTags: + - CP14DemiplaneAnimalsSwamp + layers: + - !type:OreDunGen + tileMask: + - CP14FloorGrass + - CP14FloorGrassLight + - CP14FloorGrassTall + entity: CP14MobFrog + count: 3 + minGroupSize: 2 + maxGroupSize: 3 + # TIER 2 - type: cp14DemiplaneModifier diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml index eb09e59e51..a9e95b378b 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml @@ -7,6 +7,9 @@ - type: Tag id: CP14DemiplanePeacefulAnimals +- type: Tag + id: CP14DemiplaneAnimalsSwamp + - type: Tag id: CP14DemiplaneHerbals diff --git a/Resources/Prototypes/_CP14/SoundCollections/animals.yml b/Resources/Prototypes/_CP14/SoundCollections/animals.yml index fca4ae0b06..60103c7d1c 100644 --- a/Resources/Prototypes/_CP14/SoundCollections/animals.yml +++ b/Resources/Prototypes/_CP14/SoundCollections/animals.yml @@ -4,3 +4,10 @@ - /Audio/_CP14/Animals/dino1.ogg - /Audio/_CP14/Animals/dino2.ogg - /Audio/_CP14/Animals/dino3.ogg + +- type: soundCollection + id: CP14Frog + files: + - /Audio/_CP14/Animals/frog1.ogg + - /Audio/_CP14/Animals/frog2.ogg + - /Audio/_CP14/Animals/frog3.ogg diff --git a/Resources/Prototypes/_CP14/ai_factions.yml b/Resources/Prototypes/_CP14/ai_factions.yml index d77b6ca2b5..29bbcf894d 100644 --- a/Resources/Prototypes/_CP14/ai_factions.yml +++ b/Resources/Prototypes/_CP14/ai_factions.yml @@ -27,6 +27,9 @@ - type: npcFaction id: CP14PeacefulAnimals +- type: npcFaction + id: CP14Neutrals + - type: npcFaction id: CP14AggressiveAnimals hostile: diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog.png b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog.png new file mode 100644 index 0000000000..a27b4da1da Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_blinks.png b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_blinks.png new file mode 100644 index 0000000000..69c04b11fc Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_blinks.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_dead.png b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_dead.png new file mode 100644 index 0000000000..da57743293 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_dead.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_moving.png b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_moving.png new file mode 100644 index 0000000000..847a49e332 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_moving.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/icon.png b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/icon.png new file mode 100644 index 0000000000..58b4ff4c06 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/meta.json new file mode 100644 index 0000000000..bb1bf8570e --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/meta.json @@ -0,0 +1,81 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "All right reserved", + "copyright": "Created by Max Gab (Github)", + "states": [ + { + "name": "icon" + }, + { + "name": "frog", + "directions": 4 + }, + { + "name": "frog_moving", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "frog_blinks", + "directions": 4, + "delays": [ + [ + 2.5, + 0.2 + ], + [ + 2.5, + 0.2 + ], + [ + 2.5, + 0.2 + ], + [ + 2.5, + 0.2 + ] + ] + }, + { + "name": "frog_dead" + } + ] +} diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog_helmet.rsi/0-equipped-HELMET.png b/Resources/Textures/_CP14/Mobs/Animals/frog_helmet.rsi/0-equipped-HELMET.png new file mode 100644 index 0000000000..a198c236a6 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/frog_helmet.rsi/0-equipped-HELMET.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog_helmet.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Animals/frog_helmet.rsi/meta.json new file mode 100644 index 0000000000..7a1806b9b4 --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Animals/frog_helmet.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "All right reserved", + "copyright": "Created by Max Gab (Github)", + "size": { + "x": 48, + "y": 48 + }, + "states": [ + { + "name": "0-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/frog_leg.png b/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/frog_leg.png new file mode 100644 index 0000000000..3f79247fdd Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/frog_leg.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/frog_leg_cooked.png b/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/frog_leg_cooked.png new file mode 100644 index 0000000000..3ddf9307d3 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/frog_leg_cooked.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/meta.json b/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/meta.json index 1731092e9b..791e48d465 100644 --- a/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/meta.json +++ b/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "All right reserved", - "copyright": "sheepmeat and sheepmeat_cooked By omsoyk, sheepmeat_slice and sheepmeat_slice_cooked by TheShuEd, cutlet and cutlet_cooked and meat_slice by Artista.rar", + "copyright": "sheepmeat and sheepmeat_cooked By omsoyk, sheepmeat_slice and sheepmeat_slice_cooked, frog_leg_cooked by TheShuEd, cutlet and cutlet_cooked and meat_slice by Artista.rar, frog_leg by Max Gab", "size": { "x": 32, "y": 32 @@ -39,6 +39,12 @@ }, { "name": "sheepmeat_slice3_cooked" + }, + { + "name": "frog_leg" + }, + { + "name": "frog_leg_cooked" } ] } \ No newline at end of file