From: Velken <8467292+Velken@users.noreply.github.com> Date: Tue, 15 Jul 2025 02:47:47 +0000 (-0300) Subject: Moproaches (#38700) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=b18a7ccdd3e3a4cafc165cdac249dd4a5bb09a61;p=space-station-14.git Moproaches (#38700) * MOPROACHES * rerun test - random test fail of doom * added to random pest event, with same prob as cancer mouse * rerun test - random test fail of doom 2 electric boogaloo * changed moproach obtain methods * no crafting of moproaches allowed :( * Reverted content of file. * requested changes * requested changes * requested changes * Increase moproach health by 5 - requested by Emo on discord * spaaaaaaaaaaaaaaaaaaaaaaaaace * microwave recipe added * no surgery this week * spaaaaaaaaaaaaaaaaaaace 2 more space for your space * space * new mopshoes sprite * in-hands * inhands v2 --------- Co-authored-by: ScarKy0 --- diff --git a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl index d2fe9b306f..ce52b88655 100644 --- a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl @@ -35,6 +35,9 @@ ghost-role-information-mouse-description = A hungry and mischievous mouse. ghost-role-information-mothroach-name = Mothroach ghost-role-information-mothroach-description = A cute but mischievous mothroach. +ghost-role-information-moproach-name = Moproach +ghost-role-information-moproach-description = A cute mothroach with more cute moplike shoes on its feet. + ghost-role-information-snail-name = Snail ghost-role-information-snail-description = A little snail who doesn't mind a bit of space. Just stay on grid! diff --git a/Resources/Locale/en-US/recipes/tags.ftl b/Resources/Locale/en-US/recipes/tags.ftl index 11722a6f5a..39d39e7f0c 100644 --- a/Resources/Locale/en-US/recipes/tags.ftl +++ b/Resources/Locale/en-US/recipes/tags.ftl @@ -71,6 +71,7 @@ construction-graph-tag-corgi-hide = corgi hide construction-graph-tag-apron = an apron construction-graph-tag-utility-belt = a utility belt soil-construction-graph-any-mushroom = any mushroom +construction-graph-tag-mop-basic = mop # toys construction-graph-tag-rubber-ducky = a rubber ducky diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Mobs/animals.yml b/Resources/Prototypes/Entities/Markers/Spawners/Mobs/animals.yml index ea39785032..02d99e81c3 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Mobs/animals.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Mobs/animals.yml @@ -86,6 +86,21 @@ prototypes: - MobCockroach +- type: entity + parent: MarkerBase + id: SpawnMobMoproach + name: Moproach Spawner + components: + - type: Sprite + layers: + - state: green + - sprite: Mobs/Animals/mothroach/moproach.rsi + state: icon + - state: ai + - type: ConditionalSpawner + prototypes: + - MobMoproach + - type: entity parent: MarkerBase id: SpawnMobCow diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/moproach.yml b/Resources/Prototypes/Entities/Mobs/NPCs/moproach.yml new file mode 100644 index 0000000000..c38b2cedf7 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/NPCs/moproach.yml @@ -0,0 +1,55 @@ +- type: entity + name: moproach + parent: MobMothroach + id: MobMoproach + description: This little mothroach has mopshoes on its feet! How adorable! + components: + - type: GhostRole + name: ghost-role-information-moproach-name + description: ghost-role-information-moproach-description + - type: Sprite + sprite: Mobs/Animals/mothroach/moproach.rsi + - type: Clothing + quickEquip: false + sprite: Mobs/Animals/mothroach/moproach.rsi + equippedPrefix: 0 + slots: + - HEAD + - type: MobThresholds + thresholds: + 0: Alive + 45: Critical + 65: Dead + - type: MovementSpeedModifier + baseSprintSpeed : 5 # extra speed for that moppin'! + - type: HTN + rootTask: + task: MoproachCompound + - type: Absorbent + pickupAmount: 2 # small feet + - type: UseDelay + delay: 0.5 # quick feet + - type: SolutionRegeneration + solution: absorbed + generated: + reagents: + - ReagentId: Water + Quantity: 10 + - type: SolutionPurge + solution: absorbed + preserve: + - Water + quantity: 10 + - type: SolutionContainerManager + solutions: + absorbed: + maxVol: 50 + food: + reagents: + - ReagentId: Slime + Quantity: 5 + - type: DrainableSolution + solution: drainBuffer + - type: InteractionPopup + interactSuccessString: petting-success-cleanbot + interactFailureString: petting-failure-cleanbot diff --git a/Resources/Prototypes/Entities/Objects/Misc/intermediate_parts.yml b/Resources/Prototypes/Entities/Objects/Misc/intermediate_parts.yml new file mode 100644 index 0000000000..b0774a1c2c --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Misc/intermediate_parts.yml @@ -0,0 +1,15 @@ +### For items thare are used as intermediate steps on a crafting recipe but have no use outside of it. +- type: entity + parent: BaseItem + id: MoproachShoes + name: moproach shoes + description: Three pairs of tiny mopshoes, perfectly fit for a moproach. + components: + - type: Sprite + sprite: Objects/Misc/moproach_shoes.rsi + state: mopshoes + - type: Construction + graph: MoproachShoes + node: shoes + - type: Item + size: Tiny diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml index 35c9e51533..f23bd43866 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml @@ -302,6 +302,7 @@ SpacemenFigureSpawner: 28 SpawnMobCockroach: 5 MaintenanceToolSpawner: 5 + SpawnMobMoproach: 2 - type: entity parent: BaseItem diff --git a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml index 52a730f773..0d8a7d49d6 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml @@ -116,6 +116,15 @@ possibleSpawns: - MobMothroach +- type: entity + parent: RehydratableAnimalCube + id: MoproachCube + name: moproach cube + components: + - type: Rehydratable + possibleSpawns: + - MobMoproach + - type: entity parent: RehydratableAnimalCube id: MouseCube diff --git a/Resources/Prototypes/GameRules/pests.yml b/Resources/Prototypes/GameRules/pests.yml index c0a746a138..9ddee3d709 100644 --- a/Resources/Prototypes/GameRules/pests.yml +++ b/Resources/Prototypes/GameRules/pests.yml @@ -82,6 +82,8 @@ prob: 0.03 - id: MobMothroach prob: 0.008 + - id: MobMoproach + prob: 0.004 - type: entity id: SnailMigrationLowPop diff --git a/Resources/Prototypes/NPCs/mob.yml b/Resources/Prototypes/NPCs/mob.yml index dd3378618a..77969ab92d 100644 --- a/Resources/Prototypes/NPCs/mob.yml +++ b/Resources/Prototypes/NPCs/mob.yml @@ -31,6 +31,19 @@ - tasks: - !type:HTNCompoundTask task: IdleCompound + +- type: htnCompound + id: MoproachCompound + branches: + - tasks: + - !type:HTNCompoundTask + task: FoodCompound + - tasks: + - !type:HTNCompoundTask + task: BufferNearbyPuddlesCompound + - tasks: + - !type:HTNCompoundTask + task: IdleCompound - type: htnCompound id: GlockroachCompound diff --git a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml index 13462b86da..d576d5789e 100644 --- a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml +++ b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml @@ -2422,3 +2422,16 @@ FoodMeat: 1 FoodTomato: 1 FoodSoybeans: 2 # replace these with green beans once those become a thing + +- type: microwaveMealRecipe + id: RecipeMoproach # TODO: Move this to be an actual surgery instead, once surgery gets implemented. + name: moproach recipe + result: MobMoproach + time: 30 + group: Other + reagents: + SpaceCleaner: 15 + solids: + MobMothroach: 1 + OrganAnimalHeart: 1 + MoproachShoes: 1 diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/toys.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/toys.yml index e756f9518e..44959d4fb6 100644 --- a/Resources/Prototypes/Recipes/Crafting/Graphs/toys.yml +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/toys.yml @@ -36,3 +36,50 @@ doAfter: 5 - node: suit entity: ClothingOuterSuitIan + +- type: constructionGraph + id: MoproachShoes + start: start + graph: + - node: start + edges: + - to: shoes + steps: + - tag: MopBasic + name: construction-graph-tag-mop-basic + icon: + sprite: Objects/Specific/Janitorial/mop.rsi + state: mop + doAfter: 5 + - tag: MopBasic + name: construction-graph-tag-mop-basic + icon: + sprite: Objects/Specific/Janitorial/mop.rsi + state: mop + doAfter: 5 + - tag: MopBasic + name: construction-graph-tag-mop-basic + icon: + sprite: Objects/Specific/Janitorial/mop.rsi + state: mop + doAfter: 5 + - tag: MopBasic + name: construction-graph-tag-mop-basic + icon: + sprite: Objects/Specific/Janitorial/mop.rsi + state: mop + doAfter: 5 + - tag: MopBasic + name: construction-graph-tag-mop-basic + icon: + sprite: Objects/Specific/Janitorial/mop.rsi + state: mop + doAfter: 5 + - tag: MopBasic + name: construction-graph-tag-mop-basic + icon: + sprite: Objects/Specific/Janitorial/mop.rsi + state: mop + doAfter: 5 + - node: shoes + entity: MoproachShoes diff --git a/Resources/Prototypes/Recipes/Crafting/toys.yml b/Resources/Prototypes/Recipes/Crafting/toys.yml index a3bc1bdf72..374f96fa47 100644 --- a/Resources/Prototypes/Recipes/Crafting/toys.yml +++ b/Resources/Prototypes/Recipes/Crafting/toys.yml @@ -13,3 +13,11 @@ targetNode: suit category: construction-category-misc objectType: Item + +- type: construction + id: MoproachShoes + graph: MoproachShoes + startNode: start + targetNode: shoes + category: construction-category-misc + objectType: Item diff --git a/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/0-equipped-HELMET.png b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/0-equipped-HELMET.png new file mode 100644 index 0000000000..f756efee72 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/0-equipped-HELMET.png differ diff --git a/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/icon.png b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/icon.png new file mode 100644 index 0000000000..1923b5d594 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/icon.png differ diff --git a/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/inhand-left.png b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/inhand-left.png new file mode 100644 index 0000000000..7b6b9a28a3 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/inhand-left.png differ diff --git a/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/inhand-right.png b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/inhand-right.png new file mode 100644 index 0000000000..f184340af0 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/inhand-right.png differ diff --git a/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/meta.json b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/meta.json new file mode 100644 index 0000000000..3629b336ee --- /dev/null +++ b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/meta.json @@ -0,0 +1,60 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from fulpstation at https://github.com/fulpstation/fulpstation/commit/edb232b692ec9f356ec554ea1971da552b9bc447. 'mothroach-moving' by MilenVolf, all edited by lzk228", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "mothroach", + "directions": 4 + }, + { + "name": "mothroach-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 + ] + ] + }, + { + "name": "mothroach_dead", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "0-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach-moving.png b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach-moving.png new file mode 100644 index 0000000000..929cf998c8 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach-moving.png differ diff --git a/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach.png b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach.png new file mode 100644 index 0000000000..8bc772c31f Binary files /dev/null and b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach.png differ diff --git a/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach_dead.png b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach_dead.png new file mode 100644 index 0000000000..83cbc86e4d Binary files /dev/null and b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach_dead.png differ diff --git a/Resources/Textures/Objects/Misc/moproach_shoes.rsi/inhand-left.png b/Resources/Textures/Objects/Misc/moproach_shoes.rsi/inhand-left.png new file mode 100644 index 0000000000..0f1c799ca5 Binary files /dev/null and b/Resources/Textures/Objects/Misc/moproach_shoes.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Misc/moproach_shoes.rsi/inhand-right.png b/Resources/Textures/Objects/Misc/moproach_shoes.rsi/inhand-right.png new file mode 100644 index 0000000000..af7ee7d3f2 Binary files /dev/null and b/Resources/Textures/Objects/Misc/moproach_shoes.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Misc/moproach_shoes.rsi/meta.json b/Resources/Textures/Objects/Misc/moproach_shoes.rsi/meta.json new file mode 100644 index 0000000000..ab04fbd91d --- /dev/null +++ b/Resources/Textures/Objects/Misc/moproach_shoes.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by Velken. Inhand versions modified from mop sprites from Easypoll. Mopshoes based from Galoshes from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "mopshoes" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Misc/moproach_shoes.rsi/mopshoes.png b/Resources/Textures/Objects/Misc/moproach_shoes.rsi/mopshoes.png new file mode 100644 index 0000000000..6f4b0215dc Binary files /dev/null and b/Resources/Textures/Objects/Misc/moproach_shoes.rsi/mopshoes.png differ