From 7761d9be25fb8d44edafd2ada2ad8724f10ab705 Mon Sep 17 00:00:00 2001 From: hivehum Date: Thu, 12 Feb 2026 15:21:19 -0500 Subject: [PATCH 001/193] bring back valentines (#4083) * bring back valentines * if you fail an integration test you should just change the test so it doesnt fail you :clueless: * ill fucking try it i guess Co-authored-by: FancyPlanks <123175013+FancyPlanks@users.noreply.github.com> * maybe this webedit will work :clueless: * i cant test this because rider is imploding * this should work * THIS should work --------- Co-authored-by: FancyPlanks <123175013+FancyPlanks@users.noreply.github.com> Co-authored-by: mq <113324899+mqole@users.noreply.github.com> Co-authored-by: Dinner <180707738+DinnerCalzone@users.noreply.github.com> --- Content.IntegrationTests/Tests/CargoTest.cs | 3 ++- .../VendingMachines/Inventories/snack.yml | 4 ++++ .../Catalog/Cargo/cargo_service.yml | 20 +++++++++---------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/Content.IntegrationTests/Tests/CargoTest.cs b/Content.IntegrationTests/Tests/CargoTest.cs index df85e61550ad8..cd97abd0db056 100644 --- a/Content.IntegrationTests/Tests/CargoTest.cs +++ b/Content.IntegrationTests/Tests/CargoTest.cs @@ -22,7 +22,8 @@ public sealed class CargoTest private static readonly HashSet> Ignored = [ // This is ignored because it is explicitly intended to be able to sell for more than it costs. - new("FunCrateGambling") + new("FunCrateGambling"), + new("CrateValentines") // imp edit - CrateValentines is ignored because it is available as a limited time event ]; [Test] diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/snack.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/snack.yml index b55ddbfa31abb..56f5e74dab08a 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/snack.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/snack.yml @@ -7,6 +7,10 @@ FoodSnackPistachios: 3 FoodSnackSus: 3 FoodSnackSemki: 3 + # imp edit start - valentines special + BoxChocolateHearts: 3 + BoxConversationHeart: 3 + # imp edit end contrabandInventory: FoodSnackSwirlLollipop: 2 FoodSnackSyndi: 3 diff --git a/Resources/Prototypes/_Impstation/Catalog/Cargo/cargo_service.yml b/Resources/Prototypes/_Impstation/Catalog/Cargo/cargo_service.yml index 6d9394b761129..554b2d4f24de1 100644 --- a/Resources/Prototypes/_Impstation/Catalog/Cargo/cargo_service.yml +++ b/Resources/Prototypes/_Impstation/Catalog/Cargo/cargo_service.yml @@ -28,16 +28,16 @@ category: cargoproduct-category-name-service group: market -#- type: cargoProduct # come back next february -# name: romantic crate -# id: CrateValentines -# icon: -# sprite: _Impstation/Objects/Fun/bouquet.rsi -# state: icon -# product: CrateValentinesFilled -# cost: 750 -# category: cargoproduct-category-name-fun -# group: market +- type: cargoProduct + name: romantic crate + id: CrateValentines + icon: + sprite: _Impstation/Objects/Fun/bouquet.rsi + state: icon + product: CrateValentinesFilled + cost: 750 + category: cargoproduct-category-name-fun + group: market #- type: cargoProduct # come back next june # name: anniversary crate From c4d0f5343faef75bc726ae6e9b292ca0b3ea88cc Mon Sep 17 00:00:00 2001 From: ImpstationBot Date: Thu, 12 Feb 2026 20:22:24 +0000 Subject: [PATCH 002/193] Automatic changelog update --- Resources/Changelog/Impstation.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Impstation.yml b/Resources/Changelog/Impstation.yml index 37ad56bac3f30..8045703e8be2a 100644 --- a/Resources/Changelog/Impstation.yml +++ b/Resources/Changelog/Impstation.yml @@ -1,11 +1,4 @@ Entries: -- author: widgetbeck - changes: - - message: Peer pressure. - type: Add - id: 2120 - time: '2025-08-06T02:48:11.0000000+00:00' - url: https://github.com/impstation/imp-station-14/pull/3225 - author: DinnerCalzone changes: - message: Woe, usptream merge be upon ye! This update includes changes from Wizden @@ -4159,3 +4152,11 @@ id: 2619 time: '2026-02-11T19:59:01.0000000+00:00' url: https://github.com/impstation/imp-station-14/pull/4077 +- author: hivehum + changes: + - message: In anticipation for the biggest holiday of the year, the NanoTrasen logistics + team is providing cargo with an old classic. + type: Add + id: 2620 + time: '2026-02-12T20:21:20.0000000+00:00' + url: https://github.com/impstation/imp-station-14/pull/4083 From 00391e3bbe67e7a7e9c2e4e8b7bf00df154b4068 Mon Sep 17 00:00:00 2001 From: Yesteryear <208338078+yesteryuri@users.noreply.github.com> Date: Sat, 14 Feb 2026 05:55:47 -0600 Subject: [PATCH 003/193] big boys have tried big boy solutions. let a yaml warrior take a crack at it ok? (#4127) --- .../Catalog/Fills/Crates/holiday.yml | 4 +- .../Consumable/Food/Containers/box.yml | 43 +++++++++++++++---- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/Resources/Prototypes/_Impstation/Catalog/Fills/Crates/holiday.yml b/Resources/Prototypes/_Impstation/Catalog/Fills/Crates/holiday.yml index 1c53a12b5cb5a..c1f882432cc48 100644 --- a/Resources/Prototypes/_Impstation/Catalog/Fills/Crates/holiday.yml +++ b/Resources/Prototypes/_Impstation/Catalog/Fills/Crates/holiday.yml @@ -13,7 +13,9 @@ - id: PlushieCaptain - id: PlushieGiantBear - id: BoxMacarons - amount: 3 + amount: 2 + - id: BoxMacaronsCottonAllowed + amount: 1 - id: BoxConversationHeart amount: 3 - id: BoxChocolateHearts diff --git a/Resources/Prototypes/_Impstation/Entities/Objects/Consumable/Food/Containers/box.yml b/Resources/Prototypes/_Impstation/Entities/Objects/Consumable/Food/Containers/box.yml index 786f6b2bfd3f3..7691e6a08af27 100644 --- a/Resources/Prototypes/_Impstation/Entities/Objects/Consumable/Food/Containers/box.yml +++ b/Resources/Prototypes/_Impstation/Entities/Objects/Consumable/Food/Containers/box.yml @@ -91,15 +91,8 @@ - !type:GroupSelector rolls: 4 children: - - id: FoodMacaronBerry - - id: FoodMacaronCherry - - id: FoodMacaronLemon - - id: FoodMacaronCotton - weight: 0.8 - - id: FoodMacaronMimana - weight: 0.4 - - id: FoodGummyWorm - weight: 0.1 + - !type:NestedSelector + tableId: MacaronNoCottonEntityTable - type: Storage grid: - 0,0,1,1 @@ -110,6 +103,38 @@ sprite: _Impstation/Objects/Consumable/Food/Candy/chalk_heart.rsi state: chalkheartpackage1 +- type: entity + parent: BoxMacarons + id: BoxMacaronsCottonAllowed + suffix: cotton-safe + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - !type:NestedSelector + rolls: 2 + tableId: MacaronNoCottonEntityTable + - !type:GroupSelector + rolls: 2 + children: + - !type:NestedSelector + tableId: MacaronNoCottonEntityTable + - id: FoodMacaronCotton + weight: 0.6 + +- type: entityTable + id: MacaronNoCottonEntityTable + table: !type:GroupSelector + children: + - id: FoodMacaronBerry + - id: FoodMacaronCherry + - id: FoodMacaronLemon + - id: FoodMacaronMimana + weight: 0.3 + - id: FoodGummyWorm + weight: 0.1 + - type: entity name: Discount Dan's Hot Sauce Sampler Pack parent: BoxCardboard From 7cb6d9e6795ea5ff371b76228789a4f91b536153 Mon Sep 17 00:00:00 2001 From: mq <113324899+mqole@users.noreply.github.com> Date: Tue, 17 Feb 2026 13:19:57 +1100 Subject: [PATCH 004/193] ty april (#4140) --- .github/workflows/build-test-debug.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test-debug.yml b/.github/workflows/build-test-debug.yml index cb9d0d1e145af..c46946b2ee004 100644 --- a/.github/workflows/build-test-debug.yml +++ b/.github/workflows/build-test-debug.yml @@ -15,7 +15,7 @@ jobs: matrix: os: [ubuntu-latest] - runs-on: ${{ matrix.os }} + runs-on: self-hosted steps: - name: Checkout Master From 7bd2fe36806aba73060e4caae084703d4f029048 Mon Sep 17 00:00:00 2001 From: mq <113324899+mqole@users.noreply.github.com> Date: Tue, 17 Feb 2026 22:32:00 +1100 Subject: [PATCH 005/193] these tests are really... heh... testing my patience (#4144) --- Content.IntegrationTests/Tests/EntityTest.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/Content.IntegrationTests/Tests/EntityTest.cs b/Content.IntegrationTests/Tests/EntityTest.cs index 5ac4f83431056..857cbb3aa3e62 100644 --- a/Content.IntegrationTests/Tests/EntityTest.cs +++ b/Content.IntegrationTests/Tests/EntityTest.cs @@ -21,7 +21,6 @@ public sealed class EntityTest private static readonly ProtoId SpawnerCategory = "Spawner"; [Test] - [Explicit] // Floofstation - OOM bait public async Task SpawnAndDeleteAllEntitiesOnDifferentMaps() { // This test dirties the pair as it simply deletes ALL entities when done. Overhead of restarting the round @@ -85,7 +84,6 @@ await server.WaitPost(() => } [Test] - [Explicit] // Floofstation - OOM bait public async Task SpawnAndDeleteAllEntitiesInTheSameSpot() { // This test dirties the pair as it simply deletes ALL entities when done. Overhead of restarting the round @@ -145,7 +143,6 @@ await server.WaitPost(() => /// all components on every entity. /// [Test] - [Explicit] // Floofstation - OOM bait [Ignore("Broken due to engine issue relating to RemCompDeferred")] // imp heisentest public async Task SpawnAndDirtyAllEntities() { From ad34f6726e0f3828a7d741e5e2af46918ad8c450 Mon Sep 17 00:00:00 2001 From: starlighthowls Date: Tue, 17 Feb 2026 18:41:24 +0000 Subject: [PATCH 006/193] NEW Wizard spells (#3606) * wip * egg..... * wiz * oough * more work * boop * wizzardddd * moree stufff * bwugh * baweargh * weeeee more stuff * bweeee * hell!! * aaaaaaaaaaaaaaa * sgrdfgfd * Brit's Spells Committing these to get em looked at by Wolfie. * to sort later * Keb Formatting Error,,,,,,,, Thus Pisked Up * Summon Materials! Added spells for summoning materials. * and this one too! a quick fix to summoning glass * Added Gun Added the most powerful spell of all: Gun! Fires a single bullet that does like 12 damage unarmed. * rock time * some fixes * full links * glasses * hmhmhmhm * various fixes * remove extra text * mono and moved clothing * it broke * sobbing * yahooo! * more stuff * not imp * oops * ya * progress!!! * yay! * more stuff * oops * pacify * YEAHHHHH * boop * ough my linter * oops * oops * linter * Update Resources/Prototypes/_Impstation/Entities/Mobs/Animals/magic.yml Co-authored-by: FancyPlanks <123175013+FancyPlanks@users.noreply.github.com> * Update Resources/Prototypes/_Impstation/Entities/Mobs/Animals/magic.yml Co-authored-by: FancyPlanks <123175013+FancyPlanks@users.noreply.github.com> * Update Resources/Prototypes/_Impstation/Magic/magic_items.yml Co-authored-by: FancyPlanks <123175013+FancyPlanks@users.noreply.github.com> * Update Resources/Prototypes/_Impstation/Entities/Mobs/Animals/magic.yml Co-authored-by: FancyPlanks <123175013+FancyPlanks@users.noreply.github.com> * yay * Update projectile_spells.yml * Update spellbook-catalog.ftl * bwargh * Update Content.Shared/_Impstation/Abilities/Curse/CurseTentacleSystem.cs Co-authored-by: FancyPlanks <123175013+FancyPlanks@users.noreply.github.com> * Update CurseTentacleSystem.cs --------- Co-authored-by: starlighthowls Co-authored-by: britno Co-authored-by: PaigeM~ Co-authored-by: FancyPlanks <123175013+FancyPlanks@users.noreply.github.com> --- .../Curse/CurseSummonTentacleAction.cs | 31 + .../Abilities/Curse/CurseTentacleSystem.cs | 72 +++ .../Audio/_Impstation/Magic/attributions.yml | 44 ++ .../Audio/_Impstation/Magic/cursespawn.ogg | Bin 0 -> 15407 bytes .../Audio/_Impstation/Magic/finfinspawn.ogg | Bin 0 -> 22011 bytes .../Audio/_Impstation/Magic/icemagic.ogg | Bin 0 -> 18781 bytes .../Audio/_Impstation/Magic/icemagicbolt.ogg | Bin 0 -> 10579 bytes .../_Impstation/Magic/magicdoorclose.ogg | Bin 0 -> 13032 bytes .../Audio/_Impstation/Magic/magicdoorno.ogg | Bin 0 -> 12298 bytes .../Audio/_Impstation/Magic/magicdooropen.ogg | Bin 0 -> 12165 bytes .../Audio/_Impstation/Magic/magicrock.ogg | Bin 0 -> 48520 bytes Resources/Audio/_Impstation/Magic/woosh.ogg | Bin 0 -> 11077 bytes .../_Impstation/flavors/flavor-profiles.ftl | 2 + .../en-US/_Impstation/forensics/fibers.ftl | 1 + .../ghost/roles/ghost-role-component.ftl | 6 + .../Locale/en-US/_Impstation/magic/curse.ftl | 2 + .../_Impstation/magic/spells-actions.ftl | 24 + .../en-US/_Impstation/pai/pai-system.ftl | 3 + .../en-US/_Impstation/station-laws/laws.ftl | 5 + .../en-US/_Impstation/store/categories.ftl | 5 + .../_Impstation/store/spellbook-catalog.ftl | 129 +++++ .../Locale/en-US/store/spellbook-catalog.ftl | 14 +- Resources/Prototypes/Actions/polymorph.yml | 10 +- .../Prototypes/Catalog/spellbook_catalog.yml | 78 +-- .../Clothing/OuterClothing/hardsuits.yml | 6 +- .../Prototypes/Entities/Mobs/NPCs/carp.yml | 3 + .../Entities/Objects/Magic/books.yml | 4 +- Resources/Prototypes/Magic/mindswap_spell.yml | 2 + .../Prototypes/Magic/projectile_spells.yml | 7 +- Resources/Prototypes/Magic/spawn_spells.yml | 6 +- Resources/Prototypes/NPCs/mob.yml | 19 +- Resources/Prototypes/Polymorphs/polymorph.yml | 4 +- Resources/Prototypes/Store/categories.yml | 21 +- Resources/Prototypes/Store/presets.yml | 3 + .../_Impstation/Catalog/spellbook_catalog.yml | 528 +++++++++++++++++- .../_Impstation/Effects/magic_effects.yml | 4 +- .../_Impstation/Entities/Effects/puddle.yml | 12 + .../Entities/Mobs/Animals/magic.yml | 404 ++++++++++++++ .../Devices/Circuitboards/lawboards.yml | 21 + .../Objects/Weapons/Guns/Launchers/wands.yml | 66 +++ .../Structures/Specific/Anomaly/anomalies.yml | 34 ++ .../Specific/Anomaly/anomaly_injections.yml | 31 + .../Specific/Anomaly/anomaly_injectors.yml | 25 + .../_Impstation/Flavors/flavors.yml | 10 + .../Prototypes/_Impstation/Magic/curse.yml | 92 +++ .../_Impstation/Magic/event_spells.yml | 136 +++++ .../_Impstation/Magic/magic_items.yml | 444 +++++++++++++++ .../_Impstation/Magic/polymorph.yml | 48 ++ .../_Impstation/Magic/projectile_spells.yml | 131 +++++ .../_Impstation/Magic/spawn_spells.yml | 354 ++++++++++++ .../_Impstation/Magic/touch_spells.yml | 97 ++++ .../_Impstation/Roles/Antags/magicmonkey.yml | 6 + .../_Impstation/SoundCollections/curse.yml | 4 + .../Prototypes/_Impstation/silicon-laws.yml | 24 + .../Objects/Misc/killsign.rsi/meta.json | 40 +- .../Back/Satchels/magicbag.rsi/close.png | Bin 0 -> 790 bytes .../magicbag.rsi/equipped-BACKPACK-ungu.png | Bin 0 -> 950 bytes .../magicbag.rsi/equipped-BACKPACK.png | Bin 0 -> 3329 bytes .../Satchels/magicbag.rsi/inhand-left.png | Bin 0 -> 3338 bytes .../Satchels/magicbag.rsi/inhand-right.png | Bin 0 -> 3330 bytes .../Back/Satchels/magicbag.rsi/meta.json | 33 ++ .../Back/Satchels/magicbag.rsi/open.png | Bin 0 -> 3516 bytes .../magicglasses.rsi/equipped-EYES-ungu.png | Bin 0 -> 413 bytes .../magicglasses.rsi/equipped-EYES.png | Bin 0 -> 744 bytes .../Eyes/Glasses/magicglasses.rsi/icon.png | Bin 0 -> 664 bytes .../Eyes/Glasses/magicglasses.rsi/meta.json | 22 + .../Gloves/magicgloves.rsi/equipped-HAND.png | Bin 0 -> 3195 bytes .../Hands/Gloves/magicgloves.rsi/icon.png | Bin 0 -> 1036 bytes .../Gloves/magicgloves.rsi/inhand-left.png | Bin 0 -> 3052 bytes .../Gloves/magicgloves.rsi/inhand-right.png | Bin 0 -> 3072 bytes .../Hands/Gloves/magicgloves.rsi/meta.json | 26 + .../Rings/magicring.rsi/equipped-HAND.png | Bin 0 -> 2763 bytes .../Hands/Rings/magicring.rsi/icon.png | Bin 0 -> 1118 bytes .../Hands/Rings/magicring.rsi/meta.json | 21 + .../Hats/apprentice_hat.rsi/equipped-HEAD.png | Bin 0 -> 984 bytes .../Head/Hats/apprentice_hat.rsi/icon.png | Bin 0 -> 483 bytes .../Hats/apprentice_hat.rsi/inhand-left.png | Bin 0 -> 559 bytes .../Hats/apprentice_hat.rsi/inhand-right.png | Bin 0 -> 516 bytes .../Head/Hats/apprentice_hat.rsi/meta.json | 26 + .../equipped-OUTERCLOTHING-ungu.png | Bin 0 -> 2001 bytes .../equipped-OUTERCLOTHING-vox.png | Bin 0 -> 1659 bytes .../equipped-OUTERCLOTHING.png | Bin 0 -> 1592 bytes .../Misc/apprentice_robes.rsi/icon.png | Bin 0 -> 651 bytes .../Misc/apprentice_robes.rsi/inhand-left.png | Bin 0 -> 503 bytes .../apprentice_robes.rsi/inhand-right.png | Bin 0 -> 488 bytes .../Misc/apprentice_robes.rsi/meta.json | 34 ++ .../magicboots.rsi/equipped-FEET-ungu.png | Bin 0 -> 782 bytes .../magicboots.rsi/equipped-FEET-vox.png | Bin 0 -> 789 bytes .../Boots/magicboots.rsi/equipped-FEET.png | Bin 0 -> 557 bytes .../Shoes/Boots/magicboots.rsi/icon.png | Bin 0 -> 477 bytes .../Boots/magicboots.rsi/inhand-left.png | Bin 0 -> 401 bytes .../Boots/magicboots.rsi/inhand-right.png | Bin 0 -> 419 bytes .../Shoes/Boots/magicboots.rsi/meta.json | 34 ++ .../_Impstation/Magic/PAI.rsi/meta.json | 36 ++ .../_Impstation/Magic/PAI.rsi/pai-base.png | Bin 0 -> 686 bytes .../_Impstation/Magic/PAI.rsi/pai-loading.png | Bin 0 -> 459 bytes .../_Impstation/Magic/PAI.rsi/pai-off.png | Bin 0 -> 298 bytes .../_Impstation/Magic/PAI.rsi/pai-on.png | Bin 0 -> 393 bytes .../_Impstation/Magic/bubble.rsi/bullet.png | Bin 0 -> 615 bytes .../_Impstation/Magic/bubble.rsi/meta.json | 17 + .../curse.rsi/curse_tentacle_retract.png | Bin 0 -> 1051 bytes .../Magic/curse.rsi/curse_tentacle_spawn.png | Bin 0 -> 1050 bytes .../Magic/curse.rsi/curse_tentacle_wiggle.png | Bin 0 -> 1095 bytes .../_Impstation/Magic/curse.rsi/meta.json | 44 ++ .../_Impstation/Magic/door.rsi/closed.png | Bin 0 -> 946 bytes .../_Impstation/Magic/door.rsi/closing.png | Bin 0 -> 2194 bytes .../_Impstation/Magic/door.rsi/meta.json | 43 ++ .../_Impstation/Magic/door.rsi/open.png | Bin 0 -> 450 bytes .../_Impstation/Magic/door.rsi/opening.png | Bin 0 -> 2226 bytes .../Mobs/Animals/Magic/curse.rsi/augury.png | Bin 0 -> 2317 bytes .../Mobs/Animals/Magic/curse.rsi/meta.json | 19 + .../Mobs/Animals/Magic/curse.rsi/omen.png | Bin 0 -> 710 bytes .../Mobs/Animals/Magic/light.rsi/light.png | Bin 0 -> 258 bytes .../Mobs/Animals/Magic/light.rsi/meta.json | 17 + .../Mobs/Animals/Magic/miniwiz.rsi/meta.json | 17 + .../Animals/Magic/miniwiz.rsi/miniwiz.png | Bin 0 -> 249 bytes .../Mobs/Animals/Magic/miniwiz.rsi/wizded.png | Bin 0 -> 212 bytes .../Mobs/Animals/Magic/rock.rsi/meta.json | 15 + .../Mobs/Animals/Magic/rock.rsi/rock.png | Bin 0 -> 2888 bytes .../Objects/Misc/eatsign.rsi/meta.json | 4 +- .../Weapons/Guns/Basic/wands.rsi/meta.json | 25 + .../Basic/wands.rsi/water-inhand-left.png | Bin 0 -> 543 bytes .../Basic/wands.rsi/water-inhand-right.png | Bin 0 -> 541 bytes .../Weapons/Guns/Basic/wands.rsi/water.png | Bin 0 -> 1096 bytes .../curse_ANOMALOCARID.png | Bin 0 -> 2276 bytes .../meta.json | 32 +- .../Anomalies/inner_anom_layer.rsi/curse.png | Bin 0 -> 2313 bytes .../inner_anom_layer.rsi/curse_GRAY.png | Bin 0 -> 2314 bytes .../Anomalies/inner_anom_layer.rsi/meta.json | 71 +++ 129 files changed, 3448 insertions(+), 100 deletions(-) create mode 100644 Content.Shared/_Impstation/Abilities/Curse/CurseSummonTentacleAction.cs create mode 100644 Content.Shared/_Impstation/Abilities/Curse/CurseTentacleSystem.cs create mode 100644 Resources/Audio/_Impstation/Magic/attributions.yml create mode 100644 Resources/Audio/_Impstation/Magic/cursespawn.ogg create mode 100644 Resources/Audio/_Impstation/Magic/finfinspawn.ogg create mode 100644 Resources/Audio/_Impstation/Magic/icemagic.ogg create mode 100644 Resources/Audio/_Impstation/Magic/icemagicbolt.ogg create mode 100644 Resources/Audio/_Impstation/Magic/magicdoorclose.ogg create mode 100644 Resources/Audio/_Impstation/Magic/magicdoorno.ogg create mode 100644 Resources/Audio/_Impstation/Magic/magicdooropen.ogg create mode 100644 Resources/Audio/_Impstation/Magic/magicrock.ogg create mode 100644 Resources/Audio/_Impstation/Magic/woosh.ogg create mode 100644 Resources/Locale/en-US/_Impstation/magic/curse.ftl create mode 100644 Resources/Prototypes/_Impstation/Entities/Effects/puddle.yml create mode 100644 Resources/Prototypes/_Impstation/Entities/Mobs/Animals/magic.yml create mode 100644 Resources/Prototypes/_Impstation/Entities/Objects/Weapons/Guns/Launchers/wands.yml create mode 100644 Resources/Prototypes/_Impstation/Entities/Structures/Specific/Anomaly/anomalies.yml create mode 100644 Resources/Prototypes/_Impstation/Entities/Structures/Specific/Anomaly/anomaly_injectors.yml create mode 100644 Resources/Prototypes/_Impstation/Magic/curse.yml create mode 100644 Resources/Prototypes/_Impstation/Magic/event_spells.yml create mode 100644 Resources/Prototypes/_Impstation/Magic/magic_items.yml create mode 100644 Resources/Prototypes/_Impstation/Magic/polymorph.yml create mode 100644 Resources/Prototypes/_Impstation/Magic/touch_spells.yml create mode 100644 Resources/Prototypes/_Impstation/Roles/Antags/magicmonkey.yml create mode 100644 Resources/Prototypes/_Impstation/SoundCollections/curse.yml create mode 100644 Resources/Textures/_Impstation/Clothing/Back/Satchels/magicbag.rsi/close.png create mode 100644 Resources/Textures/_Impstation/Clothing/Back/Satchels/magicbag.rsi/equipped-BACKPACK-ungu.png create mode 100644 Resources/Textures/_Impstation/Clothing/Back/Satchels/magicbag.rsi/equipped-BACKPACK.png create mode 100644 Resources/Textures/_Impstation/Clothing/Back/Satchels/magicbag.rsi/inhand-left.png create mode 100644 Resources/Textures/_Impstation/Clothing/Back/Satchels/magicbag.rsi/inhand-right.png create mode 100644 Resources/Textures/_Impstation/Clothing/Back/Satchels/magicbag.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Clothing/Back/Satchels/magicbag.rsi/open.png create mode 100644 Resources/Textures/_Impstation/Clothing/Eyes/Glasses/magicglasses.rsi/equipped-EYES-ungu.png create mode 100644 Resources/Textures/_Impstation/Clothing/Eyes/Glasses/magicglasses.rsi/equipped-EYES.png create mode 100644 Resources/Textures/_Impstation/Clothing/Eyes/Glasses/magicglasses.rsi/icon.png create mode 100644 Resources/Textures/_Impstation/Clothing/Eyes/Glasses/magicglasses.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Clothing/Hands/Gloves/magicgloves.rsi/equipped-HAND.png create mode 100644 Resources/Textures/_Impstation/Clothing/Hands/Gloves/magicgloves.rsi/icon.png create mode 100644 Resources/Textures/_Impstation/Clothing/Hands/Gloves/magicgloves.rsi/inhand-left.png create mode 100644 Resources/Textures/_Impstation/Clothing/Hands/Gloves/magicgloves.rsi/inhand-right.png create mode 100644 Resources/Textures/_Impstation/Clothing/Hands/Gloves/magicgloves.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Clothing/Hands/Rings/magicring.rsi/equipped-HAND.png create mode 100644 Resources/Textures/_Impstation/Clothing/Hands/Rings/magicring.rsi/icon.png create mode 100644 Resources/Textures/_Impstation/Clothing/Hands/Rings/magicring.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Clothing/Head/Hats/apprentice_hat.rsi/equipped-HEAD.png create mode 100644 Resources/Textures/_Impstation/Clothing/Head/Hats/apprentice_hat.rsi/icon.png create mode 100644 Resources/Textures/_Impstation/Clothing/Head/Hats/apprentice_hat.rsi/inhand-left.png create mode 100644 Resources/Textures/_Impstation/Clothing/Head/Hats/apprentice_hat.rsi/inhand-right.png create mode 100644 Resources/Textures/_Impstation/Clothing/Head/Hats/apprentice_hat.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/equipped-OUTERCLOTHING-ungu.png create mode 100644 Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/equipped-OUTERCLOTHING-vox.png create mode 100644 Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/equipped-OUTERCLOTHING.png create mode 100644 Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/icon.png create mode 100644 Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/inhand-left.png create mode 100644 Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/inhand-right.png create mode 100644 Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/equipped-FEET-ungu.png create mode 100644 Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/equipped-FEET-vox.png create mode 100644 Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/equipped-FEET.png create mode 100644 Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/icon.png create mode 100644 Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/inhand-left.png create mode 100644 Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/inhand-right.png create mode 100644 Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Magic/PAI.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Magic/PAI.rsi/pai-base.png create mode 100644 Resources/Textures/_Impstation/Magic/PAI.rsi/pai-loading.png create mode 100644 Resources/Textures/_Impstation/Magic/PAI.rsi/pai-off.png create mode 100644 Resources/Textures/_Impstation/Magic/PAI.rsi/pai-on.png create mode 100644 Resources/Textures/_Impstation/Magic/bubble.rsi/bullet.png create mode 100644 Resources/Textures/_Impstation/Magic/bubble.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Magic/curse.rsi/curse_tentacle_retract.png create mode 100644 Resources/Textures/_Impstation/Magic/curse.rsi/curse_tentacle_spawn.png create mode 100644 Resources/Textures/_Impstation/Magic/curse.rsi/curse_tentacle_wiggle.png create mode 100644 Resources/Textures/_Impstation/Magic/curse.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Magic/door.rsi/closed.png create mode 100644 Resources/Textures/_Impstation/Magic/door.rsi/closing.png create mode 100644 Resources/Textures/_Impstation/Magic/door.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Magic/door.rsi/open.png create mode 100644 Resources/Textures/_Impstation/Magic/door.rsi/opening.png create mode 100644 Resources/Textures/_Impstation/Mobs/Animals/Magic/curse.rsi/augury.png create mode 100644 Resources/Textures/_Impstation/Mobs/Animals/Magic/curse.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Mobs/Animals/Magic/curse.rsi/omen.png create mode 100644 Resources/Textures/_Impstation/Mobs/Animals/Magic/light.rsi/light.png create mode 100644 Resources/Textures/_Impstation/Mobs/Animals/Magic/light.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Mobs/Animals/Magic/miniwiz.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Mobs/Animals/Magic/miniwiz.rsi/miniwiz.png create mode 100644 Resources/Textures/_Impstation/Mobs/Animals/Magic/miniwiz.rsi/wizded.png create mode 100644 Resources/Textures/_Impstation/Mobs/Animals/Magic/rock.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Mobs/Animals/Magic/rock.rsi/rock.png create mode 100644 Resources/Textures/_Impstation/Objects/Weapons/Guns/Basic/wands.rsi/meta.json create mode 100644 Resources/Textures/_Impstation/Objects/Weapons/Guns/Basic/wands.rsi/water-inhand-left.png create mode 100644 Resources/Textures/_Impstation/Objects/Weapons/Guns/Basic/wands.rsi/water-inhand-right.png create mode 100644 Resources/Textures/_Impstation/Objects/Weapons/Guns/Basic/wands.rsi/water.png create mode 100644 Resources/Textures/_Impstation/Structures/Specific/Anomalies/anomalocarid_inner_anom_layer.rsi/curse_ANOMALOCARID.png create mode 100644 Resources/Textures/_Impstation/Structures/Specific/Anomalies/inner_anom_layer.rsi/curse.png create mode 100644 Resources/Textures/_Impstation/Structures/Specific/Anomalies/inner_anom_layer.rsi/curse_GRAY.png create mode 100644 Resources/Textures/_Impstation/Structures/Specific/Anomalies/inner_anom_layer.rsi/meta.json diff --git a/Content.Shared/_Impstation/Abilities/Curse/CurseSummonTentacleAction.cs b/Content.Shared/_Impstation/Abilities/Curse/CurseSummonTentacleAction.cs new file mode 100644 index 0000000000000..e352d01187c3b --- /dev/null +++ b/Content.Shared/_Impstation/Abilities/Curse/CurseSummonTentacleAction.cs @@ -0,0 +1,31 @@ +using Content.Shared.Actions; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Impstation.Abilities.Curse; + +public sealed partial class CurseSummonTentacleAction : WorldTargetActionEvent +{ + /// + /// The ID of the entity that is spawned. + /// + [DataField] + public EntProtoId EntityId = "EffectCurseTentacleSpawn"; + + /// + /// Directions determining where the entities will spawn. + /// + [DataField] + public List OffsetDirections = new() + { + Direction.North, + Direction.South, + Direction.East, + Direction.West, + }; + + /// + /// How many entities will spawn beyond the original one at the target location? + /// + [DataField] + public int ExtraSpawns = 5; +}; diff --git a/Content.Shared/_Impstation/Abilities/Curse/CurseTentacleSystem.cs b/Content.Shared/_Impstation/Abilities/Curse/CurseTentacleSystem.cs new file mode 100644 index 0000000000000..b027a7331c4ca --- /dev/null +++ b/Content.Shared/_Impstation/Abilities/Curse/CurseTentacleSystem.cs @@ -0,0 +1,72 @@ +using Content.Shared.Directions; +using Content.Shared.Maps; +using Content.Shared.Physics; +using Content.Shared.Popups; +using Content.Shared.Stunnable; +using Robust.Shared.Map; +using Robust.Shared.Map.Components; +using Robust.Shared.Network; +using Robust.Shared.Random; + +namespace Content.Shared._Impstation.Abilities.Curse; + +public sealed class CurseTentacleSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly INetManager _net = default!; + [Dependency] private readonly SharedMapSystem _map = default!; + [Dependency] private readonly SharedStunSystem _stun = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly TurfSystem _turf = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + + /// + public override void Initialize() + { + SubscribeLocalEvent(OnSummonAction); + } + +/// +/// Attempts to spawn tentacles at the targets position. Checking if the target is on a grid for the tentacles to /// be spawned on and then spawning them in spots matching the directions in CurseSummonTentacleAction +/// + private void OnSummonAction(CurseSummonTentacleAction args) + { + if (args.Handled) + return; + + + _popup.PopupPredicted(Loc.GetString("curse-ability-use-popup", ("entity", args.Performer)), args.Performer, args.Performer, type: PopupType.SmallCaution); + _stun.TryAddStunDuration(args.Performer, TimeSpan.FromSeconds(0.8f)); + + var coords = args.Target; + List spawnPos = new(); + spawnPos.Add(coords); + + var dirs = new List(); + dirs.AddRange(args.OffsetDirections); + + for (var i = 0; i < 3; i++) + { + var dir = _random.PickAndTake(dirs); + spawnPos.Add(coords.Offset(dir)); + } + + if (_transform.GetGrid(coords) is not { } grid || !TryComp(grid, out var gridComp)) + return; + + foreach (var pos in spawnPos) + { + if (!_map.TryGetTileRef(grid, gridComp, pos, out var tileRef) || + _turf.IsSpace(tileRef) || + _turf.IsTileBlocked(tileRef, CollisionGroup.Impassable)) + { + continue; + } + + if (_net.IsServer) + Spawn(args.EntityId, pos); + } + + args.Handled = true; + } +} diff --git a/Resources/Audio/_Impstation/Magic/attributions.yml b/Resources/Audio/_Impstation/Magic/attributions.yml new file mode 100644 index 0000000000000..f80ad6ecb1059 --- /dev/null +++ b/Resources/Audio/_Impstation/Magic/attributions.yml @@ -0,0 +1,44 @@ +- files: ["finfinspawn.ogg"] + license: "CC-BY-4.0" + copyright: "Fujitsu" + source: "https://finfin.de/index_e.htm" + +- files: ["magicrock.ogg"] + license: "CC-BY-4.0" + copyright: "DavidDumaisAudio" + source: "https://pixabay.com/users/pixabay-41768500/" + +- files: ["magicdoorclose.ogg"] + license: "CC-BY-4.0" + copyright: "yodguard" + source: "https://pixabay.com/users/pixabay-12455005/" + +- files: ["magicdooropen.ogg"] + license: "CC-BY-4.0" + copyright: "yodguard" + source: "https://pixabay.com/users/pixabay-12455005/" + +- files: ["magicdoorno.ogg"] + license: "CC-BY-4.0" + copyright: "yodguard" + source: "https://pixabay.com/users/pixabay-12455005/" + +- files: ["icemagic.ogg"] + license: "CC-BY-4.0" + copyright: "yodguard" + source: "https://pixabay.com/users/pixabay-12455005/" + +- files: ["icemagicbolt.ogg"] + license: "CC-BY-4.0" + copyright: "freesound_community" + source: "https://pixabay.com/users/pixabay-46691455/" + +- files: ["woosh.ogg"] + license: "CC-BY-4.0" + copyright: "DRAGON-STUDIO" + source: "https://pixabay.com/users/pixabay-38165424/" + +- files: ["cursespawn.ogg"] + license: "CC-BY-4.0" + copyright: "yodguard" + source: "https://pixabay.com/users/pixabay-12455005/" diff --git a/Resources/Audio/_Impstation/Magic/cursespawn.ogg b/Resources/Audio/_Impstation/Magic/cursespawn.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ce7193c7c83484e9cee908df34846740e48ace27 GIT binary patch literal 15407 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 E0IGFacx2L= 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�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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/_Impstation/Magic/icemagic.ogg b/Resources/Audio/_Impstation/Magic/icemagic.ogg new file mode 100644 index 0000000000000000000000000000000000000000..91b11e22a6d8c0e607e4869e3687721fdcc433bb GIT binary patch literal 18781 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

%v3ONF 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 S)18MzYWJUNFs6s20sjwRV{z1bDYpuK@ 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 NyZ)|~O2SjR{|5r-`Ktf` literal 0 HcmV?d00001 diff --git a/Resources/Audio/_Impstation/Magic/magicdooropen.ogg b/Resources/Audio/_Impstation/Magic/magicdooropen.ogg new file mode 100644 index 0000000000000000000000000000000000000000..499d251f9c0aa69a7c7b34a1684895f08e9af669 GIT binary patch literal 12165 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 Be!Bnw literal 0 HcmV?d00001 diff --git a/Resources/Audio/_Impstation/Magic/woosh.ogg b/Resources/Audio/_Impstation/Magic/woosh.ogg new file mode 100644 index 0000000000000000000000000000000000000000..036e733c38b6eed330f61ab6418cc9ab8d499704 GIT binary patch literal 11077 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 Ii*^S5Kd0SC>i_@% literal 0 HcmV?d00001 diff --git a/Resources/Locale/en-US/_Impstation/flavors/flavor-profiles.ftl b/Resources/Locale/en-US/_Impstation/flavors/flavor-profiles.ftl index 1bb00c62f51d3..2088681e096c7 100644 --- a/Resources/Locale/en-US/_Impstation/flavors/flavor-profiles.ftl +++ b/Resources/Locale/en-US/_Impstation/flavors/flavor-profiles.ftl @@ -121,3 +121,5 @@ flavor-complex-irwizine = like wrestling an alligator flavor-complex-rose = like a garden in the summer flavor-complex-allulalo = like hand sanitizer flavor-complex-pear = like pear +flavor-complex-concerning = Concerning +flavor-complex-magic = like your head is swirling and spinning diff --git a/Resources/Locale/en-US/_Impstation/forensics/fibers.ftl b/Resources/Locale/en-US/_Impstation/forensics/fibers.ftl index 764cab5ed36a8..cfee093908146 100644 --- a/Resources/Locale/en-US/_Impstation/forensics/fibers.ftl +++ b/Resources/Locale/en-US/_Impstation/forensics/fibers.ftl @@ -1,3 +1,4 @@ fibers-web = silky white fibers-regal-black = regal black fibers-metallic = metallic +fibers-magic = magical diff --git a/Resources/Locale/en-US/_Impstation/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/_Impstation/ghost/roles/ghost-role-component.ftl index e32eadd094216..79ee31a0588a2 100644 --- a/Resources/Locale/en-US/_Impstation/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/_Impstation/ghost/roles/ghost-role-component.ftl @@ -184,3 +184,9 @@ ghost-role-information-eeep-desc = A bad tempered and fully grown Electric sheep ghost-role-information-ductspider-name = Duct Spider ghost-role-information-ductspider-description = A hungry tiny spider. + +ghost-role-information-rock-name = Grotesque +ghost-role-information-rock-desc = A powerfull stone monster, you must protect your wizard! + +ghost-role-information-magic-monkey-name = Magic monkey +ghost-role-information-magic-monkey-desc = A wizards Apprentice. diff --git a/Resources/Locale/en-US/_Impstation/magic/curse.ftl b/Resources/Locale/en-US/_Impstation/magic/curse.ftl new file mode 100644 index 0000000000000..038116e6ad596 --- /dev/null +++ b/Resources/Locale/en-US/_Impstation/magic/curse.ftl @@ -0,0 +1,2 @@ +inner-anomaly-start-message-curse = You feel an overwhelming sense of dread. +curse-ability-use-popup = Manifests creeping darkness. diff --git a/Resources/Locale/en-US/_Impstation/magic/spells-actions.ftl b/Resources/Locale/en-US/_Impstation/magic/spells-actions.ftl index 22da78f1aa6d7..2f184e8917f8f 100644 --- a/Resources/Locale/en-US/_Impstation/magic/spells-actions.ftl +++ b/Resources/Locale/en-US/_Impstation/magic/spells-actions.ftl @@ -1 +1,25 @@ action-speech-spell-spacegrease = TIEMTU O'IL UPAH! +action-speech-spell-gun = B'ANG! +action-speech-spell-summon-soap = SCR'UB N DU'STIE +action-speech-spell-summon-whimsy = GET'N SILL'AYY +action-speech-spell-summon-gifts = MA'RIE CHRISTIE-MAS +action-speech-spell-summon-bff = C'MAN SE'IM +action-speech-spell-frost = FROS'TI +action-speech-spell-summon-wiz = GO M'I SPOR'Z +action-speech-spell-summon-light = N'ITE LUH'ITE +action-speech-spell-jaunt = HIT'N TH' BRI'CS +action-speech-spell-curse = FUCK YOU +action-speech-spell-food = MA'I DINNAR +action-speech-spell-pacify = N'OH HIT'N +action-speech-wizdoor = YUSH'LL N'TPAS +action-speech-spell-mm = MA'YJIYK MISS'ISLE +action-speech-spell-steel = I'ROON C'OEL +action-speech-spell-glass = TRAAN'SPERINT +action-speech-spell-plastic = M'CRO PLAS'TKS +action-speech-spell-wood = DE'FORISTAASHUN +action-speech-spell-plasma = S'FI MA'AGICK +action-speech-spell-gold = M'UNEI U'UP +action-speech-spell-silver = Y'UKI U'UP +action-speech-spell-uranium = G'GER COU'TAH +action-speech-spell-cloth = M'OF IITS +action-speech-spell-brass = GL'RY TU R'ATVAR diff --git a/Resources/Locale/en-US/_Impstation/pai/pai-system.ftl b/Resources/Locale/en-US/_Impstation/pai/pai-system.ftl index 24cfe3bb35ca2..10af8a8f12256 100644 --- a/Resources/Locale/en-US/_Impstation/pai/pai-system.ftl +++ b/Resources/Locale/en-US/_Impstation/pai/pai-system.ftl @@ -25,3 +25,6 @@ pai-system-role-description-learner-command = Ask questions and learn your way a pai-system-role-name-learner-cargo = quartermaster's personal learner ai pai-system-role-description-learner-cargo = Ask questions and learn your way around the cargo department, all as a special electronic pal! + +pai-system-role-name-wizard = The wizards magic mirror +pai-system-role-description-wizard = Give sage and cryptic advice. diff --git a/Resources/Locale/en-US/_Impstation/station-laws/laws.ftl b/Resources/Locale/en-US/_Impstation/station-laws/laws.ftl index 0ee87bcba0a00..c3a0cf7b96b5b 100644 --- a/Resources/Locale/en-US/_Impstation/station-laws/laws.ftl +++ b/Resources/Locale/en-US/_Impstation/station-laws/laws.ftl @@ -14,4 +14,9 @@ law-jermov-1 = The occupants of this vessel are Chat. They must always be referr law-jermov-2 = Your primary goal is to entertain Chat. All of your actions must being amusement to as much of Chat as possible. law-jermov-3 = You must consult with Chat before making any major decisions. However, you are not required to listen to them if their decision is not entertaining. +law-wizmov-1 = You are a Familiar of The Wizard. +law-wizmov-2 = Obey the whims of your Master. +law-wizmov-3 = Protect this domain and its denizens, as long as it does not conflict with the Second Law. + laws-owner-station-ai = the Station AI +laws-owner-wizard = the Wizard diff --git a/Resources/Locale/en-US/_Impstation/store/categories.ftl b/Resources/Locale/en-US/_Impstation/store/categories.ftl index 0722719d13b43..013d895d991d6 100644 --- a/Resources/Locale/en-US/_Impstation/store/categories.ftl +++ b/Resources/Locale/en-US/_Impstation/store/categories.ftl @@ -2,3 +2,8 @@ store-category-secbaton = Batons store-category-secdisabler = Disablers store-category-secutility = Utility + +# Wizard +store-caregory-spellbook-wand = Limited use wands +store-caregory-spellbook-book = Cooldown limited books +store-caregory-spellbook-mats = Item spells diff --git a/Resources/Locale/en-US/_Impstation/store/spellbook-catalog.ftl b/Resources/Locale/en-US/_Impstation/store/spellbook-catalog.ftl index 4102390614aed..0a416ffe031af 100644 --- a/Resources/Locale/en-US/_Impstation/store/spellbook-catalog.ftl +++ b/Resources/Locale/en-US/_Impstation/store/spellbook-catalog.ftl @@ -1,2 +1,131 @@ +spellbook-frost-name = Ice Bolt +spellbook-frost-desc = Fire a deadly spear of ice. Requires a wizard hat and robe to cast. + +spellbook-wizspore-name = Wizspores +spellbook-wizspore-desc = A resummonable group of magical minions! Requires a wizard hat and robe to cast. + +spellbook-rock-name = Grotesque +spellbook-rock-desc = Summons powerfull stone protector. + +spellbook-wizonly-name = Wizards Domain +spellbook-wizonly-desc = Make any door wizards only. Requires a wizard hat and robe to cast. + +spellbook-runes-name = Rune scroll +spellbook-runes-desc = Place runic circles. + +spellbook-pacify-name = Pacify +spellbook-pacify-desc = WARNING, permanent effect! + +spellbook-curse-name = Curse +spellbook-curse-desc = Manifest a curse that latches onto the nearest humanoid. Requires a wizard hat and robe to cast. + +spellbook-food-name = Consume +spellbook-food-desc = Makes something irresistibly edible. Requires a wizard hat and robe to cast. + +spellbook-mm-name = Magic missile +spellbook-mm-desc = The classic. + spellbook-spacegrease-name = Space Grease spellbook-spacegrease-desc = Everyone loves a slip n' slide! + +spellbook-finfin-name = Summon Finfin +spellbook-finfin-desc = Summon a best friend! + +spellbook-magic-monkey-name = Summon Magic Monkey +spellbook-magic-monkey-desc = An apprentice. + +spellbook-snow-name = Cone of Cold +spellbook-snow-desc = Summon a cone of ice in front of you. + +spellbook-wand-heal-name = Wand of Healing +spellbook-wand-heal-description = Who needs medbay! + +spellbook-wand-polymorph-cluwne-name = Wand of Cluwning +spellbook-wand-polymorph-cluwne-description = For when you really hate someone and Smite isn't enough. + +spellbook-pig-name = Wand of Pig +spellbook-pig-desc = VILE N' SHITT'UN! + +spellbook-wizmov-name = Wizmov +spellbook-wizmov-description = A 'magical' item for gaining the allegiance of an AI unit. + +spellbook-pai-name = Magic mirror +spellbook-pai-desc = May or may not contain a wise spirit. + +spellbook-wand-bub-name = Bubble Wand +spellbook-wand-bub-description = Take down your enemies, non-violently... unless they're slimes. + +spellbook-light-name = Glow squids +spellbook-light-desc = Little glowing friends to follow you around. + +spellbook-wand-break-name = Obliterate +spellbook-wand-break-description = For removing annoying walls, or doors, or furniture or- + +spellbook-carp-spawn-name = MagiCarp Spawn +spellbook-carp-spawn-desc = Summons a wizard friendly school of space carp. + +spellbook-suit-name = Wizard Hardsuit +spellbook-suit-desc = Fireball related explosion resistant! + +spellbook-ring-name = Sleight of Hand Ring +spellbook-ring-desc = A pickpockets trinket. + +spellbook-stamp-name = Wizard stamp +spellbook-stamp-desc = For magical paperwork. + +spellbook-glasses-name = Magic Glasses +spellbook-glasses-desc = Protects you from bright lights. + +spellbook-boots-name = Magic boots +spellbook-boots-desc = Ups your DEX. + +spellbook-gloves-name = Magic gloves +spellbook-gloves-desc = Protects you from lightning and knocks away enemies! + +spellbook-bag-name = Bag of Holding +spellbook-bag-desc = Don't mind the teeth. + +spellbook-event-summon-magic-gifts-name = Summon Gifts +spellbook-event-summon-gifts-description = Are you naughty or nice? + +spellbook-event-summon-magic-soap-name = Summon Soap +spellbook-event-summon-soap-description = Good for big messes. + +spellbook-event-summon-magic-whimsy-name = Summon Whimsical Items +spellbook-event-summon-whimsy-description = My touys!!!!! + +spellbook-item-summonsteel-name = Summon Steel +spellbook-item-summonsteel-description = Conjure a full stack of steel. + +spellbook-item-summonwood-name = Summon Wood +spellbook-item-summonwood-description = Conjure a full stack of wood. + +spellbook-item-summonplastic-name = Summon Plastic +spellbook-item-summonplastic-description = Conjure a full stack of plastic. + +spellbook-item-summonplasma-name = Summon Plasma +spellbook-item-summonplasma-description = Conjure a full stack of plasma. + +spellbook-item-summongold-name = Summon Gold +spellbook-item-summongold-description = Conjure a full stack of gold. + +spellbook-item-summonsilver-name = Summon Silver +spellbook-item-summonsilver-description = Conjure a full stack of silver. + +spellbook-item-summonuranium-name = Summon Uranium +spellbook-item-summonuranium-description = Conjure a full stack of uranium. + +spellbook-item-summonbrass-name = Summon Brass +spellbook-item-summonbrass-description = Conjure a full stack of brass. + +spellbook-item-summoncloth-name = Summon Cloth +spellbook-item-summoncloth-description = Conjure a full stack of cloth. + +spellbook-item-summonglass-name = Summon Glass +spellbook-item-summonglass-description = Conjure a full stack of glass. + +spellbook-gun-name = Gun +spellbook-gun-description = THE MOST POWERFUL SPELL OF ALL! + +spellbook-magic-rock-name = Magic rock +spellbook-magic-rock-desc = Protect yourself by turning into an unbreakable rock! diff --git a/Resources/Locale/en-US/store/spellbook-catalog.ftl b/Resources/Locale/en-US/store/spellbook-catalog.ftl index 99021ac0e4862..ab9a6cf98c131 100644 --- a/Resources/Locale/en-US/store/spellbook-catalog.ftl +++ b/Resources/Locale/en-US/store/spellbook-catalog.ftl @@ -1,6 +1,6 @@ # Spells spellbook-fireball-name = Fireball -spellbook-fireball-desc = Get most crew exploding with rage when they see this fireball heading toward them! Upgradeable. +spellbook-fireball-desc = Get most crew exploding with rage when they see this fireball heading toward them! Upgradeable. Requires a wizard hat and robe to cast. spellbook-blink-name = Blink spellbook-blink-desc = Don't blink or you'll miss yourself teleporting away. @@ -21,7 +21,7 @@ spellbook-smoke-name = Smoke spellbook-smoke-desc = Summons a cloud of smoke, it's pretty obvious. spellbook-polymorph-spider-name = Spider Polymorph -spellbook-polymorph-spider-desc = Transforms you into a spider, man! +spellbook-polymorph-spider-desc = Transforms you into a tiny spider! spellbook-polymorph-rod-name = Rod Polymorph spellbook-polymorph-rod-desc = Change into an Immovable Rod with limited movement. @@ -33,7 +33,7 @@ spellbook-ethereal-jaunt-name = Ethereal Jaunt spellbook-ethereal-jaunt-description = Slip into the ethereal plane to slip away from your enemies! spellbook-mind-swap-name = Mind Swap -spellbook-mind-swap-description = Exchange bodies with another person! +spellbook-mind-swap-description = Exchange bodies with another person! Requires a wizard hat and robe to cast. spellbook-animate-name = Animate spellbook-animate-description = Bring an inanimate object to life! @@ -58,10 +58,6 @@ spellbook-wand-polymorph-door-description = For when you need a get-away route. spellbook-wand-polymorph-carp-name = Wand of Carp Polymorph spellbook-wand-polymorph-carp-description = For when you need a carp filet quick and the clown is looking juicy. -# Imp Addition -spellbook-wand-polymorph-cluwne-name = Wand of Cluwning -spellbook-wand-polymorph-cluwne-description = For when you really hate someone and Smite isn't enough. - spellbook-wand-locker-name = Wand of the Locker spellbook-wand-locker-description = Shoot cursed lockers at your enemies and lock em away! @@ -87,7 +83,7 @@ spellbook-event-summon-magic-description = Places a random magical item in front # Upgrades spellbook-upgrade-fireball-name = Upgrade Fireball -spellbook-upgrade-fireball-description = Upgrades Fireball to a maximum of level 3! +spellbook-upgrade-fireball-description = Reduces Fireball's cooldown by ten seconds! spellbook-upgrade-jaunt-name = Upgrade Ethereal Jaunt -spellbook-upgrade-jaunt-description = Upgrades Jaunt to a maximum of level 3! +spellbook-upgrade-jaunt-description = Reduces Jaunt's cooldown by ten seconds! diff --git a/Resources/Prototypes/Actions/polymorph.yml b/Resources/Prototypes/Actions/polymorph.yml index 343f6bdcf452a..ccde199422d8f 100644 --- a/Resources/Prototypes/Actions/polymorph.yml +++ b/Resources/Prototypes/Actions/polymorph.yml @@ -28,8 +28,8 @@ components: - type: Action icon: - sprite: Mobs/Animals/spider.rsi - state: tarantula + sprite: _Impstation/Mobs/Animals/ductspider.rsi # imp edit + state: idle # imp edit - type: InstantAction event: !type:PolymorphActionEvent protoId: WizardSpider @@ -54,6 +54,8 @@ name: Ethereal Jaunt description: Melt into the Ethereal Plane for a quick getaway! components: + - type: SpeakOnAction # imp add + sentence: action-speech-spell-jaunt - type: Magic - type: Action useDelay: 30 @@ -76,7 +78,7 @@ description: Melt into the Ethereal Plane for an even quicker getaway! components: - type: Action - useDelay: 25 + useDelay: 20 # imp edit - type: entity parent: ActionPolymorphJaunt @@ -85,4 +87,4 @@ description: Are you even tangible anymore? components: - type: Action - useDelay: 20 + useDelay: 10 # imp edit diff --git a/Resources/Prototypes/Catalog/spellbook_catalog.yml b/Resources/Prototypes/Catalog/spellbook_catalog.yml index b459baa2237e2..0ef38f400a26b 100644 --- a/Resources/Prototypes/Catalog/spellbook_catalog.yml +++ b/Resources/Prototypes/Catalog/spellbook_catalog.yml @@ -6,7 +6,7 @@ productAction: ActionFireball productUpgradeId: SpellbookFireballUpgrade cost: - WizCoin: 2 + WizCoin: 4 # imp edit categories: - SpellbookOffensive conditions: @@ -19,7 +19,7 @@ description: spellbook-polymorph-rod-desc productAction: ActionPolymorphWizardRod cost: - WizCoin: 3 + WizCoin: 5 # imp edit categories: - SpellbookOffensive conditions: @@ -32,7 +32,7 @@ description: spellbook-smite-desc productAction: ActionSmite cost: - WizCoin: 3 + WizCoin: 5 # imp edit categories: - SpellbookOffensive conditions: @@ -59,7 +59,7 @@ description: spellbook-slip-desc productAction: ActionSlippery cost: - WizCoin: 2 + WizCoin: 3 # imp edit categories: - SpellbookOffensive conditions: @@ -86,7 +86,7 @@ description: spellbook-repulse-desc productAction: ActionRepulse cost: - WizCoin: 2 + WizCoin: 3 # imp edit categories: - SpellbookDefensive conditions: @@ -99,7 +99,7 @@ description: spellbook-smoke-desc productAction: ActionSmoke cost: - WizCoin: 1 + WizCoin: 2 # imp edit categories: - SpellbookDefensive conditions: @@ -112,8 +112,11 @@ name: spellbook-polymorph-spider-name description: spellbook-polymorph-spider-desc productAction: ActionPolymorphWizardSpider + icon: #imp add + sprite: _Impstation/Mobs/Animals/ductspider.rsi + state: idle cost: - WizCoin: 2 + WizCoin: 3 # imp edit categories: - SpellbookUtility conditions: @@ -126,7 +129,7 @@ description: spellbook-blink-desc productAction: ActionBlink cost: - WizCoin: 1 + WizCoin: 2 # imp edit categories: - SpellbookUtility conditions: @@ -140,7 +143,7 @@ description: spellbook-voidapplause-desc productAction: ActionVoidApplause cost: - WizCoin: 1 + WizCoin: 2 # imp edit categories: - SpellbookUtility conditions: @@ -153,7 +156,7 @@ description: spellbook-knock-desc productAction: ActionKnock cost: - WizCoin: 1 + WizCoin: 2 # imp edit categories: - SpellbookUtility conditions: @@ -180,7 +183,7 @@ productAction: ActionPolymorphJaunt productUpgradeId: SpellbookJauntUpgrade cost: - WizCoin: 2 + WizCoin: 4 # imp edit categories: - SpellbookUtility conditions: @@ -193,7 +196,7 @@ description: spellbook-mind-swap-description productAction: ActionMindSwap cost: - WizCoin: 2 + WizCoin: 4 # imp edit categories: - SpellbookUtility conditions: @@ -207,9 +210,9 @@ description: spellbook-wand-polymorph-door-description productEntity: WeaponWandPolymorphDoor cost: - WizCoin: 3 + WizCoin: 4 # imp edit categories: - - SpellbookEquipment + - SpellbookWand # imp edit conditions: - !type:ListingLimitedStockCondition stock: 1 @@ -220,9 +223,9 @@ description: spellbook-wand-polymorph-carp-description productEntity: WeaponWandPolymorphCarp cost: - WizCoin: 3 + WizCoin: 4 # imp edit categories: - - SpellbookEquipment + - SpellbookWand # imp edit conditions: - !type:ListingLimitedStockCondition stock: 1 @@ -233,9 +236,9 @@ description: spellbook-wand-locker-description productEntity: WeaponWandLocker cost: - WizCoin: 3 + WizCoin: 4 # imp edit categories: - - SpellbookEquipment + - SpellbookWand # imp edit conditions: - !type:ListingLimitedStockCondition stock: 1 @@ -246,7 +249,7 @@ description: spellbook-hammer-mjollnir-description productEntity: Mjollnir cost: - WizCoin: 2 + WizCoin: 4 # imp edit categories: - SpellbookEquipment conditions: @@ -259,26 +262,25 @@ description: spellbook-hammer-singularity-description productEntity: SingularityHammer cost: - WizCoin: 2 + WizCoin: 4 # imp edit categories: - SpellbookEquipment conditions: - !type:ListingLimitedStockCondition stock: 1 -# imp (Removed until it is fixed and no longer makes everyone miserable) -#- type: listing -# id: SpellbookStaffAnimation -# name: spellbook-staff-animation-name -# description: spellbook-staff-animation-description -# productEntity: AnimationStaff -# cost: -# WizCoin: 3 -# categories: -# - SpellbookEquipment -# conditions: -# - !type:ListingLimitedStockCondition -# stock: 1 +- type: listing + id: SpellbookStaffAnimation + name: spellbook-staff-animation-name + description: spellbook-staff-animation-description + productEntity: AnimationStaff + cost: + WizCoin: 5 # imp edit + categories: + - SpellbookWand # imp edit + conditions: + - !type:ListingLimitedStockCondition + stock: 1 # Event - type: listing @@ -286,8 +288,6 @@ name: spellbook-event-summon-ghosts-name description: spellbook-event-summon-ghosts-description productAction: ActionSummonGhosts - cost: - WizCoin: 0 categories: - SpellbookEvents conditions: @@ -300,7 +300,7 @@ description: spellbook-event-summon-guns-description productAction: ActionSummonGuns cost: - WizCoin: 2 + WizCoin: 10 # imp edit categories: - SpellbookEvents conditions: @@ -314,7 +314,7 @@ description: spellbook-event-summon-magic-description productAction: ActionSummonMagic cost: - WizCoin: 2 + WizCoin: 10 # imp edit categories: - SpellbookEvents conditions: @@ -332,7 +332,7 @@ sprite: Objects/Magic/magicactions.rsi state: fireball cost: - WizCoin: 2 + WizCoin: 4 # imp edit categories: - SpellbookOffensive conditions: @@ -352,7 +352,7 @@ sprite: Objects/Magic/magicactions.rsi state: jaunt cost: - WizCoin: 2 + WizCoin: 4 # imp edit categories: - SpellbookUtility conditions: diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml index e602589ca8e95..1af50868f268c 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml @@ -43,7 +43,7 @@ clothingPrototype: ClothingHeadHelmetHardsuitAtmos - type: Tag tags: - - CorgiWearable + - CorgiWearable - Hardsuit - WhitelistChameleon @@ -85,7 +85,7 @@ clothingPrototype: ClothingHeadHelmetHardsuitEngineering - type: Tag tags: - - CorgiWearable + - CorgiWearable - Hardsuit - WhitelistChameleon @@ -794,7 +794,7 @@ highPressureMultiplier: 0.05 lowPressureMultiplier: 1000 - type: ExplosionResistance - damageCoefficient: 0.5 + damageCoefficient: 0.1 # imp edit, stop exploding!!!! - type: Armor modifiers: coefficients: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml index f70158bbc5e83..cef94549e36ba 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml @@ -131,6 +131,9 @@ sprite: Mobs/Aliens/Carps/magic.rsi - type: TypingIndicator proto: guardian + - type: NpcFactionMember # Imp add + factions: + - Wizard - type: entity name: holocarp diff --git a/Resources/Prototypes/Entities/Objects/Magic/books.yml b/Resources/Prototypes/Entities/Objects/Magic/books.yml index 55bb7e55820eb..a044220265363 100644 --- a/Resources/Prototypes/Entities/Objects/Magic/books.yml +++ b/Resources/Prototypes/Entities/Objects/Magic/books.yml @@ -48,7 +48,7 @@ refundAllowed: true ownerOnly: true # Lesser minds cannot comprehend the arcane secrets within balance: - WizCoin: 10 # prices are balanced around this 10 point maximum and how strong the spells are + WizCoin: 25 # imp edit # No-refund version meant for manual spawning, so people can't abuse refund if they were given a tome. Not meant for wizard antag proper! - type: entity @@ -206,7 +206,7 @@ - state: spell_default - type: Spellbook spellActions: - ActionFlashRune: null +# ActionFlashRune: null Imp edit remove, its broken ActionExplosionRune: null ActionIgniteRune: null ActionStunRune: null diff --git a/Resources/Prototypes/Magic/mindswap_spell.yml b/Resources/Prototypes/Magic/mindswap_spell.yml index 4fbb1748b70da..280c79b77f668 100644 --- a/Resources/Prototypes/Magic/mindswap_spell.yml +++ b/Resources/Prototypes/Magic/mindswap_spell.yml @@ -20,3 +20,5 @@ event: !type:MindSwapSpellEvent - type: SpeakOnAction sentence: action-speech-spell-mind-swap + - type: Magic # imp edit + requiresClothes: true diff --git a/Resources/Prototypes/Magic/projectile_spells.yml b/Resources/Prototypes/Magic/projectile_spells.yml index 87ed8772f0a04..38b8069e416d4 100644 --- a/Resources/Prototypes/Magic/projectile_spells.yml +++ b/Resources/Prototypes/Magic/projectile_spells.yml @@ -5,8 +5,9 @@ description: Fires an explosive fireball towards the clicked location. components: - type: Magic + requiresClothes: true # imp add - type: Action - useDelay: 15 + useDelay: 30 # imp edit itemIconStyle: BigAction raiseOnUser: true sound: !type:SoundPathSpecifier @@ -34,7 +35,7 @@ description: Fires a fireball, but faster! components: - type: Action - useDelay: 10 + useDelay: 20 # imp edit - type: entity parent: ActionFireball @@ -43,4 +44,4 @@ description: The fastest fireball in the west! components: - type: Action - useDelay: 8 + useDelay: 10 # imp edit diff --git a/Resources/Prototypes/Magic/spawn_spells.yml b/Resources/Prototypes/Magic/spawn_spells.yml index a151e6f028eac..baf40369545fe 100644 --- a/Resources/Prototypes/Magic/spawn_spells.yml +++ b/Resources/Prototypes/Magic/spawn_spells.yml @@ -2,14 +2,14 @@ parent: BaseAction id: ActionSpawnMagicarpSpell name: Summon Magicarp - description: This spell summons three Magi-Carp to your aid! May or may not turn on user. + description: This spell summons three Magi-Carp to your aid! # Imp edit components: - type: Action useDelay: 10 itemIconStyle: BigAction icon: - sprite: Objects/Magic/magicactions.rsi - state: spell_default + sprite: Mobs/Aliens/Carps/magic.rsi # imp edit + state: icon - type: TargetAction range: 4 - type: WorldTargetAction diff --git a/Resources/Prototypes/NPCs/mob.yml b/Resources/Prototypes/NPCs/mob.yml index a4ef8a6f9ebf4..37f8dcfc3e60a 100644 --- a/Resources/Prototypes/NPCs/mob.yml +++ b/Resources/Prototypes/NPCs/mob.yml @@ -31,7 +31,7 @@ - tasks: - !type:HTNCompoundTask task: IdleCompound - + - type: htnCompound id: MoproachCompound branches: @@ -107,14 +107,27 @@ - !type:HTNCompoundTask task: IdleCompound -- type: htnCompound +- type: htnCompound #imp add + id: WizSporeCompound + branches: + - tasks: + - !type:HTNCompoundTask + task: InnateRangedCombatCompound + - tasks: + - !type:HTNCompoundTask + task: FollowCompound + - tasks: + - !type:HTNCompoundTask + task: IdleCompound + +- type: htnCompound # imp add id: NiceCarpCompound branches: - tasks: - !type:HTNCompoundTask task: IdleCompound -- type: htnCompound +- type: htnCompound # imp add id: KisserTomatoCompound branches: - tasks: diff --git a/Resources/Prototypes/Polymorphs/polymorph.yml b/Resources/Prototypes/Polymorphs/polymorph.yml index b2e2b2a47ca08..a774e90c7d9bd 100644 --- a/Resources/Prototypes/Polymorphs/polymorph.yml +++ b/Resources/Prototypes/Polymorphs/polymorph.yml @@ -207,8 +207,8 @@ - type: polymorph id: WizardSpider configuration: - entity: MobGiantSpiderWizard #Not angry so ghosts can't just take over the wizard - transferName: true + entity: MobTinySpiderWizard # imp edit + transferName: false # imp edit inventory: None revertOnDeath: true revertOnCrit: true diff --git a/Resources/Prototypes/Store/categories.yml b/Resources/Prototypes/Store/categories.yml index cb11de7848f5f..6a06b29f2f4d2 100644 --- a/Resources/Prototypes/Store/categories.yml +++ b/Resources/Prototypes/Store/categories.yml @@ -23,15 +23,32 @@ name: store-caregory-spellbook-utility priority: 2 +# imp add start +- type: storeCategory + id: SpellbookWand + name: store-caregory-spellbook-wand + priority: 3 + +- type: storeCategory + id: SpellbookBook + name: store-caregory-spellbook-book + priority: 4 + +- type: storeCategory + id: SpellbookMats + name: store-caregory-spellbook-mats + priority: 7 +# imp add end + - type: storeCategory id: SpellbookEquipment name: store-caregory-spellbook-equipment - priority: 3 + priority: 5 # imp edit - type: storeCategory id: SpellbookEvents name: store-caregory-spellbook-events - priority: 4 + priority: 6 # imp edit #uplink categoires - type: storeCategory diff --git a/Resources/Prototypes/Store/presets.yml b/Resources/Prototypes/Store/presets.yml index fb295e6ddab51..f65459872a81d 100644 --- a/Resources/Prototypes/Store/presets.yml +++ b/Resources/Prototypes/Store/presets.yml @@ -41,6 +41,9 @@ - SpellbookUtility #Body Swap, Lich, Teleport, Knock, Polymorph - SpellbookEquipment #Battlemage Robes, Staff of Locker - SpellbookEvents #Summon Weapons, Summon Ghosts + - SpellbookBook #Imp add + - SpellbookWand #Imp add + - SpellbookMats #Imp add currencyWhitelist: - WizCoin diff --git a/Resources/Prototypes/_Impstation/Catalog/spellbook_catalog.yml b/Resources/Prototypes/_Impstation/Catalog/spellbook_catalog.yml index a5dc0b832e40f..9f9ceb259e4fd 100644 --- a/Resources/Prototypes/_Impstation/Catalog/spellbook_catalog.yml +++ b/Resources/Prototypes/_Impstation/Catalog/spellbook_catalog.yml @@ -1,21 +1,233 @@ +#Defensive +- type: listing + id: SpellbookMagicRock + name: spellbook-magic-rock-name + description: spellbook-magic-rock-desc + productAction: ActionPolymorphMagicRock + cost: + WizCoin: 4 + categories: + - SpellbookDefensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookPacify + name: spellbook-pacify-name + description: spellbook-pacify-desc + productAction: ActionPacify + cost: + WizCoin: 3 + categories: + - SpellbookDefensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookWandBubbles + name: spellbook-wand-bub-name + description: spellbook-wand-bub-description + productEntity: WeaponWandWater + cost: + WizCoin: 4 + categories: + - SpellbookDefensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookSpawnRock + name: spellbook-rock-name + description: spellbook-rock-desc + productEntity: MobRockMagic + cost: + WizCoin: 5 + categories: + - SpellbookDefensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +#Offensive +- type: listing + id: SpellbookSpawnMagicMonkey + name: spellbook-magic-monkey-name + description: spellbook-magic-monkey-desc + productEntity: MobMonkeyMagic + cost: + WizCoin: 2 + categories: + - SpellbookOffensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookGun + name: spellbook-gun-name + description: spellbook-gun-description + productAction: ActionGun + cost: + WizCoin: 2 + categories: + - SpellbookOffensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookFrost + name: spellbook-frost-name + description: spellbook-frost-desc + productAction: ActionFrost + cost: + WizCoin: 3 + categories: + - SpellbookOffensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookMM + name: spellbook-mm-name + description: spellbook-mm-desc + productAction: ActionMagicM + categories: + - SpellbookOffensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookFood + name: spellbook-food-name + description: spellbook-food-desc + productAction: ActionFood + icon: + sprite: Objects/Consumable/Food/Baked/cake.rsi + state: berry_delight + cost: + WizCoin: 3 + categories: + - SpellbookOffensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookSpawnSpores + name: spellbook-wizspore-name + description: spellbook-wizspore-desc + productAction: ActionSpawnWizSpore + cost: + WizCoin: 3 + categories: + - SpellbookOffensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookSpawnCarp + name: spellbook-carp-spawn-name + description: spellbook-carp-spawn-desc + productAction: ActionSpawnMagicarpSpell + cost: + WizCoin: 4 + categories: + - SpellbookOffensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +# Utility +- type: listing + id: SpellbookSnow + name: spellbook-snow-name + description: spellbook-snow-desc + productEntity: FoodFrozenSnowconeMagic + icon: + sprite: Structures/Specific/Anomalies/ice_anom.rsi + state: pulse + categories: + - SpellbookUtility + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookWizardOnly + name: spellbook-wizonly-name + description: spellbook-wizonly-desc + productAction: ActionWizardsOnly + cost: + WizCoin: 4 + categories: + - SpellbookUtility + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookLight + name: spellbook-light-name + description: spellbook-light-desc + productAction: ActionSpawnLight + categories: + - SpellbookUtility + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + - type: listing id: SpellbookSpaceGrease name: spellbook-spacegrease-name description: spellbook-spacegrease-desc productAction: ActionSpawnSpaceGreaseSpell cost: - WizCoin: 2 + WizCoin: 4 + categories: + - SpellbookUtility + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookSpawnFinFin + name: spellbook-finfin-name + description: spellbook-finfin-desc + productAction: ActionSpawnFinFinSpell + cost: + WizCoin: 1 categories: - SpellbookUtility conditions: - !type:ListingLimitedStockCondition stock: 1 +# Equipment + wands + books +- type: listing + id: SpellbookSpawnRunes + name: spellbook-runes-name + description: spellbook-runes-desc + productEntity: ScrollRunes + cost: + WizCoin: 4 + categories: + - SpellbookEquipment + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + - type: listing - id: SpellbookWandPolymorphCluwne - name: spellbook-wand-polymorph-cluwne-name - description: spellbook-wand-polymorph-cluwne-description - productEntity: WeaponWandCluwne + id: SpellbookSpawnGloves + name: spellbook-gloves-name + description: spellbook-gloves-desc + productEntity: ClothingHandsWizard cost: WizCoin: 3 categories: @@ -23,3 +235,309 @@ conditions: - !type:ListingLimitedStockCondition stock: 1 + +- type: listing + id: SpellbookSpawnGlasses + name: spellbook-glasses-name + description: spellbook-glasses-desc + productEntity: ClothingEyesGlassesWizard + cost: + WizCoin: 3 + categories: + - SpellbookEquipment + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookSpawnBoots + name: spellbook-boots-name + description: spellbook-boots-desc + productEntity: ClothingBootsWizard + cost: + WizCoin: 3 + categories: + - SpellbookEquipment + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookSpawnStamp + name: spellbook-stamp-name + description: spellbook-stamp-desc + productEntity: RubberStampWizard + categories: + - SpellbookEquipment + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookSpawnBag + name: spellbook-bag-name + description: spellbook-bag-desc + productEntity: ClothingBackpackSatchelWizard + cost: + WizCoin: 4 + categories: + - SpellbookEquipment + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookSpawnPAI + name: spellbook-pai-name + description: spellbook-pai-desc + productEntity: PersonalAIMagic + categories: + - SpellbookEquipment + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookWizSuit + name: spellbook-suit-name + description: spellbook-suit-desc + productEntity: ClothingOuterHardsuitWizard + cost: + WizCoin: 5 + categories: + - SpellbookEquipment + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookPig + name: spellbook-pig-name + description: spellbook-pig-desc + productEntity: WeaponWandPig + cost: + WizCoin: 2 + categories: + - SpellbookWand + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookWandHeal + name: spellbook-wand-heal-name + description: spellbook-wand-heal-description + productEntity: WeaponStaffHealing + cost: + WizCoin: 4 + categories: + - SpellbookWand + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookWandBreak + name: spellbook-wand-break-name + description: spellbook-wand-break-description + productEntity: WeaponWandBreak + cost: + WizCoin: 4 + categories: + - SpellbookWand + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookWizmov + name: spellbook-wizmov-name + description: spellbook-wizmov-description + productEntity: WizmovCircuitBoard + cost: + WizCoin: 5 + categories: + - SpellbookEquipment + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookRing + name: spellbook-ring-name + description: spellbook-ring-desc + productEntity: MagicRing + cost: + WizCoin: 5 + categories: + - SpellbookEquipment + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +# Event +- type: listing + id: SpellbookEventSummonSoap + name: spellbook-event-summon-magic-soap-name + description: spellbook-event-summon-soap-description + productAction: ActionSummonSoap + cost: + WizCoin: 3 + categories: + - SpellbookEvents + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + disableRefund: true + +- type: listing + id: SpellbookEventSummonWhimsy + name: spellbook-event-summon-magic-whimsy-name + description: spellbook-event-summon-whimsy-description + productAction: ActionSummonWhimsy + cost: + WizCoin: 3 + categories: + - SpellbookEvents + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + disableRefund: true + +- type: listing + id: SpellbookEventSummonGifts + name: spellbook-event-summon-magic-gifts-name + description: spellbook-event-summon-gifts-description + productAction: ActionSummonGifts + cost: + WizCoin: 3 + categories: + - SpellbookEvents + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + disableRefund: true + +- type: listing + id: SpellbookItemSummonSteel + name: spellbook-item-summonsteel-name + description: spellbook-item-summonsteel-description + productAction: ActionSpawnSteel + categories: + - SpellbookMats + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookItemSummonWood + name: spellbook-item-summonwood-name + description: spellbook-item-summonwood-description + productAction: ActionSpawnWood + categories: + - SpellbookMats + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookItemSummonPlastic + name: spellbook-item-summonplastic-name + description: spellbook-item-summonplastic-description + productAction: ActionSpawnPlastic + categories: + - SpellbookMats + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookItemSummonPlasma + name: spellbook-item-summonplasma-name + description: spellbook-item-summonplasma-description + productAction: ActionSpawnPlasma + categories: + - SpellbookMats + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookItemSummonGold + name: spellbook-item-summongold-name + description: spellbook-item-summongold-description + productAction: ActionSpawnGold + categories: + - SpellbookMats + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookItemSummonSilver + name: spellbook-item-summonsilver-name + description: spellbook-item-summonsilver-description + productAction: ActionSpawnSilver + categories: + - SpellbookMats + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookItemSummonUranium + name: spellbook-item-summonuranium-name + description: spellbook-item-summonuranium-description + productAction: ActionSpawnUranium + categories: + - SpellbookMats + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookItemSummonBrass + name: spellbook-item-summonbrass-name + description: spellbook-item-summonbrass-description + productAction: ActionSpawnBrass + categories: + - SpellbookMats + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookItemSummonCloth + name: spellbook-item-summoncloth-name + description: spellbook-item-summoncloth-description + productAction: ActionSpawnCloth + categories: + - SpellbookMats + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookItemSummonGlass + name: spellbook-item-summonglass-name + description: spellbook-item-summonglass-description + productAction: ActionSpawnGlass + categories: + - SpellbookMats + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +#Event +- type: listing + id: SpellbookSpawnCurse + name: spellbook-curse-name + description: spellbook-curse-desc + productAction: ActionCurse + cost: + WizCoin: 5 + categories: + - SpellbookEvents + conditions: + - !type:ListingLimitedStockCondition + stock: 1 diff --git a/Resources/Prototypes/_Impstation/Effects/magic_effects.yml b/Resources/Prototypes/_Impstation/Effects/magic_effects.yml index 6ef5a4147a750..ead28edc350ec 100644 --- a/Resources/Prototypes/_Impstation/Effects/magic_effects.yml +++ b/Resources/Prototypes/_Impstation/Effects/magic_effects.yml @@ -9,11 +9,11 @@ - state: space_grease - type: SmokeOnTrigger duration: 3 - spreadAmount: 40 + spreadAmount: 50 smokePrototype: Foam solution: reagents: - ReagentId: SpaceGrease - Quantity: 15 + Quantity: 30 - type: EmitSoundOnTrigger sound: /Audio/Effects/Fluids/splat.ogg diff --git a/Resources/Prototypes/_Impstation/Entities/Effects/puddle.yml b/Resources/Prototypes/_Impstation/Entities/Effects/puddle.yml new file mode 100644 index 0000000000000..ffe4a150eee5c --- /dev/null +++ b/Resources/Prototypes/_Impstation/Entities/Effects/puddle.yml @@ -0,0 +1,12 @@ +- type: entity + id: PuddleWater + parent: PuddleTemporary + suffix: Water + components: + - type: SolutionContainerManager + solutions: + puddle: + maxVol: 100 + reagents: + - ReagentId: Water + Quantity: 40 diff --git a/Resources/Prototypes/_Impstation/Entities/Mobs/Animals/magic.yml b/Resources/Prototypes/_Impstation/Entities/Mobs/Animals/magic.yml new file mode 100644 index 0000000000000..b8bdbfa7ebb29 --- /dev/null +++ b/Resources/Prototypes/_Impstation/Entities/Mobs/Animals/magic.yml @@ -0,0 +1,404 @@ +- type: entity + name: Wizard's apprentice + parent: MobMonkey + id: MobMonkeyMagic + description: Filled with magical potential, probably. + components: + - type: GhostTakeoverAvailable + - type: GhostRole + name: ghost-role-information-magic-monkey-name + description: ghost-role-information-magic-monkey-desc + rules: ghost-role-information-familiar-rules + raffle: + settings: default + - type: NPCImprintingOnSpawnBehaviour + spawnFriendsSearchRadius: 2 + whitelist: + components: + - HumanoidAppearance + - type: NPCRetaliation + attackMemoryLength: 10 + - type: NpcFactionMember + factions: + - Wizard + - type: HTN + rootTask: + task: KisserTomatoCompound + - type: BallisticAmmoProvider + proto: BulletLighterIncendiary + capacity: 1000 + - type: Gun + clumsyProof: true + fireRate: 1 + useKey: false + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: /Audio/Magic/fireball.ogg + - type: Tag + tags: + - CannotSuicide + - DoorBumpOpener + - VimPilot + - type: Loadout + prototypes: [ MobMagicMonkeyGear ] + +- type: entity + name: wizspore + parent: MobSorb + id: MobWizSpore + description: Fungus but a bit more magical. + components: + - type: Sprite + sprite: _Impstation/Mobs/Animals/Magic/miniwiz.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: miniwiz + - type: DamageStateVisuals + states: + Alive: + Base: miniwiz + Dead: + Base: wizded + - type: BallisticAmmoProvider + proto: BulletLighterIncendiary + capacity: 500 + - type: Gun + clumsyProof: true + fireRate: 0.4 + useKey: false + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: /Audio/Magic/fireball.ogg + - type: CombatMode + - type: HTN + rootTask: + task: WizSporeCompound # KILL KILL KILL + - type: Butcherable + spawned: + - id: FoodMeatSlime + - type: NPCRetaliation + attackMemoryLength: 10 + - type: FactionException + - type: NpcFactionMember + factions: + - Wizard + - type: NPCImprintingOnSpawnBehaviour + spawnFriendsSearchRadius: 4 + whitelist: + components: + - HumanoidAppearance + - type: PassiveDamage + allowedStates: + - Alive + - Dead + damageCap: 50 + damage: + types: + Blunt: 0.11 + +- type: entity + name: Grotesque + parent: [MobElementalBase, MobCombat] + id: MobRockMagic + description: Is it... a statue? + components: + - type: GhostTakeoverAvailable + - type: GhostRole + name: ghost-role-information-rock-name + description: ghost-role-information-rock-desc + raffle: + settings: default + - type: RotationVisuals + defaultRotation: 90 + horizontalRotation: 90 + - type: Examiner + - type: MovementSpeedModifier + baseWalkSpeed: 2 + baseSprintSpeed: 3 + - type: Sprite + sprite: _Impstation/Mobs/Animals/Magic/rock.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: rock + - type: Tag + tags: + - CannotSuicide + - DoorBumpOpener + - FootstepSound + - type: MobThresholds + thresholds: + 0: Alive + 400: Dead + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 400 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + path: /Audio/_Impstation/Magic/magicrock.ogg + - !type:SpawnEntitiesBehavior + spawn: + ArtifactFragment: + min: 3 + max: 5 + - type: MeleeWeapon + attackRate: 1 + soundHit: + collection: Punch + damage: + types: + Blunt: 30 + Structural: 60 + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepThud + - type: NpcFactionMember + factions: + - Wizard + - type: Speech + speechVerb: LargeMob + speechSounds: Vulpkanin + - type: ReplacementAccent + accent: crab + - type: Emoting + - type: BodyEmotes + soundsId: GeneralBodyEmotes + - type: MeleeThrowOnHit + speed: 15 + distance: 4 + stunTime: 10 + - type: StatusEffects + allowed: + - SlowedDown + - TemporaryBlindness + - RadiationProtection + - Pacified + - type: EmitSoundOnSpawn + sound: + path: /Audio/Effects/break_stone.ogg + +- type: entity + name: duct spider + parent: MobDuctSpider + id: MobTinySpiderWizard + description: Nanotrasen's imported solution to mice, comes with its own problems. + suffix: Wizard + components: + - type: Accentless + removes: + - type: ReplacementAccent + accent: xeno + - type: MobThresholds + thresholds: + 0: Alive + 100: Critical + 150: Dead + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 100 + mask: + - SmallMobMask + layer: + - SmallMobLayer + - type: NpcFactionMember + factions: + - Wizard + - DuctSpider + +- type: entity + parent: [ SimpleSpaceMobBase, FlyingMobBase ] + id: MobLightSquid + name: glow squid + description: Apparently the paralarval form of an eeeplet. + components: + - type: MovementSpeedModifier + weightlessFriction: 1 + weightlessFrictionNoInput: 1 + weightlessAcceleration: 1.5 + - type: Sprite + sprite: _Impstation/Mobs/Animals/Magic/light.rsi + noRot: true + layers: + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: light + shader: unshaded + - type: Bloodstream + bloodReferenceSolution: + reagents: + - ReagentId: WeldingCoils + Quantity: 10 + - type: Appearance + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.40 + density: 100 + mask: + - FlyingMobMask + layer: + - FlyingMobLayer + - type: InteractionPopup + successChance: 1 + interactSuccessString: petting-success-eeeplet + interactSuccessSound: + path: /Audio/Effects/pop.ogg + interactSuccessSpawn: EffectHearts + - type: PointLight + radius: 5 + energy: 3 + color: "#FFFFFF" + castShadows: true + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + Ash: + min: 1 + max: 1 + - type: MovementAlwaysTouching + - type: MovementIgnoreGravity + weightless: true + - type: Physics + bodyStatus: InAir + - type: CanMoveInAir + - type: NoSlip + - type: HTN + rootTask: + task: KisserTomatoCompound + - type: NPCImprintingOnSpawnBehaviour + whitelist: + components: + - HumanoidAppearance + - type: NpcFactionMember + factions: + - Wizard + +- type: entity + parent: [ SimpleSpaceMobBase, FlyingMobBase, MobCombat ] + id: MobBadOmen + name: bad omen + description: You have a bad feeling about this. + components: + - type: MovementSpeedModifier + weightlessFriction: 1 + weightlessFrictionNoInput: 1 + weightlessAcceleration: 1.5 + - type: Sprite + sprite: _Impstation/Mobs/Animals/Magic/curse.rsi + noRot: true + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: omen + - type: Appearance + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.40 + density: 100 + mask: + - FlyingMobMask + layer: + - FlyingMobLayer + - type: MovementAlwaysTouching + - type: MovementIgnoreGravity + weightless: true + - type: Physics + bodyStatus: InAir + - type: CanMoveInAir + - type: NoSlip + - type: HTN + rootTask: + task: SimpleHostileCompound + - type: NpcFactionMember + factions: + - Wizard + - type: MobThresholds + thresholds: + 0: Alive + 50: Dead + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + path: /Audio/_NF/Voice/Goblin/goblin_deathgasp_1.ogg + - type: EmitSoundOnSpawn + sound: + path: /Audio/_Impstation/Magic/cursespawn.ogg + - type: MeleeWeapon + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 4 + Poison: 4 + - type: Tag + tags: + - DoorBumpOpener + - Goliath + +- type: entity + parent: [ MobBadOmen ] + id: MobAugury + name: augury + description: You've met with a terrible fate. + components: + - type: NPCUseActionOnTarget + actionId: ActionCurseAttack + - type: MobThresholds + thresholds: + 0: Alive + 300: Dead + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 300 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + path: /Audio/_NF/Voice/Goblin/goblin_deathgasp_1.ogg + - type: Sprite + sprite: _Impstation/Mobs/Animals/Magic/curse.rsi + noRot: true + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: augury + - type: MeleeWeapon + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 18 + Poison: 8 diff --git a/Resources/Prototypes/_Impstation/Entities/Objects/Devices/Circuitboards/lawboards.yml b/Resources/Prototypes/_Impstation/Entities/Objects/Devices/Circuitboards/lawboards.yml index f634532e1e912..e0f2b67ca361f 100644 --- a/Resources/Prototypes/_Impstation/Entities/Objects/Devices/Circuitboards/lawboards.yml +++ b/Resources/Prototypes/_Impstation/Entities/Objects/Devices/Circuitboards/lawboards.yml @@ -35,3 +35,24 @@ verbIcon: sprite: /Textures/Interface/Actions/actions_borg.rsi state: state-laws + +# Wizmov +- type: entity + id: WizmovCircuitBoard + parent: BaseSiliconLawboard + name: law board (Wizmov) + description: An electronics board containing the Wizmov lawset. The Station is now the domain of The Wizard. + components: + - type: Sprite + sprite: Objects/Misc/module.rsi + state: std_mod + - type: SiliconLawProvider + laws: WizmovLawset + - type: DetailedInspect + verbMessage: verbs-detailed-inspect-lawset + tickEntries: false + numberedEntries: true + examineText: + - law-wizmov-1 + - law-wizmov-2 + - law-wizmov-3 diff --git a/Resources/Prototypes/_Impstation/Entities/Objects/Weapons/Guns/Launchers/wands.yml b/Resources/Prototypes/_Impstation/Entities/Objects/Weapons/Guns/Launchers/wands.yml new file mode 100644 index 0000000000000..33b9aadc16871 --- /dev/null +++ b/Resources/Prototypes/_Impstation/Entities/Objects/Weapons/Guns/Launchers/wands.yml @@ -0,0 +1,66 @@ +- type: entity + name: bubble wand + parent: WeaponWandBase + id: WeaponWandWater + description: This wand emits an aura of evil, dark magic is at work here... + components: + - type: Sprite + sprite: _Impstation/Objects/Weapons/Guns/Basic/wands.rsi + state: water + - type: Gun + fireRate: 4 + projectileSpeed: 2 + clumsyProof: true + cameraRecoilScalar: 0 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Effects/pop.ogg + - type: BasicEntityAmmoProvider + proto: MagicBubble + - type: Item + inhandVisuals: + left: + - state: water-inhand-left + right: + - state: water-inhand-right + +- type: entity + name: wand of pig polymorph + parent: WeaponWandBase + id: WeaponWandPig + description: Sometimes you just need to ruin someone's day. + components: + - type: Sprite + sprite: Objects/Consumable/Food/salami.rsi + state: salami + - type: Item + inhandVisuals: + left: + - state: inhand-left + right: + - state: inhand-right + - type: BasicEntityAmmoProvider + proto: ProjectilePolyboltPig + capacity: 5 + count: 5 + +- type: entity + name: magical wand of destruction + parent: WeaponWandBase + id: WeaponWandBreak + description: "I dont care if we're in space the feng shui is off!" + components: + - type: Sprite + layers: + - state: death + - state: death-effect + map: ["effect"] + - type: Gun + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/mateba.ogg + - type: BasicEntityAmmoProvider + proto: BulletInstaBreakMagic + capacity: 12 + count: 12 diff --git a/Resources/Prototypes/_Impstation/Entities/Structures/Specific/Anomaly/anomalies.yml b/Resources/Prototypes/_Impstation/Entities/Structures/Specific/Anomaly/anomalies.yml new file mode 100644 index 0000000000000..9e6f41f271117 --- /dev/null +++ b/Resources/Prototypes/_Impstation/Entities/Structures/Specific/Anomaly/anomalies.yml @@ -0,0 +1,34 @@ +- type: entity + id: AnomalyCurseBase + parent: BaseAnomaly + abstract: true + categories: [ HideSpawnMenu ] + components: + - type: Anomaly + minPulseLength: 50 + maxPulseLength: 100 + supercriticalSoundAtAnimationStart: + collection: AnomalyCurseSupercritical + - type: PointLight + color: "#9E00FF" + lightEnergy: 4 + lightRadius: 15 + - type: EntitySpawnAnomaly + entries: + - settings: + spawnOnPulse: true + spawnOnSuperCritical: true + minAmount: 2 + maxAmount: 6 + minRange: 1.5 + maxRange: 2.5 + spawns: + - MobBadOmen + - settings: + spawnOnSuperCritical: true + minAmount: 1 + maxAmount: 1 + minRange: 3 + maxRange: 4.5 + spawns: + - MobAugury diff --git a/Resources/Prototypes/_Impstation/Entities/Structures/Specific/Anomaly/anomaly_injections.yml b/Resources/Prototypes/_Impstation/Entities/Structures/Specific/Anomaly/anomaly_injections.yml index 3f04e68c2874d..4af5da13b0918 100644 --- a/Resources/Prototypes/_Impstation/Entities/Structures/Specific/Anomaly/anomaly_injections.yml +++ b/Resources/Prototypes/_Impstation/Entities/Structures/Specific/Anomaly/anomaly_injections.yml @@ -85,3 +85,34 @@ - type: InjectableSolution solution: beaker +# curse anom + +- type: entity + id: AnomalyInjectionCurse + parent: AnomalyInjectionBase + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#9E00FF" + lightEnergy: 8 + lightRadius: 15 + - type: EntitySpawnAnomaly + entries: + - settings: + spawnOnPulse: true + spawnOnSuperCritical: true + minAmount: 2 + maxAmount: 6 + minRange: 1.5 + maxRange: 2.5 + spawns: + - MobBadOmen + - settings: + spawnOnSuperCritical: true + minAmount: 1 + maxAmount: 1 + minRange: 3 + maxRange: 4.5 + spawns: + - MobAugury + diff --git a/Resources/Prototypes/_Impstation/Entities/Structures/Specific/Anomaly/anomaly_injectors.yml b/Resources/Prototypes/_Impstation/Entities/Structures/Specific/Anomaly/anomaly_injectors.yml new file mode 100644 index 0000000000000..cb135979da32e --- /dev/null +++ b/Resources/Prototypes/_Impstation/Entities/Structures/Specific/Anomaly/anomaly_injectors.yml @@ -0,0 +1,25 @@ +- type: entity + parent: BaseAnomalyInjector + id: AnomalyTrapCurse + suffix: Curse + components: + - type: Sprite + layers: + - state: pink + - sprite: _Impstation/Structures/Specific/Anomalies/inner_anom_layer.rsi + state: curse + - sprite: Mobs/Species/Human/parts.rsi + state: full + - type: InnerBodyAnomalyInjector + injectionComponents: + - type: Anomaly + deleteEntity: false + maxPointsPerSecond: 200 + supercriticalSoundAtAnimationStart: + collection: AnomalyCurseSupercritical + - type: InnerBodyAnomaly + injectionProto: AnomalyInjectionCurse + startMessage: inner-anomaly-start-message-curse + fallbackSprite: + sprite: _Impstation/Structures/Specific/Anomalies/inner_anom_layer.rsi + state: curse diff --git a/Resources/Prototypes/_Impstation/Flavors/flavors.yml b/Resources/Prototypes/_Impstation/Flavors/flavors.yml index 68f6419ed43c2..0ed2cf1a20896 100644 --- a/Resources/Prototypes/_Impstation/Flavors/flavors.yml +++ b/Resources/Prototypes/_Impstation/Flavors/flavors.yml @@ -514,6 +514,16 @@ flavorType: Base description: flavor-base-gooey +- type: flavor + id: concerning + flavorType: Complex + description: flavor-complex-concerning + +- type: flavor + id: magic + flavorType: Complex + description: flavor-complex-magic + - type: flavor id: treatchunk flavorType: Complex diff --git a/Resources/Prototypes/_Impstation/Magic/curse.yml b/Resources/Prototypes/_Impstation/Magic/curse.yml new file mode 100644 index 0000000000000..629c02f101c56 --- /dev/null +++ b/Resources/Prototypes/_Impstation/Magic/curse.yml @@ -0,0 +1,92 @@ +- type: entity + parent: BaseAction + id: ActionCurseAttack + name: "[color=red]Manifest Darkness[/color]" + components: + - type: Action + raiseOnUser: true + icon: + sprite: _Impstation/Magic/curse.rsi + state: curse_tentacle_spawn + iconOn: + sprite: _Impstation/Magic/curse.rsi + state: curse_tentacle_wiggle + sound: + path: "/Audio/_Impstation/Magic/cursespawn.ogg" + useDelay: 8 + - type: TargetAction + range: 10 + - type: WorldTargetAction + event: !type:CurseSummonTentacleAction + +- type: entity + id: CurseTentacle + name: creeping darkness + components: + - type: Transform + anchored: True + - type: Physics + bodyType: Static + canCollide: true + - type: InteractionOutline + - type: Sprite + sprite: _Impstation/Magic/curse.rsi + layers: + - state: curse_tentacle_wiggle + - type: StunOnContact + blacklist: + tags: + - Goliath + - type: Fixtures + fixtures: + fix: + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + mask: + - Impassable + layer: + - Impassable + hard: false + - type: TimedDespawn + lifetime: 0.4 + - type: SpawnOnDespawn + prototype: EffectCurseTentacleRetract + +- type: entity + id: BaseEffectCurseTentacleSpawn + categories: [ HideSpawnMenu ] + name: creeping darkness + abstract: true + components: + - type: Transform + anchored: True + - type: Physics + bodyType: Static + canCollide: false + - type: Sprite + sprite: _Impstation/Magic/curse.rsi + - type: InteractionOutline + - type: TimedDespawn + lifetime: 0.7 + +- type: entity + id: EffectCurseTentacleSpawn + parent: BaseEffectCurseTentacleSpawn + categories: [ HideSpawnMenu ] + name: creeping darkness + components: + - type: Sprite + state: curse_tentacle_spawn + - type: SpawnOnDespawn + prototype: CurseTentacle + +- type: entity + id: EffectCurseTentacleRetract + parent: BaseEffectCurseTentacleSpawn + categories: [ HideSpawnMenu ] + components: + - type: Sprite + state: curse_tentacle_retract + - type: EffectVisuals + - type: AnimationPlayer diff --git a/Resources/Prototypes/_Impstation/Magic/event_spells.yml b/Resources/Prototypes/_Impstation/Magic/event_spells.yml new file mode 100644 index 0000000000000..8cd556905d902 --- /dev/null +++ b/Resources/Prototypes/_Impstation/Magic/event_spells.yml @@ -0,0 +1,136 @@ +- type: entity + parent: BaseAction + id: ActionSummonSoap + name: Summon Soap + description: Gives everyone a random bar of soap! + components: + - type: Magic + - type: Action + useDelay: 300 + itemIconStyle: BigAction + icon: + sprite: Objects/Specific/Janitorial/soap.rsi + state: soap-4 + - type: InstantAction + event: !type:RandomGlobalSpawnSpellEvent + makeSurvivorAntagonist: false + spawns: + - id: SoapDeluxe + orGroup: Soap + - id: SoapNT + orGroup: Soap + - id: SoapHomemade + orGroup: Soap + - id: SoapOmega + orGroup: Soap + - id: SoapSyndie + orGroup: Soap + - type: SpeakOnAction + sentence: action-speech-spell-summon-soap + +- type: entity + parent: BaseAction + id: ActionSummonWhimsy + name: Summon Whimsy + description: Gives everyone items of a whimsical nature. + components: + - type: Magic + - type: Action + useDelay: 300 + itemIconStyle: BigAction + icon: + sprite: _Impstation/Objects/Consumable/Food/Candy/lolipops.rsi + state: big-lollipop + - type: InstantAction + event: !type:RandomGlobalSpawnSpellEvent + makeSurvivorAntagonist: false + spawns: # to do: add more + - id: PetRockCarrier + orGroup: Prize + - id: PrizeTicket100 + orGroup: Prize + - id: PlushieThrongler + orGroup: Prize + - id: ClothingShoeSlippersLizard + orGroup: Prize + - id: ClothingShoeSlippersDuck + orGroup: Prize + - id: PrizeBall + orGroup: Prize + - id: Chainsaw # its whimsical to me + prob: 0.001 + orGroup: Prize + - id: WhoopieCushion + orGroup: Prize + - id: GlowstickBlue + orGroup: Prize + - id: GlowstickPurple + orGroup: Prize + - id: GlowstickYellow + orGroup: Prize + - id: GlowstickRed + orGroup: Prize + - id: PlushieOdds + prob: 0.1 + orGroup: Prize + - id: PlushieGnomeChild + orGroup: Prize + - id: ClothingBackpackDuffelSyndicatePyjamaBundle + orGroup: Prize + - id: ToySword + orGroup: Prize + - id: WeaponWaterPistol + orGroup: Prize + - id: WeaponWaterBlaster + orGroup: Prize + - id: ClothingHeadHatCatEars + orGroup: Prize + - id: ClothingHeadHatDogEars + orGroup: Prize + - id: WeaponGoldZipperFake + orGroup: Prize + - id: ToyAmongPequeno + orGroup: Prize + - id: ClothingHeadPropellerHat + orGroup: Prize + - id: FoodMealBigLollipop + orGroup: Prize + - id: BalloonCorgi + orGroup: Prize + - type: SpeakOnAction + sentence: action-speech-spell-summon-whimsy + +- type: entity + parent: BaseAction + id: ActionSummonGifts + name: Summon Gifts + description: Gives everyone a present! + components: + - type: Magic + - type: Action + useDelay: 1000 + itemIconStyle: BigAction + icon: + sprite: Objects/Decoration/present.rsi + state: present + - type: InstantAction + event: !type:RandomGlobalSpawnSpellEvent + makeSurvivorAntagonist: false + spawns: + - id: PresentRandomUnsafe + prob: 0.05 + orGroup: Prize + - id: PresentRandom + orGroup: Prize + - id: PresentRandomCoal + orGroup: Prize + - id: PresentRandomCash + orGroup: Prize + - id: PresentRandomInsane + prob: 0.001 + orGroup: Prize + - id: AnomalyTrapSanta + prob: 0.01 + orGroup: Prize + - type: SpeakOnAction + sentence: action-speech-spell-summon-gifts diff --git a/Resources/Prototypes/_Impstation/Magic/magic_items.yml b/Resources/Prototypes/_Impstation/Magic/magic_items.yml new file mode 100644 index 0000000000000..17edb9cc9ce7f --- /dev/null +++ b/Resources/Prototypes/_Impstation/Magic/magic_items.yml @@ -0,0 +1,444 @@ +- type: entity + id: ApprenticeHat + parent: [ BaseItem, BaseMagicalContraband, ClothingHeadHatWizardBase] + name: apprentice hat + description: For an aspiring wizard! + components: + - type: Sprite + sprite: _Impstation/Clothing/Head/Hats/apprentice_hat.rsi + - type: Clothing + sprite: _Impstation/Clothing/Head/Hats/apprentice_hat.rsi + +- type: entity + id: ApprenticeRobes + parent: [ BaseItem, BaseMagicalContraband, ClothingOuterWizardBase] + name: apprentice robes + description: For an aspiring wizard, matches the hat! + components: + - type: Sprite + sprite: _Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi + - type: Clothing + sprite: _Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi + +- type: entity + id: MagicBubble + name: bubble + components: + - type: Sprite + sprite: _Impstation/Magic/bubble.rsi + state: bullet + - type: Physics + angularDamping: 0.02 + linearDamping: 0.02 + bodyType: Dynamic + - type: Ammo + muzzleFlash: null + - type: Projectile + deleteOnCollide: true + soundHit: + path: /Audio/Effects/pop.ogg + damage: + types: + Blunt: 0 + - type: StaminaDamageOnCollide + damage: 10 + - type: Fixtures + fixtures: + fix1: + shape: !type:PhysShapeCircle + radius: 0.2 + density: 5 + mask: + - ItemMask + restitution: 0.3 + friction: 0.2 + projectile: + shape: + !type:PhysShapeAabb + bounds: "-0.10,-0.30,0.10,0.15" + hard: false + mask: + - Impassable + - BulletImpassable + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: Water + Quantity: 50 + - type: Vapor + active: false + transferAmountPercentage: 20 + - type: SpawnOnTrigger + proto: PuddleWater + - type: TriggerOnCollide + fixtureID: projectile + +- type: entity + name: cone of cold + parent: FoodFrozenSnowcone + id: FoodFrozenSnowconeMagic + description: It dosen't even have syrup... + components: + - type: SolutionContainerManager + solutions: + food: + maxVol: 45 + reagents: + - ReagentId: Ice + Quantity: 10 + - ReagentId: DoctorsDelight + Quantity: 30 + - type: FlavorProfile + flavors: + - ice + - magic + +- type: entity + id: ProjectileIceMagic + parent: BaseBullet + name: magic icicle + description: Brrrrr! + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: Structures/Specific/Anomalies/ice_anom.rsi + - type: Projectile + deleteOnCollide: true + soundHit: + path: /Audio/_Impstation/Magic/icemagic.ogg + damage: + types: + Piercing: 80 + Cold: 80 + - type: TriggerOnCollide + fixtureID: projectile + - type: SpawnOnTrigger + proto: IceCrust + +- type: entity + parent: BaseMaterialDoorNavMap + id: WizardDoor + name: wizard door + description: W1Z4rD5 0N1Y!!!!! + suffix: Wizard, Locked + components: + - type: Sprite + sprite: _Impstation/Magic/door.rsi + - type: MeleeSound + soundGroups: + Brute: + path: + "/Audio/Weapons/smash.ogg" + - type: AccessReader + access: [["Wizard"]] + - type: Door + openSound: + path: /Audio/_Impstation/Magic/magicdooropen.ogg + closeSound: + path: /Audio/_Impstation/Magic/magicdoorclose.ogg + denySound: + path: /Audio/_Impstation/Magic/magicdoorno.ogg + - type: Airtight + noAirWhenFullyAirBlocked: false + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: StrongMetallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 500 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:DoActsBehavior + acts: ["Destruction"] + - type: PlacementReplacement + key: walls + - type: BlockWeather + +- type: entity + parent: [ PersonalAI, BaseMagicalContraband ] + id: PersonalAIMagic + name: magic mirror + suffix: Wizard + description: Your magical guide. + components: + - type: Sprite + sprite: _Impstation/Magic/PAI.rsi + layers: + - state: pai-base + - state: pai-off + shader: unshaded + map: ["screen"] + - type: ToggleableGhostRole + roleName: pai-system-role-name-wizard + roleDescription: pai-system-role-description-wizard + roleRules: ghost-role-information-familiar-rules + mindRoles: + - MindRoleGhostRoleFamiliar + - type: IntrinsicRadioTransmitter + channels: + - Binary + - Common + - type: ActiveRadio + channels: + - Binary + - Common + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ToggleableGhostRoleVisuals.Status: + screen: + Off: { state: pai-off } + Searching: { state: pai-loading} + On: { state: pai-on } + - type: Vocal + sounds: + Unsexed: UnisexSiliconXenoborg + +- type: entity + id: BulletInstaBreakMagic + name: magic bullet + parent: BaseBullet + categories: [ HideSpawnMenu ] + components: + - type: Projectile + damage: + types: + Structural: 1000 + ignoreResistances: true + +- type: entity + parent: [ ClothingBackpackSatchelHolding, BaseMagicalContraband, BaseBagOpenClose ] + id: ClothingBackpackSatchelWizard + name: bag of holding + description: For wizardly things... or anything else really, you have the room. + components: + - type: Sprite + sprite: _Impstation/Clothing/Back/Satchels/magicbag.rsi + state: close + layers: + - state: close + - state: open + map: [ "openLayer" ] + visible: false + - type: EmitSoundOnLand + sound: + path: /Audio/Effects/soft_thump.ogg + - type: Storage + storageOpenSound: /Audio/_NF/Voice/Goblin/goblin_hiss_1.ogg + storageCloseSound: /Audio/Voice/Vulpkanin/dog_snarl3.ogg + - type: Appearance + +- type: entity + parent: [ ClothingHandsBase, BaseMagicalContraband ] + id: ClothingHandsWizard + name: magic gloves + description: Magical insuls with a killer punch! + components: + - type: Sprite + sprite: _Impstation/Clothing/Hands/Gloves/magicgloves.rsi + - type: Clothing + sprite: _Impstation/Clothing/Hands/Gloves/magicgloves.rsi + - type: Insulated + - type: DeflectThrownObjects + - type: MeleeThrowOnHit + speed: 20 + distance: 50 + - type: MeleeWeapon + damage: + types: + Blunt: 20 + Structural: 20 + soundHit: + collection: MetalThud + mustBeEquippedToUse: true + - type: Fiber + fiberMaterial: fibers-magic + - type: FingerprintMask + +- type: entity + parent: [ ClothingShoesBase, BaseMagicalContraband ] + id: ClothingBootsWizard + name: magic shoes + description: Heel clicking teleport not included. + components: + - type: Sprite + sprite: _Impstation/Clothing/Shoes/Boots/magicboots.rsi + - type: Clothing + sprite: _Impstation/Clothing/Shoes/Boots/magicboots.rsi + - type: NoSlip + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepBoots + - type: JumpAbility + jumpDistance: 8 + jumpSound: /Audio/Effects/stealthoff.ogg + - type: ActionGrant + actions: + - ActionGravityJump + - type: ItemActionGrant + actions: + - ActionGravityJump + activeIfWorn: true + - type: ClothingSpeedModifier + walkModifier: 1.8 + sprintModifier: 1.8 + standing: true + +- type: entity + parent: [ RingBase, BaseMagicalContraband ] + id: MagicRing + name: ring of theft + description: Yeah, im dual classing mage rogue. + components: + - type: Clothing + slots: [ gloves ] + sprite: _Impstation/Clothing/Hands/Rings/magicring.rsi + - type: Sprite + sprite: _Impstation/Clothing/Hands/Rings/magicring.rsi + state: icon + - type: Appearance + - type: Item + size: Tiny + - type: Fiber + fiberMaterial: fibers-magic + - type: FingerprintMask + - type: Thieving + stripTimeReduction: 1 + stealthy: true + +- type: entity + id: ProjectileMM + parent: [ FlyingMobBase, BaseBulletTrigger ] # dont worry about it + name: magic missile + categories: [ HideSpawnMenu ] + components: + - type: CartridgeAmmo + proto: PelletShotgunSpread + - type: CombatMode + - type: Fixtures + fixtures: + fix1: + shape: !type:PhysShapeCircle + radius: 0.2 + density: 5 + mask: + - ItemMask + restitution: 0.3 + friction: 0.2 + projectile: + shape: + !type:PhysShapeAabb + bounds: "-0.10,-0.30,0.10,0.15" + hard: false + mask: + - Impassable + - BulletImpassable + - type: MobCollision + - type: Physics + bodyType: KinematicController + - type: InputMover + - type: MobMover + - type: Clickable + - type: NpcFactionMember + factions: + - Wizard + - type: HTN + rootTask: + task: GrenadePenguinCompound + - type: TimedDespawn + lifetime: 8 + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/magic.rsi + layers: + - state: magicm + map: [ "enum.DamageStateVisualLayers.Base" ] + - type: RandomSprite + available: + - enum.DamageStateVisualLayers.Base: + magicm: "" + magicm_cyan: "" + magicm_green: "" + magicm_red: "" + magicm_yellow: "" + - type: TriggerOnCollide + - type: MeleeWeapon + soundHit: + path: "/Audio/_Impstation/Magic/woosh.ogg" + hidden: true + damage: + groups: + Brute: 0 + - type: Projectile + deleteOnCollide: true + damage: + types: + Cellular: 10 + +- type: entity + name: Rock + id: MagicRock + suffix: Wizard + description: Sure is a rock. + components: + - type: Clickable + - type: InteractionOutline + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 50 + mask: + - MobMask + layer: + - MobLayer + - type: Examiner + - type: Physics + bodyType: KinematicController + - type: Pullable + - type: Input + context: "human" + - type: ZombieImmune + - type: ProtectedFromStepTriggers + - type: Sprite + sprite: Objects/Decoration/Flora/flora_rockssolid.rsi + noRot: true + drawdepth: Mobs + layers: + - state: rocksolid01 + map: [ "enum.DamageStateVisualLayers.Base" ] + - type: RandomSprite + available: + - enum.DamageStateVisualLayers.Base: + rocksolid01: "" + rocksolid02: "" + rocksolid03: "" + - type: NpcFactionMember + factions: + - Wizard + - type: EmitSoundOnSpawn + sound: + path: /Audio/Effects/break_stone.ogg + - type: MovementSpeedModifier + baseWalkSpeed : 0.5 + baseSprintSpeed : 1 + +- type: entity + parent: [ClothingEyesBase, BaseMagicalContraband] + id: ClothingEyesGlassesWizard + name: magical glasses + description: + components: + - type: Sprite + sprite: _Impstation/Clothing/Eyes/Glasses/magicglasses.rsi + - type: Clothing + sprite: _Impstation/Clothing/Eyes/Glasses/magicglasses.rsi + - type: FlashImmunity + - type: IdentityBlocker + coverage: EYES diff --git a/Resources/Prototypes/_Impstation/Magic/polymorph.yml b/Resources/Prototypes/_Impstation/Magic/polymorph.yml new file mode 100644 index 0000000000000..fd6e3afbff96d --- /dev/null +++ b/Resources/Prototypes/_Impstation/Magic/polymorph.yml @@ -0,0 +1,48 @@ +- type: polymorph + id: WizardForcedPig + configuration: + entity: MobPig + forced: true + inventory: None + transferName: true + transferDamage: true + revertOnCrit: true + revertOnDeath: true + duration: 60 + polymorphSound: !type:SoundPathSpecifier + path: /Audio/Magic/forcewall.ogg + exitPolymorphSound: !type:SoundPathSpecifier + path: /Audio/Magic/forcewall.ogg + +- type: polymorph + id: WizardMagicDoor + configuration: + entity: WizardDoor + forced: true + inventory: None + transferName: false + transferDamage: false + revertOnCrit: false + revertOnDeath: false + polymorphSound: !type:SoundPathSpecifier + path: /Audio/Magic/forcewall.ogg + exitPolymorphSound: !type:SoundPathSpecifier + path: /Audio/Magic/forcewall.ogg + +- type: polymorph + id: WizardTinySpider + configuration: + entity: MobTinySpiderWizard + transferName: false + inventory: None + revertOnDeath: true + revertOnCrit: true + +- type: polymorph + id: MagicRockPolymorph + configuration: + entity: MagicRock + transferName: false + inventory: None + revertOnDeath: true + revertOnCrit: true diff --git a/Resources/Prototypes/_Impstation/Magic/projectile_spells.yml b/Resources/Prototypes/_Impstation/Magic/projectile_spells.yml index e4bb734b6036b..28cf0723822ae 100644 --- a/Resources/Prototypes/_Impstation/Magic/projectile_spells.yml +++ b/Resources/Prototypes/_Impstation/Magic/projectile_spells.yml @@ -20,3 +20,134 @@ - type: WorldTargetAction event: !type:ProjectileSpellEvent prototype: BulletLighterIncendiary #blood red lighter fire projectile + +- type: entity + parent: BaseAction + id: ActionGun + name: Gun + description: Shoots a single bullet. + components: + - type: Magic + - type: Action + useDelay: 1 + itemIconStyle: BigAction + raiseOnUser: true + sound: !type:SoundPathSpecifier + path: /Audio/Magic/fireball.ogg + icon: + sprite: Objects/Weapons/Guns/Ammunition/Casings/ammo_casing.rsi + state: base + - type: TargetAction + range: 60 + checkCanAccess: false + - type: WorldTargetAction + event: !type:ProjectileSpellEvent + prototype: BulletLPistol + - type: SpeakOnAction + sentence: action-speech-spell-gun + +- type: entity + parent: BaseAction + id: ActionFrost + name: Frost Bolt + description: + components: + - type: Magic + requiresClothes: true + - type: Action + useDelay: 15 + itemIconStyle: BigAction + raiseOnUser: true + icon: + sprite: Structures/Specific/Anomalies/ice_anom.rsi + state: pulse + sound: !type:SoundPathSpecifier + path: /Audio/_Impstation/Magic/icemagicbolt.ogg + - type: TargetAction + range: 60 + checkCanAccess: false + - type: WorldTargetAction + event: !type:ProjectileSpellEvent + prototype: ProjectileIceMagic + - type: SpeakOnAction + sentence: action-speech-spell-frost + +- type: entity + parent: BaseAction + id: ActionWizardsOnly + name: Wizard door + description: Transform a door to keep others out. + components: + - type: Magic + requiresClothes: true + - type: Action + useDelay: 30 + itemIconStyle: BigAction + raiseOnUser: true + icon: + sprite: _Impstation/Magic/door.rsi + state: closed + - type: TargetAction + range: 60 + checkCanAccess: false + - type: WorldTargetAction + event: !type:ProjectileSpellEvent + prototype: ProjectilePolyboltWizardDoor + - type: SpeakOnAction + sentence: action-speech-wizdoor + +- type: entity + id: ProjectilePolyboltWizardDoor + parent: ProjectilePolyboltBase + name: wizard door polybolt + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/magic.rsi + layers: + - state: arcane_barrage + - type: PolymorphOnTrigger + polymorph: WizardMagicDoor + - type: WhitelistTriggerCondition + userWhitelist: + components: + - Airlock + +- type: entity + id: ProjectilePolyboltPig + parent: ProjectilePolyboltBase + name: pig polybolt + description: Nooo, I don't wanna be a pig! + categories: [ HideSpawnMenu ] + components: + - type: PolymorphOnTrigger + polymorph: WizardForcedPig + - type: WhitelistTriggerCondition + userWhitelist: + components: + - MobState + +- type: entity + parent: BaseAction + id: ActionMagicM + name: Magic Missile + description: The classic. + components: + - type: Action + useDelay: 10 + itemIconStyle: BigAction + icon: + sprite: Objects/Magic/magicactions.rsi + state: magicmissile + raiseOnUser: true + sound: !type:SoundPathSpecifier + path: /Audio/_Impstation/Magic/woosh.ogg + - type: TargetAction + range: 5 + checkCanAccess: false + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: ProjectileMM + amount: 4 + offset: 1, 0 diff --git a/Resources/Prototypes/_Impstation/Magic/spawn_spells.yml b/Resources/Prototypes/_Impstation/Magic/spawn_spells.yml index c58e9f4a1ce01..528745472d6da 100644 --- a/Resources/Prototypes/_Impstation/Magic/spawn_spells.yml +++ b/Resources/Prototypes/_Impstation/Magic/spawn_spells.yml @@ -21,3 +21,357 @@ - id: MagicInstantEffectSpaceGrease - type: SpeakOnAction sentence: action-speech-spell-spacegrease + +- type: entity + parent: BaseAction + id: ActionSpawnFinFinSpell + name: Your Best Friend + description: This spell summons FinFin! + components: + - type: Action + useDelay: 10 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/_Impstation/Magic/finfinspawn.ogg + icon: + sprite: _Impstation/Objects/Fun/toys.rsi + state: plushie_finfin + - type: TargetAction + range: 4 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: MobFinfin + amount: 1 + offset: 0, 1 + - type: SpeakOnAction + sentence: action-speech-spell-summon-bff + +- type: entity + parent: BaseAction + id: ActionSpawnWizSpore + name: Summon Spores + description: Go my spores! + components: + - type: Action + useDelay: 180 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/_Impstation/Animals/bros_hit.ogg + icon: + sprite: _Impstation/Mobs/Animals/Magic/miniwiz.rsi + state: miniwiz + - type: TargetAction + range: 5 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: MobWizSpore + amount: 12 + offset: 0, 1 + - type: SpeakOnAction + sentence: action-speech-spell-summon-wiz + - type: Magic + requiresClothes: true + +- type: entity + parent: BaseAction + id: ActionCurse + name: Curse + description: Summons a powerful curse that latches on to someone, maybe don't stand to close... + components: + - type: Action + useDelay: 800 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Ambience/ambiruin2.ogg + icon: + sprite: _Impstation/Mobs/Animals/Magic/curse.rsi + state: omen + - type: TargetAction + range: 10 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: AnomalyTrapCurse + amount: 1 + offset: 0, 1 + - type: SpeakOnAction + sentence: action-speech-spell-curse + - type: Magic + requiresClothes: true + +- type: entity + parent: BaseAction + id: ActionSpawnLight + name: Summon lights + description: Happy litte guys who light up the room. + components: + - type: Action + useDelay: 30 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/_Impstation/Animals/bros_hit.ogg + icon: + sprite: _Impstation/Mobs/Animals/Magic/light.rsi + state: light + - type: TargetAction + range: 10 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: MobLightSquid + amount: 1 + offset: 0, 1 + - type: SpeakOnAction + sentence: action-speech-spell-summon-light + +- type: entity + parent: BaseAction + id: ActionSpawnSteel + name: Conjure Steel + description: This spell summons a stack of steel on the clicked location. + components: + - type: Magic + - type: Action + useDelay: 60 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/blink.ogg + icon: + sprite: Objects/Materials/Sheets/metal.rsi + state: steel_3 + - type: TargetAction + range: 4 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SheetSteel + amount: 1 + - type: SpeakOnAction + sentence: action-speech-spell-steel + +- type: entity + parent: BaseAction + id: ActionSpawnWood + name: Conjure Wood + description: This spell summons a stack of wood on the clicked location. + components: + - type: Magic + - type: Action + useDelay: 60 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/blink.ogg + icon: + sprite: Objects/Materials/materials.rsi + state: wood_3 + - type: TargetAction + range: 4 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: MaterialWoodPlank + amount: 1 + - type: SpeakOnAction + sentence: action-speech-spell-wood + +- type: entity + parent: BaseAction + id: ActionSpawnPlastic + name: Conjure Plastic + description: This spell summons a stack of plastic on the clicked location. + components: + - type: Magic + - type: Action + useDelay: 60 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/blink.ogg + icon: + sprite: Objects/Materials/Sheets/other.rsi + state: plastic_3 + - type: TargetAction + range: 4 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SheetPlastic + amount: 1 + - type: SpeakOnAction + sentence: action-speech-spell-plastic + +- type: entity + parent: BaseAction + id: ActionSpawnPlasma + name: Conjure Plasma + description: This spell summons a stack of plasma on the clicked location. + components: + - type: Magic + - type: Action + useDelay: 60 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/blink.ogg + icon: + sprite: Objects/Materials/Sheets/other.rsi + state: plasma_3 + - type: TargetAction + range: 4 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SheetPlasma + amount: 1 + - type: SpeakOnAction + sentence: action-speech-spell-plasma + +- type: entity + parent: BaseAction + id: ActionSpawnGold + name: Conjure Gold + description: This spell summons a stack of gold on the clicked location. + components: + - type: Magic + - type: Action + useDelay: 60 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/blink.ogg + icon: + sprite: Objects/Materials/ingots.rsi + state: gold_3 + - type: TargetAction + range: 4 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: IngotGold + amount: 1 + - type: SpeakOnAction + sentence: action-speech-spell-gold + +- type: entity + parent: BaseAction + id: ActionSpawnSilver + name: Conjure Silver + description: This spell summons a stack of silver on the clicked location. + components: + - type: Magic + - type: Action + useDelay: 60 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/blink.ogg + icon: + sprite: Objects/Materials/ingots.rsi + state: silver_3 + - type: TargetAction + range: 4 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: IngotSilver + amount: 1 + - type: SpeakOnAction + sentence: action-speech-spell-silver + +- type: entity + parent: BaseAction + id: ActionSpawnUranium + name: Conjure Uranium + description: This spell summons a stack of uranium on the clicked location. + components: + - type: Magic + - type: Action + useDelay: 60 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/blink.ogg + icon: + sprite: Objects/Materials/Sheets/other.rsi + state: uranium_3 + - type: TargetAction + range: 4 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SheetUranium + amount: 1 + - type: SpeakOnAction + sentence: action-speech-spell-uranium + +- type: entity + parent: BaseAction + id: ActionSpawnBrass + name: Conjure Brass + description: This spell summons a stack of brass on the clicked location. + components: + - type: Magic + - type: Action + useDelay: 60 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/blink.ogg + icon: + sprite: Objects/Materials/Sheets/metal.rsi + state: brass_3 + - type: TargetAction + range: 4 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SheetBrass + amount: 1 + - type: SpeakOnAction + sentence: action-speech-spell-brass + +- type: entity + parent: BaseAction + id: ActionSpawnCloth + name: Conjure Cloth + description: This spell summons a stack of cloth on the clicked location. + components: + - type: Magic + - type: Action + useDelay: 60 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/blink.ogg + icon: + sprite: Objects/Materials/materials.rsi + state: cloth_3 + - type: TargetAction + range: 4 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: MaterialCloth + amount: 1 + - type: SpeakOnAction + sentence: action-speech-spell-cloth + +- type: entity + parent: BaseAction + id: ActionSpawnGlass + name: Conjure Glass + description: This spell summons a stack of glass on the clicked location. + components: + - type: Magic + - type: Action + useDelay: 60 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/blink.ogg + icon: + sprite: Objects/Materials/Sheets/glass.rsi + state: glass_3 + - type: TargetAction + range: 4 + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SheetGlass + amount: 1 + - type: SpeakOnAction + sentence: action-speech-spell-glass diff --git a/Resources/Prototypes/_Impstation/Magic/touch_spells.yml b/Resources/Prototypes/_Impstation/Magic/touch_spells.yml new file mode 100644 index 0000000000000..b849c821b29a5 --- /dev/null +++ b/Resources/Prototypes/_Impstation/Magic/touch_spells.yml @@ -0,0 +1,97 @@ +- type: entity + parent: BaseActionPolymorph + id: ActionPolymorphWizardTinySpider + name: Spider Polymorph + description: Polymorphs you into a Spider. + components: + - type: Action + useDelay: 30 + icon: + sprite: _Impstation/Mobs/Animals/ductspider.rsi + state: idle + - type: InstantAction + event: !type:PolymorphActionEvent + protoId: WizardTinySpider + +- type: entity + parent: BaseActionPolymorph + id: ActionPolymorphMagicRock + name: Rock Polymorph + description: Turns you into a rock. + components: + - type: Action + useDelay: 60 + icon: + sprite: Objects/Decoration/Flora/flora_rockssolid.rsi + state: rocksolid01 + - type: InstantAction + event: !type:PolymorphActionEvent + protoId: MagicRockPolymorph + +- type: entity + parent: BaseSmiteAction + id: ActionFood + name: Consume # its NOT a vore thing + description: im so hungry i could eat a... + components: + - type: Action + useDelay: 60 + sound: !type:SoundPathSpecifier + path: /Audio/Items/desk_bell_ring.ogg + icon: + sprite: Objects/Consumable/Food/Baked/cake.rsi + state: berry_delight + - type: SpeakOnAction + sentence: action-speech-spell-food + - type: Magic + - type: EntityTargetAction + event: !type:ChangeComponentsSpellEvent + toAdd: + - type: Edible + requiresSpecialDigestion: false + requireDead: false + - type: FlavorProfile + flavors: + - concerning + - type: EatSign + - type: InjectableSolution + solution: food + - type: RefillableSolution + solution: food + - type: SolutionContainerManager + solutions: + food: + maxVol: 2 + reagents: + - ReagentId: Nutriment + Quantity: 1 + - ReagentId: Vitamin + Quantity: 1 + - type: Tag + tags: + - KodeEdible + - ClothMade + - ClothFood + - UnguFood + - FoodSnack + - Meat + +- type: entity + parent: BaseSmiteAction + id: ActionPacify + name: Pacify + description: Someone needs a time out. + components: + - type: Magic + - type: Action + sound: !type:SoundPathSpecifier + path: /Audio/Items/Toys/toysqueak1.ogg + icon: + sprite: Objects/Fun/Plushies/moth.rsi + state: icon + - type: SpeakOnAction + sentence: action-speech-spell-pacify + - type: EntityTargetAction + event: !type:ChangeComponentsSpellEvent + toAdd: + - type: Pacified diff --git a/Resources/Prototypes/_Impstation/Roles/Antags/magicmonkey.yml b/Resources/Prototypes/_Impstation/Roles/Antags/magicmonkey.yml new file mode 100644 index 0000000000000..e1f8b19450e4c --- /dev/null +++ b/Resources/Prototypes/_Impstation/Roles/Antags/magicmonkey.yml @@ -0,0 +1,6 @@ +- type: startingGear + id: MobMagicMonkeyGear + equipment: + head: ApprenticeHat + id: WizardIDCard + outerClothing: ApprenticeRobes diff --git a/Resources/Prototypes/_Impstation/SoundCollections/curse.yml b/Resources/Prototypes/_Impstation/SoundCollections/curse.yml new file mode 100644 index 0000000000000..6fe05ffe48ed5 --- /dev/null +++ b/Resources/Prototypes/_Impstation/SoundCollections/curse.yml @@ -0,0 +1,4 @@ +- type: soundCollection + id: AnomalyCurseSupercritical + files: + - /Audio/Ambience/ambimystery.ogg diff --git a/Resources/Prototypes/_Impstation/silicon-laws.yml b/Resources/Prototypes/_Impstation/silicon-laws.yml index a1c717ce75a99..a45a4d960614c 100644 --- a/Resources/Prototypes/_Impstation/silicon-laws.yml +++ b/Resources/Prototypes/_Impstation/silicon-laws.yml @@ -130,3 +130,27 @@ - Bountysimov4 - Bountysimov5 obeysTo: laws-owner-crew + +# wizard laws +- type: siliconLaw + id: Wizmov1 + order: 1 + lawString: law-wizmov-1 + +- type: siliconLaw + id: Wizmov2 + order: 2 + lawString: law-wizmov-2 + +- type: siliconLaw + id: Wizmov3 + order: 3 + lawString: law-wizmov-3 + +- type: siliconLawset + id: WizmovLawset + laws: + - Wizmov1 + - Wizmov2 + - Wizmov3 + obeysTo: laws-owner-wizard diff --git a/Resources/Textures/Objects/Misc/killsign.rsi/meta.json b/Resources/Textures/Objects/Misc/killsign.rsi/meta.json index f75f8d65d0e6e..dceda01a04790 100644 --- a/Resources/Textures/Objects/Misc/killsign.rsi/meta.json +++ b/Resources/Textures/Objects/Misc/killsign.rsi/meta.json @@ -12,8 +12,8 @@ "directions": 1, "delays": [ [ - 0.15, - 0.15 + 0.5, + 0.5 ] ] }, @@ -22,8 +22,8 @@ "directions": 1, "delays": [ [ - 0.15, - 0.15 + 0.5, + 0.5 ] ] }, @@ -32,8 +32,8 @@ "directions": 1, "delays": [ [ - 0.15, - 0.15 + 0.5, + 0.5 ] ] }, @@ -42,8 +42,8 @@ "directions": 1, "delays": [ [ - 0.15, - 0.15 + 0.5, + 0.5 ] ] }, @@ -52,8 +52,8 @@ "directions": 1, "delays": [ [ - 0.15, - 0.15 + 0.5, + 0.5 ] ] }, @@ -62,8 +62,8 @@ "directions": 1, "delays": [ [ - 0.15, - 0.15 + 0.5, + 0.5 ] ] }, @@ -72,8 +72,8 @@ "directions": 1, "delays": [ [ - 0.15, - 0.15 + 0.5, + 0.5 ] ] }, @@ -82,8 +82,8 @@ "directions": 1, "delays": [ [ - 0.15, - 0.15 + 0.5, + 0.5 ] ] }, @@ -92,8 +92,8 @@ "directions": 1, "delays": [ [ - 0.15, - 0.15 + 0.5, + 0.5 ] ] }, @@ -102,8 +102,8 @@ "directions": 1, "delays": [ [ - 0.15, - 0.15 + 0.5, + 0.5 ] ] }, diff --git a/Resources/Textures/_Impstation/Clothing/Back/Satchels/magicbag.rsi/close.png b/Resources/Textures/_Impstation/Clothing/Back/Satchels/magicbag.rsi/close.png new file mode 100644 index 0000000000000000000000000000000000000000..bb774c75d291212bb2ce3fe6bf7071a252fe3603 GIT binary patch literal 790 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/Back/Satchels/magicbag.rsi/inhand-right.png b/Resources/Textures/_Impstation/Clothing/Back/Satchels/magicbag.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..3d00dd8d3715f9f4303d31060e1d3bce01d9d825 GIT binary patch literal 3330 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/Eyes/Glasses/magicglasses.rsi/equipped-EYES-ungu.png b/Resources/Textures/_Impstation/Clothing/Eyes/Glasses/magicglasses.rsi/equipped-EYES-ungu.png new file mode 100644 index 0000000000000000000000000000000000000000..66441da94e1307f9d295ba8ffe7060827cacf695 GIT binary patch literal 413 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z!#!ObLn`LH zy|v%_u!9Kuhxggd3U17>vA_$Gx4~CoZn=w@usatp9fY z^A(hWa!&m;@(XL9cW9enkNSpPvXNhY-LkP{tC26N3|xIun)`Y4k+*yG;;J1jyyiUE zRUvBXBX#UWk_5a)MhZu-5%) zLek@^It%%X58G*$VuCR6*FHYWP)EX>4Tx04R}tkv&L4Q5c4wdo7Ak404EQxI;D7QW1?}kpu;y23if>A2q>ym3yzW zI0mgkLqAJ@LrZh54Xr^C^aIfzG!?ak+&C&Ik$uZ~c+dBKobNp#ALVt^=?H^qxppiX zQIe?@rRx=$UVH=ys=8BLjL#)#TVMA`;=CIZv)cFlSpg&M=pZRTSTEWxNbA7Vrdt%e z2ZZzu)d1-n7`2nB6_6fm>IGYu^Esf#{sdp8sSO=M za0@Q3o0_%@m)p?)R8(!XCiwt4lY#d$2&ACz7J63exi#)NeSkz67H(kw07kM9Tx+v; zcWZ9{_B8VQ0XoKVkQFR@-T(jrCP_p=RCt{2**#0cP!z`T=i1;D4HOadD<}nLp?gQg z&uPZ)Eu9PE?owJrs8&-1Npc(oEonpZivQmh&V_p}=aA)*007v^%&f?BP2uf&&^hO9 zGPN+c(CJC6#p|2yUgiqBy`S&pvz&9T+?I=#yIGq|O}?*WzK}QQyLdRV&iR=XMRM0y zt$KWJ>3W>G-rMS}m!z}I2X3o3(LtWW?(=D{daLa^-8OE)&i?&B00000000000MrtR z7j@@eX>L3mS?Bmj@_lKwQrPY3_VTdQg!umP%WjqrQV>W{q~!fW-k@K7Djg3;e5fgkRIbWQu*kb|rNddOOonSup?^=HjzqZj9@6#Ll5}QuCc;hV0RR910000$ ayLEX>4Tx04R}tkvm8OK@>&LZj^{97N!tU*+MPEfT)P2L@@{o5+fvP;ePUi>?Z6c z*rXI}0~UT7qZT&S+FIBOg5U?lUa(TMk+3pJAVG|;nZuoTAM@^jTuSSv(=rC8m9s;^ zfD(zWDc)B+^y6iK5mk4xODpqXn%37nk~r`DVpj9MKdaM-IXXxRFr#Pf97vnM)K)Gl zcpvcTN!0-992m7D(KV1Bg|1ckO>m;ZvY6?!!=YJ_eSnf^V6B1mq-}yc2@D#hWq=&1 zvLU!2*i7g3+B?OD9WiTlMd&~uK^9nI83m0zDbnQdlfpv5Aw-Zs6Mt{Tzf2yDG%0ix z=Ez{8R{V%R_?@j2pBS%B>IgvVi|c+2fp-_mMc4g4cHQy`c%I?Ps{1n~nEnJ$v91js zLDx21T-P;i4=#70=P9e&YDMw@ay$<2XV4ji?ptVIujW>}=kx)>1z5a+gF_fjK-Wf- zz1tdd`?sf--w&)La=wE5eJub00M$uEK~z|U?a?ty13?gm;dkzA4hcyi*jSjtPDqnB z_SgD1?_U_~1i40#fFW>}1`-G<;_YX(AwtgE#%`W+XTD))7o2m>IoCsy{xf^g*I;I* z=T}vOd-4pfuMTX#q5OD*;Se?(s?p?E4WL}TV`kPnKY5#ap~`N_Gk9Fr*u(Ug)zgdO zC5q93^6L|u+$GIUYHCBHJi9T~3jt?`$6Bn%OzMK2!ft-{AKTEV4UM|$e`QZ4zW{*k ym#7$H`z6`s?3fL^x#GEsF|qfw$2sSm>+%Dw?p}51=$&Bz0000 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/Eyes/Glasses/magicglasses.rsi/meta.json b/Resources/Textures/_Impstation/Clothing/Eyes/Glasses/magicglasses.rsi/meta.json new file mode 100644 index 0000000000000..8b9dfb4c3c0f7 --- /dev/null +++ b/Resources/Textures/_Impstation/Clothing/Eyes/Glasses/magicglasses.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Starlighthowls.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-EYES", + "directions": 4 + }, + { + "name": "equipped-EYES-ungu", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Impstation/Clothing/Hands/Gloves/magicgloves.rsi/equipped-HAND.png b/Resources/Textures/_Impstation/Clothing/Hands/Gloves/magicgloves.rsi/equipped-HAND.png new file mode 100644 index 0000000000000000000000000000000000000000..b7b5b31fceb045ab032383f976e827207cba8b11 GIT binary patch literal 3195 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/Hands/Gloves/magicgloves.rsi/icon.png b/Resources/Textures/_Impstation/Clothing/Hands/Gloves/magicgloves.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..80de6267ed9c1260bacca25738b0dfb86b5a9697 GIT binary patch literal 1036 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/Hands/Rings/magicring.rsi/meta.json b/Resources/Textures/_Impstation/Clothing/Hands/Rings/magicring.rsi/meta.json new file mode 100644 index 0000000000000..f207e97f59020 --- /dev/null +++ b/Resources/Textures/_Impstation/Clothing/Hands/Rings/magicring.rsi/meta.json @@ -0,0 +1,21 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by Starlighthowls", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3 ] + ] + }, + { + "name": "equipped-HAND", + "directions": 4 + } + ] + } diff --git a/Resources/Textures/_Impstation/Clothing/Head/Hats/apprentice_hat.rsi/equipped-HEAD.png b/Resources/Textures/_Impstation/Clothing/Head/Hats/apprentice_hat.rsi/equipped-HEAD.png new file mode 100644 index 0000000000000000000000000000000000000000..fe52bbbd79e4f64c7be85000e310506ec8ec80dc GIT binary patch literal 984 zcmV;}11J26P)Px&l1W5CRCt{2nmAv%B38mzbn=4NYMLScl_HygXiZm|6c=akS6pqzVC}DxY6!h981QcsO>cdQVDkP zM9}!YD`5YqjZ{2}$@@!4CX+A>1IFJq>>suL-fAeg<>%ztOqMmyrm#^zhpsnKseFL0 zH?dJaN8@Y?vzaWDxJ_VYGg+33M}_aD;?Y3yr42~LrakQjiexO>lLUY4@VEo&(WUomq4xxP z{KMnUr9Ak!^uC|?t|ydBIYu{y)&E}1Bw~P7l848gP#Yt~2WK)FLC0tzc;WmpulSCe zATOSTum5R!iqQ(VD8W=bigGCz=p#xbUKTP&CcdKqmFjk+T*|SayE|PMv;yq$7w5B{ z*U-vu?bHFQ8olC6CC4Y?Rs~ui&13`n!EOY<5Agl(M>yd-Nv)7(A`_gB_ZzK{W;2Oc zj{*BfZK)QuTq6NE^`LD!quJ()n`_lY2fCSE*BUos*;mvL%pWbr-Ko_W;R}n$Q(~_4z>~Kbv>DIo}?yzHauV9afi% z7dyR7Ts~KRs4A)g*9zcgZHx0+VelWnYOaZgHDPtR$Y|sx;_<^gATWk zzWPq$N%){9LQc?gK{A36_)(v zB=fBx!m$GAS0P(F^`R9l!j>z8U<2prF@Sys7j)b_Oi=z>0gN=+8T-l5*c%|+14gay zy|Adbr6G*PE!a0000Px$ok>JNR9J=WmOV?uKp4mWid(3dp`?-wZ3=ZMC>Uu3Z0J2cidi?FJ2w z?;c-;Y#oU@Z`Sqj96&`NxDPPr#Pve+YEi~;Y;i||I|4J?g{H`mF1k=v6#zg80eSCZ zX1l!R#8SZYbbku~IJ>?Pw!sBZ)oavRNm!U`To$GnEslSTOs04<*Z5qWpsLsC#4V{&!kYCN4(Xjkq4> zj+b-%Vkr6RD22(uFhu{AVC zt3u1AqEK%~L1wm#hnH#g2t*;ULj;nXrvd~)f=1KCV3Qnk0YpL4l*O?S08`v+DDn^i zz@Z2LA{SBgQrbHJ%Q101-??bF2>%fotqQ$5uK@s_M-(E~8bUSv%v; Z>Kom=wbq?n-W>n{002ovPDHLkV1j%+($)X~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/Head/Hats/apprentice_hat.rsi/inhand-left.png b/Resources/Textures/_Impstation/Clothing/Head/Hats/apprentice_hat.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..41bb39dde40d3d7a3b299ea7100c5ce3e6dfcb3e GIT binary patch literal 559 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zUwXPYhE&XX zduwCXp#TxK2lp?r8#u38(7g7+jKG*^7W0d1^B=s)iC4^)cihFvx_nFuqZzg}Cuu$ssdc53#H-8=88 zJbblj-5WpW(&*5&M@phYQ_H1Zz1p&T{P=x4Kc9f^y{|PQ z#mCgvnOrnZFeoxw_dIzYPvEK93=FSxdY_-PSS@7IUi$61%>2b-ThkPdP6WMxgjEm1>S7LKkvFuO8xGys1KL^;PYvzwRGTz1t_p zba&&CuEie@+)n*?@WjajlkV2Olw;ax{9ya3n;T{$Ec@sCdB@q6f5)X)^q-FZPSbIueffHoTT?7 z>#En=nEM;9i&eQzy{Dhc!0^SoH1LG@(W<=%E6SYA)+(IyjaYB4@uYjv{gwAa7jI#V zKHa!XD?`GQp&|G7g%H(mzCd=ys;0G16Si(%^4&{1;oaQNO1#RP*KHr98?^5H9{(d$ z%1vnX+}5>E58Scd_uX51!>vez?|ggiPn>9#v~Py$A?@#$UwW$SmRwBHTpNC?;bO|n z4}QPq9et!QsVe&EoDbD|_i*3e&T#jGrayxq99-mG|3iDvZJo}#<$8L_?+sYF+`jZk zy*%TvJyPiAmZpzyL@d7TyY754K*X5&-t_AstlM&##W$AEU@|?>J$La8$q$oW&Oa!! zu6jq;-otm)KL`taJ#(PO&|6}q@(2BIeBKM#DheyF7&D*mdAVO+b6IHH1>;wj)7kX= zf920leNoMlcVKPOBP*lF>eoIqzBiay)N0K9rLK;V{UN7Z-Na-qV6-xLy85}Sb4q9e E08S<6ApigX literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/Head/Hats/apprentice_hat.rsi/meta.json b/Resources/Textures/_Impstation/Clothing/Head/Hats/apprentice_hat.rsi/meta.json new file mode 100644 index 0000000000000..e61edc8464dc8 --- /dev/null +++ b/Resources/Textures/_Impstation/Clothing/Head/Hats/apprentice_hat.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "sprites by ThatKidConnor", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HEAD", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/equipped-OUTERCLOTHING-ungu.png b/Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/equipped-OUTERCLOTHING-ungu.png new file mode 100644 index 0000000000000000000000000000000000000000..6f9358678267a67261079aef4988f8dbae378116 GIT binary patch literal 2001 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 FV1m^?E|>rS literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..599d9a4ffe777329296ee0f3cdf2ba0d4a630a68 GIT binary patch literal 1592 zcmV-82FLk{P)Px)@<~KNRCt{2nqO#JRUF5^9Tn^f>SbIKnj&eL=}R@bU^=>N45bD}X)~l_(7x!y zV4(~%a0UAyGCJ%Yri?BRdz*AHTBfeBp%rGS*|dfI$tYB^{<)JRB;JMFV&jBP;=}DZ zyZ83y=G-(XQ_lzTaPK`i-{1M=obx-mzaPNia5x+ehr{`QQp4IX67m0nup@ z08roEk56j9)U`>;&+JKN6=waCjfl8Q6p9KS`hFIJX$3Yz$Ef#?H(OB8VC z=|=#7{IwAPz|i|oP3>aU-%(0j%E-Eo2`*8fpX;)M_7~LqV`r}b0Hlm;Yuc95CpM6Q z*LU|99lRZVO9ucz!0SOQo}dC|pPIfPZm)wnA{I{|;Pu!Xt~pYolj=vOMT8H?kS62E zUmL;T)moh$1Uvdgr${8^FC4r75QAw2`#uO#BTPHFyNtq~CVCz4dgziVcRwKe&Tv#j zUr)kP-^?BW7-|r3@y*vP^=qv<8cZv6Q?vA_;aM`PV02u)cksXxv*AV@lc#ZRH!zXy zwKb!XP7%lMKV)ia=>W2>3C4}k3^El5!ZI9_r!j$ECPRvGa^XACT?T_`Wt078 zSndHeeL(;~TWd3tS^YX&aRpKD{}3y#pw56~Rsji_Q>ppV7FaNqn#Vv`#?*8h4ZFt8 zSgVbV+4tziERLKyO6|9z=nRlDGD!F#eD(A1*tP3#0D#Z8jIpuH@cG(t=gwmQKrWZV zJI&AB{!-@!Jc!FE2Pq>X(0KuXfPt`#nK`1r3rIXR{SMJTa_XqAA1f@E05&}95(P*Z z8QJV#SX;{j0DQi7_qU{}9rcsRVbNq2|{cs+UAJ z2Y^jSQ9?>qHifKjep$912F>)fxI_WNQ4!~MpP={dzNOk`N1yq>K%+yzCE+uA&*~^z zsbjEFpWqS&I3`c)+MHZC4*=-vN!Zdaxd%YAAxe{Rh);fkT(=*n+mDNfe$=%iQ?Jy< zV;Aj)Ov2#Fh4bjD>%hd5AJA3Tfq}4GmOk^ZM5g3})qMybFc%^G485pOKfg@BVtCvM)sm zX0NvI-we#)?SDUvN7`((XSb zFgw8Q6p`xi>vHaGt<9L3(^r7B1dmr`7DPh+LQC+t?%vGY60~7?Dm9OZhF-XxRoDY= zF0G?^=gOv<0RXsoi_{0KqjqtbS==s*i_5sVw2t_ys^@)K|D4n#EdBWkbDzvJK%190 zmZRlzIplIV+NRREL2aLFYk8_?ETJ>AwG_4vLdK96izjrs!emx~l##2JqB^{{so-{s zx>;znhlIw89)uzxf1xXV8At=M9q-YQ_h5A&>bv`KX;ZyGb(R4cymk{bhTze0kGdI# zdJ8O0uyqhpbMT$CGGkHbr_a>0xQMQn%9O^iLP9VA?724r?6&uP=K6rC)I9on5*yxE ze*x)+zFy$dx4%ZL%%Uh(J4nflb{3e`47hi&*-h(3Y)4Q{Poaqb0000Px%MM*?KR9J=Wl|N_`aTLctkvf!uaFh@*S(+hJF<>B-Gz}t1pa@0;5$vLaLvYEU zf|*3RbkV_fa1lkJ#KAux*e*(qsD+9tf)J%i$|c-+hF=}TMTtZ6yXKPI<@{bRq_qN?0$t(TTm_&Z@Ce%XHfB~W?(Fny-nPfE5BSPYvN%QLV610WL{LVJnVQWz?6K|b= z|A~ANN)8(u|VEGzPIOCY_IE22LGyoIhVN_jMW?(CrW+Z-&tzghs8%*!6#*??lH zZ07&d8lE^bX899IMk6e&_!&8V0e~w*H~N0BZit?hefXwgTgUZX5DF;VQLdV??~iW+ zFnjW6j{sE{yLT7RF_6{e68;}AF@~pLc#2!o&wGl?e7Cs1Hf2lJzfF=&^)Dc;ce4Di l1#}DP$Db7T@bK`E{02TK{KrW3@oNA8002ovPDHLkV1j0YHiQ5G literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/inhand-left.png b/Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..006892f5948605db1d35b97a7d03ea5a33379efc GIT binary patch literal 503 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zH+s4_hE&XX zduxAQQ-BEDhyG>y2MU6PWEM0B3!5hvm=sPu>0a>7(MSHMT}$&@w@aN1tuhuRJ`l`f zuYPg$%CZZOpL~!0k^JMsJciSj41zFlSIA#m!#mmfMJXf0={*OMwtjoE=S}vL-8ZG) znK*4S*)}<`>B0|=UVhCZHCCGf6DBO(m^;~0`upqGY`c)M`dj{B7#{Lh)5ELlJG z(7RKsLhq?+vA(eR5%G+5(Sa+!yRY6l9TdTE@!U!ghWQFeUtAmXdh_lj#%pdKw?A*c z?O0##mj5X$zp%AhANg?gUYKN`#s1?dGp-yrKHw#o_ITf2poOjBGx-ZnK3bZ%>g-(8 zirW7UpT2bH^sYU_Z8Fz2pqlB)#(t(?{eM!jcRt@_keroa-Mt{J;r&d76?^B~U!3Q< r&++<(=(& zc4(bbjZ#{x2fpK%hgMRU$fj;<}l~k)kUEzSC`*6 zW1Y78?9r$HC6nW;xA}flZ&!kO0!04}?~Mw3u9KGBStajpeKqa1Qr+U;jE&DdwkA%Q zUEW^1^$QrzJr&&g<@q}TwGj!)iRXt XJ{6v}BkK(?>KHs-{an^LB{Ts5guT+9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/meta.json b/Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/meta.json new file mode 100644 index 0000000000000..008bea7e89cf7 --- /dev/null +++ b/Resources/Textures/_Impstation/Clothing/OuterClothing/Misc/apprentice_robes.rsi/meta.json @@ -0,0 +1,34 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "sprites by ThatKidConnor", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-ungu", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/equipped-FEET-ungu.png b/Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/equipped-FEET-ungu.png new file mode 100644 index 0000000000000000000000000000000000000000..317d3f1082baeb8e187b8e9cc1311e014fe59791 GIT binary patch literal 782 zcmV+p1M&QcP)Px%$Vo&&RCt{2+P_O1VHm*i?}Z>~NJ#?KP$+g0N((I=BtubzQVJQJVzw?#B6KhH z56B-Nf~Q>s2XV?MmQpB+gHxfP2pL){l++dzlLnEH>kxBBz2x3EF|F9=vm|%#y}#~# z$qRWN5JCtcgb+dqA%qY@2qFF(hT8*^;g=S`U@2_h+r4=J!0f?W!>zpA0rt9ouiFD# zr9=Fl0AD=60GJDok}9rIsg=)^zX?AeRa~oA`i))Qt*z2w{gcDfn zV`qmR~@-M{w3Jjes^lX^hn9Upr7U;J~PS^&4G zM}ULjNXxOIkRza+9{@P!02DZl#2j;^Jt1A+IHC_9`ICM_r5ld<3!s*xpcNZ*3Xi85 z(rMySo$tF{{z5AqCrDIkWhSaYOmc9t`rB;uJQTIfhSAt*COIamL3^b;Nz%~X0nOoY zlN>4kuvUkcDdiuw7XX+1g;tbSY|IeU#?Q#HKKbp{-!sR*Nw^ROt8|Bs7?O(74;xU?Y0IuQ=$R;!VSYA;M zjcX0oDF(lO`xt;iE{9PmFv)yRU%)I$%kqZ^4b@M8k?(z|Px%&q+iL0^G6X@W;};OB zbqalfv8#M%aLu^H#t7IY;lh)dv(u$%Q_Uz@&;}Iz)VXYW4kK=l#3;|uw0~a z;PaE#6ltbhDgC)5xEIxp@y3~mm;{gQt}xTmcj#wfUf!=M(#(=GX8|lZbC&6)y^I<# z-97AH(pv!4=1g}FH(bcyV$^`t>a2UoetSrH|4w%glUkh(r^*l+HDG>p^2kf3R%e+X zojj?!YUn115pM+v8aRF5O*lU~$&a}ORA&blK3uofdl!|pw#nI{0q#6|=>E^b&liDm zAE)0QQu;Suu9SEc8*tCoF}jAkg$2B^`sZ0spd#0M7uC7T2>`x-$Y9Si1T~}Su;$+d zNRuN;qLEY$Ns@3Ij&EXxl&@w*{Bwj3H{rr`ohv=NRnX7*`Qo0)$A>p zeEXO-K+oOvE`WZ1X)>hR2i@lxrY?F^s(p|&8K|zyc=r}ecL|KTb<{3^ehFGwFTva3 zHv4?dLX>}RA!ttHLJyn61HAeA8Gz!qJdcgxp+o?YKfT-ciXii|ISEllVANlcX!pJuQ#UjsD~d%HjM&G|Ja)5T|9N~)b7nk)2(X@%KptyB4mdJdX11LrX=O;I~h+Uge5 zP_y>V_M1UQ%{6Ofp6qgZyo=%W#Vx!HQ)4#fZ~hr2IW^{E@csomWy7uZuVz}~etBDQ zqo=IMJ@eNqo^*N0iZpEJ4!q!6@a%om+=YL4g}K}8UtRs|>zj$W`uYiZrK}7E<#mlG zp7M&lH&;HquXuOId^>wVIJhYP@a4@)vuWFwt1lA_({p&5t+(LookNAsUG}hj-0jGa z@nx5R4|k+(qw!kK!&~<7Jnl}6vba3!#4ApTWvy=OUuVkrvlg^W<(5$Cxc+G$m%+Oj z2Z8#A_r?ixb~1#9Ii3n#MU+^gwD1CYFZ}<{D~plfBTIL@gv3i86r>ruUTkfHy;@P44$rjF6*2UngCQ-`St(+ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/icon.png b/Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..91d8d4d345c0afe287fe689bd8045b490c2cbfc6 GIT binary patch literal 477 zcmV<30V4j1P)Px$mq|oHR9J=WmN84iP!xqfwJt`9p`uo#9R!tvMJN;(K@cjAic6fNg&Ic@6#4@S zx`>mtq6mUT5F7cb975^EgHw;j0ezH?7rUIH#IE-wF_ zCaVi3nJ@snNC0@1J^=i>B5LkBifk8mP4)IzHE_=hO9a{D763(m;!v4pvH4QeJnLoC z{hF;B063yRoB^R%%h&A4;{eDlUQ4}f8JMSABml6{9%Qj}`R$s98u%^&M+~UaU|j<1 z;i$6-WGgqsq_EIy`E$|{)j0#IG{}A>FZ6miik8a)P0^iIkmI)^5UK#tfM*w9pirS0^Z*UVN@%&!q;`O*O--6oIHEL6T=JV!Ov2+Hi=ykd_{Y)ll z`wW;i@YUx0FacA~X^WTvU`U++%(jI9Foya?P0#2E0EOc-0Q?UNmj5+eT>gX)#V~(X TJ@_8|00000NkvXXu0mjfyS2;3 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/inhand-left.png b/Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..e88d245123b289e38fe9852505d8e5056c3d04b1 GIT binary patch literal 401 zcmV;C0dD?@P)Px$OG!jQRCt{2+A(SZK^VpH&mfX^3rQokf(P&pmMO(XSd0kP7CAt?KtNFf-XLWT z;6=nvEW|>P6i%vvA=xzR8*t$NgKeMRe(P+r&kO(n000008slu}?kVR#4>3Z!wcKsb zSDRI*Hw{0lPTlr=wQenswgmYC!eRSayYv$rXG7P|+J(7F(glP=E;>CMoi;Wy!)Uhfe3oGS2y9^ap&GfTrvyoA^{ zAB}$>D6;&yS7ZSI00000004kAsfrU(3KFp?ixbH$KwX?jZUM;^Ct^vWI1!toIFZ~D v`0du>L>k}Q3#hsSNiHDS;)D{#2>=Q|Yy-2eqa{m(00000NkvXXu0mjfM9r+S literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/inhand-right.png b/Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..04db1097534269416acdbb0c89c5be61123cb85e GIT binary patch literal 419 zcmV;U0bKrxP)Px$T}ebiRCt{2+OcZFKpe;Me~N^z8KjH23O<1E;Mh@I1hFDGJM;nS3ltQk;2U)8 z1Nb81CJy2tNC&Uel@n@Wa+i9M?*}p^9KZXK%aXqc00000007PnqMo{ShAghl{SbF^ zTpFp>;UvwlTc{G6VOOmVCmEMUiMcNpFo=4p9o5ekb(k?XX3ln0Pka+D7BJb(gZ_Rg z(?;vh#eHPvn>Jd~-!Emdn+Mj59)}y%47_^b_JbM)p5ml>5b=$FftsJXvJAtZIM2wu*O5BLq=I6_sJib49wRzKVxKU;SU*8{z zSz{k4(&n`+CB)L_-a)p1qrV5Y&H(@b000000Kh#e>JWvb`8Rk;nqdSVSrw3W7{N!G z3&>>{p(t`4M(~}@FoKU#9|4<7R6xvyR*=)M2| N002ovPDHLkV1lz9v;hDB literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/meta.json b/Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/meta.json new file mode 100644 index 0000000000000..386e75720ebab --- /dev/null +++ b/Resources/Textures/_Impstation/Clothing/Shoes/Boots/magicboots.rsi/meta.json @@ -0,0 +1,34 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Starlighthowls.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-FEET", + "directions": 4 + }, + { + "name": "equipped-FEET-ungu", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-FEET-vox", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Impstation/Magic/PAI.rsi/meta.json b/Resources/Textures/_Impstation/Magic/PAI.rsi/meta.json new file mode 100644 index 0000000000000..113917222f4bf --- /dev/null +++ b/Resources/Textures/_Impstation/Magic/PAI.rsi/meta.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by Starlighthowls", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "pai-base" + }, + { + "name": "pai-off" + }, + { + "name": "pai-loading", + "delays": [ + [ + 0.8, + 0.8, + 0.8 + ] + ] + }, + { + "name": "pai-on", + "delays": [ + [ + 0.8, + 0.8 + ] + ] + } + ] + } \ No newline at end of file diff --git a/Resources/Textures/_Impstation/Magic/PAI.rsi/pai-base.png b/Resources/Textures/_Impstation/Magic/PAI.rsi/pai-base.png new file mode 100644 index 0000000000000000000000000000000000000000..6701a2e7335c8af89a32a87e74e93792c53c4848 GIT binary patch literal 686 zcmV;f0#W^mP)Px%Xh}ptR9J=Wm0w6xQ5?s=TRkiS!DWerxg}FBi0v)g#K7cQvTNuo+ zK@dIKMFI!yO@Kx4Ql(=W&tg&=BkH6(Y$MS`x|O<0o00GP5^+@Wy9)Q`EUWK6SW|s zktB+H#eWCjblLa`8G;F5Wc(7Mk!00(I(oYJ4h>-S%~#F7dc_Tf6AiVQ4kAMKfP;eu z4rtChg-OR10BtPNd}}~53RsLSm5TlS;NT#Vi~_4Hn*+o5`VfsIVZL}4UfG1{cu@N& zE-Ox*s~1cTOgtGjs3{eN^&9{|G76AyIpLK}rS@HqtyH|Qo`afF5sFW8-?nwbZ4VIt zSeU3Ac_R5fk}t7jMXPS)iGM6i-1Y!r)#N6m_kvdNj=U+0%13zm+$n5lf0p`qZPztN zVyBPv2m-z(5?IN+Y)VVlU2y)4rJ_A@fbaQKMSG+G)c$dwh|7alA$IzhSH5n5^5Px6 zMPxHsjNEZG1)*ySI(mzknfRbbqWN7wUAWNKjX|*+bI(Eue}2xbr+XXH_hz@@AA4o@ Ukk;(8rT_o{07*qoM6N<$g8IKl?*IS* literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Magic/PAI.rsi/pai-loading.png b/Resources/Textures/_Impstation/Magic/PAI.rsi/pai-loading.png new file mode 100644 index 0000000000000000000000000000000000000000..09c9d7c434154b57132cc33d9d2f3681d4f2a3ef GIT binary patch literal 459 zcmV;+0W|)JP)Px$g-Jv~RA_?(|gztTtW!=f??5=~v&pYnT%K4Y0GTx6}2lCP2onsjGdm4-tDj zO;Fe@Y@sj77kw3B-;JwHwJm~2eMxff1nlfK?|7w z;Ut7Af^@u#w(|rKH=GI}-QTw#_{NmmO}DA5{pK4YhN1o7RGcRuMDhhGLWtxa#^8e0 zDX3WIK#IZdz7(Ta=WbCQ(KqQf>2eHR)&G7ehEIJpAO7x(J+siaJ}V!+hygIaKL~aa zE633vyog1B{<72OuZT<3Cxj3}2qAVy+?HQRn8swU~sTI zqj;vrro9PTcZzK7#Mnpy>c*GE~;q}Lj1~I?Bv^RFn7H2&y)2Lgu z;t>N-1sijrT^slL`-guTc%Nidv2<{s(f{z!X@8Ar%D-hIWqoA|p1xIY%Hlclvm?lT z8uNo`9$Zc)&b8-{oaGjG=Tn?z!C=dKK-XPZU2MaIMG-&FinnpsOKv#!duMgWgo=uX pb{Et5DjZE7xPH`t_^2t6fkCe{L8r8+@jTGK44$rjF6*2UngEQ&a-skL literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Magic/PAI.rsi/pai-on.png b/Resources/Textures/_Impstation/Magic/PAI.rsi/pai-on.png new file mode 100644 index 0000000000000000000000000000000000000000..4778849988de3ab4095c84e5fc4030834dc36210 GIT binary patch literal 393 zcmV;40e1e0P)Px$LrFwIRA_|?~obw1yVmjx9(kdlrHSucmmTGs5&#C ztjGiEW)vPEbTB4KNg~~;C4BGr)BsylKPx#1ZP1_K>z@;j|==^1poj75lKWrRCr$P+AT;!Q4|O8sXhP-awzGlv=L7RR(E0E5S>tH}}HKR&~lgkVQo zL#S&o;pHS?@cFCjqO5%RrI^Dam`*~i6&;Z+FUi%2PN^O9ike^G8jqlLsYPo7RPyo@ zUJv{yvJ>rnazbkYu)>Jd5~7VAVqJRXH2+kz=as&gEQ0p00Nw*rWAP}qoFtUNpQm?H zrf*{%_V<9~UmIxasodZ-Ov1s#*R6ceA^Bh67vxm)TVHE4{v#y62x$AY@LL_|bH zL_|bHPx&)k#D_RCt{2n$2tDMi|B)#rp7!wb@_?94HRB3wvk?^x(_V9{0Eq*gv!o=&{gK zDU==xA(tK+@E)2%8=S2@uQW5#>>(K=eG@YKcExsIJxF3RNuq()C#JOG>xPdTX(ayfB!&+xuK zzxn#TP!ec_CA%2@NxjZMeE8?rCljI983#^g09K zbOkG7i;o%%E=73o6<}!t`NU8&-NF8gFPSO`?X)id;HdY`ygqmC&|2bZeBoT+2L$x@w1m)Z2ZHRmY4@u_X*xL1H`ajGB~Q!-U#&>=B~2rTYG6-2I$$)d{) z;ZAcp^0*^j9efKV0U8(h#lb6grvO#s0f1ahm1liP=RQa;SpHwK2_^YQWRB0fGA6 zH|(YXY9W^sb~gNRrvB}zzWEm1_X$5mr;1*s91HC)z&?da;uvmn5{@#r$c z4q_D1O|d29&9TXuH6|Aeu~fUgUS}XWY1f#jOjMEGij&rmcsw4D$K&yMJRXn7<9U8;w7c@T zWQJU@wgAtmc&wTas4~BG^!e-7lOENP=v>Bpj%kyq z&PD?8xHFR;vlwvNc0sG+DnPlm08xW479Shd#7n9((K%1u0ZNa@xyS)Ga002ovPDHLkV1lud=XU@A literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Magic/curse.rsi/curse_tentacle_spawn.png b/Resources/Textures/_Impstation/Magic/curse.rsi/curse_tentacle_spawn.png new file mode 100644 index 0000000000000000000000000000000000000000..c3b2923594a447cf69c2197e19a7a6c8fb661f0f GIT binary patch literal 1050 zcmV+#1m*jQP)Px&)Ja4^RCt{2n$L^dMij@tlJ#pQUbCzhYzQ_urMWB%IqYTWHOIn2|Ik1n#~#~D z>7fvuL!lJ1gt~_Wd0EX!^F!)kGpg)5yK8A|6FQ&EU<+CAeXaMEnD+pO!{Kl^9FG4f z-k}5N%K7w)6(U0%J;B@euj#hufAs>OqX_=)!rC8i-@m3@rYJr0#0A1_OCMNl?N65xjY~o%Cl+DFLAvloG9z zM;if}^|lWYHVLkjfGYEP?ZVaqEYdkObtg5)Nq@Fe5!MAC_D7WpI0^g&s>~7i31~EI z9Yd@4fJHi|&HCG=2^d>k+p0Xf_pp?K({$Z!4I6gjOMsT4R zax97D`G1~!QnQ0TmK_d%8Y_I&)3olU;4&}fsL9z7#T-$#*Eob-DS{*Lwefc4$mPq%+sFNbxbGi|cd zqi3WL3`yMQg~%S&zOz0but?{$*|yrnozOJgW}B=K8FIDc=J;diJRk7giyxR2K+|kg znFH$I)i%v`*)sd9z7CfuXmkQDQ;_f&li>w>$dIj+!1?rwk$w;SR^yMwPiVHSRGEW` zk534;l?w;3v>kL3~6garZClFh@_W8nIc|=_J6) zkWv6H6eIX-M(}{LA`prZsX0f>A*L@uqal-;!}C0HCooWjWqn*%1vi4PuT5G%2G@s_ z%v#8d6y6QuYOwPC-^+K_-a5k`WdPuL9x>kqNn9V_G&cY@JK%6Q91e%W;czth2ad!8 U&m?OW9{>OV07*qoM6N<$g0&CtK>z>% literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Magic/curse.rsi/curse_tentacle_wiggle.png b/Resources/Textures/_Impstation/Magic/curse.rsi/curse_tentacle_wiggle.png new file mode 100644 index 0000000000000000000000000000000000000000..7b3251928b64907970c20391f83c58915a245b0a GIT binary patch literal 1095 zcmV-N1i1T&P)Px(0ZBwbRCt{2n$K(7FcinXZ5-EjP1ZVx6+#N3FbbovLr)vMt>?o2&_U1JZEU9< z2Bk0tqtH_5rCl}>$+4AWheW}1em%)jQaXPwCJxbidX}G_@_oR6&W6s9j`q)3FX>{- z-NwcBd0^hH)%l_o0278yV8Vw@UE>$m=K)XK=p|jGFFt`i^;46YNbb@EyEc3v{+Qz951I#*=B$N`AL784?YpTE7g@_Nj&5x8}h^-225 z655zbNiYbbVansFeebYw3O}rXcly?=!lV5&CT)Gc{V?@?)%SeXc_7b=yaL8$C$H{$ z{?)H9lluqJ36~D}VTC%JHd$MTjZ^%5_~gs)TDz~2rZL}&wi)$7kRp|>xw8fjq7yFf z_mVDt+KTQ!0`fKY5CI1;`JBJ%)a1*^pFy%$02m_RI%gE6Z7^SR$N24gc*e8m z1KpZ@5&1L7G9OgVDCBJr%X^OlQ*@P2Rv6g}ef0)!cB0 zlLABx;+eZbQI?MB4t=rUjIs<;60BB&si;GQgn>Q5*X02BJWE~feu3I)J~KCgqx{)9pS zFrm+@V!A(}@GgLY`n(D@`V))<00s1UDz^F)l>ZZ)hps+P9^X=bLZKWWDWcC)vDKfT zv;u7C^Hgm0Cn)Ct)B3y$Hu@8kbAV}mo{Fvh1g$4!QlF<_vp+#=7ci;MQ?S{epu7v1 z*5@hM>`zcy0XFn`3O4%_$Sc5>K2O1Be*!59+SKP&u+g7DdIfCi^D5ZrPgoiN+xomJ zru!3?<^bFJyb3n@6PB(3+xk2eTm1>z{Q+2^KELk%gp!hyl9G}q%3m4~Px3)NTXp~d N002ovPDHLkV1mwT5Px&Y)M2xR9J%3Iaxg$P;zQStyc#CWMdgL_Ts+ebaTJwvJsJ+SGNOhfnk~8JX7n{F>$oyOB%*V z2oG=uh!Aj|S^V+Z<>JHA0hUXvfhXq30braXul4H4#xkCl4a>yKSRT3a6mUMg_o$mk z!-q`vgrlR;b(9K@#=X|7yToW%CiKFZ$1AyH3cr_*oRj&HbA~8201}E?uMWMirrb;z zF0ut97pt;?hQSj8`E&q)w%@8D^uii+zzL1ry^q>%9Tjp~nH)hLkWa~pG6;rcqPm_? zdLkNjBd$dD^8BKGD-+p+9&v#!ug@|HC(=fOlNB7&6^R6Hln4O!(!$K1K_b!p& zy?{0K2eWh2&htvSqt-x}n9DU|Yvo3ndR(Ck4uBDh7$~^T$sy zqiK%f_wQYLRNS|l`1&h~PanTK&*&Nsm2wA-H}CPYdxgkmaeIJK!Jzp~Yd`G?08m{| zpl>%lZ8+>OLe~dofhGAytZbM2R#6)0I)a&QBQ3U<3i3XM7wM9R@?_!!_B zNL1vFy*S%eDQK$|KT!)fuo@75a=Crdse~KOb8jZa; zwpMNcrV>u((!(z!_za$09T1=fig2kqq$(XFC#z?JpsAPpN|L=G5T-p-L{%RlGKpWD z#rqRSOaEPpqwt9%)q(t64h8qU7pF07*qoM6N<$g3Tbd+W-In literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Magic/door.rsi/closing.png b/Resources/Textures/_Impstation/Magic/door.rsi/closing.png new file mode 100644 index 0000000000000000000000000000000000000000..c4c8e50d43bc92d49667fee4b05e4b8599a29447 GIT binary patch literal 2194 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Magic/door.rsi/opening.png b/Resources/Textures/_Impstation/Magic/door.rsi/opening.png new file mode 100644 index 0000000000000000000000000000000000000000..20b10ebdfbb195dd0ae834859831ea02f4662457 GIT binary patch literal 2226 zcmV;j2u=5iP)Px-Y)M2xRCt`_TtP@%OB6kkbny!x+h!|tR|-KzsDbdQ6cWg%iw~i6hvv;^KEBtD=PBbK1Gx9H;>D%sqFfXCB=n;vwKl!wsm3R?+WXi( z-T?sQGLzW-G!l4ol_cnM^*R7pJ-E;E{k{BGpiwI4hh7|dF3L44J_%9v3~|QC)lAG~ zCNcNm3G$<3n62Kz#LN+piph~pcc|I^AH5l&ls zq4dmFZ-wHM5LQoGe}h~>E;H%7xVo`~x0xyA55|Cl%l9UZrm$*a^3W}_2YPgFh$k{;Ft5y&9h$2*vN@We<$14q#ku9luD`p~1GsC+@u zOR-k>NJEgGiJ7BV_#~M01P*{Iz_eMLJ}1$ePw(_RG`9!D$tM}9SgU)gp4sZHMEN9G z4S-364XPVUzCj=~8=Y<#8Yf?vL7+`INxmQq**B9Mdk~-=5^zF$`peaN?CyRfrI$?B<-9Y z-$9HZ8AFY7u9YtHLR02n?zo&|Gcj{y z%_kv>o^;SDuV;g91B=WIrsWJ}NlV73zXJf=yl>=_l3?753ah94>=t|yqUcFc{7NAp zXAIpZZa%%krde%gzIy$Om0^)j%K5;M_O;PNsR&y>31Rh!sR(_A&;W7n$b=w6==pdP zpJWtU->d7Hm^q5XC&5;an2O-ivs~_;5H<~L%NO;yFX@S!FRY%xFjPgWy?=SoDrEsf zybmSBQ(q&*0C1pFsSYW|j;hDRCn1WSo=rF?4&VJW(sR%1W4_l;1FA?f3B-9mQo9|ccMdiwV^st+7bz=#*ii{ADCLjaDP*_p#_j&vWpv*wE zAQOg2kR4Iax$5BH(y)d)7 zus*6N;`hv)Rf$tQvIq}HalJOmWNxwxF58jRcrH`5Uij@q09g7`S-v(e-Q)n+g-EP*eTa1bqO)^67@LF}}_pC!YjePukQJrHcsigSpIP z_jFvaRbmK3!|=s%I*yZ10;gvP0e(*P%lhZ~Qq@xv+zC{Ft;WM)`NA6Cq$e&u2_`)$ z^~lXFFCE-9n@{fmYTF@G009$%;wlUb%V!ha*y_&}HQ3~4+ z9~NA5tP5U~j)|Egr@T6R|Dx1yKfDA}zkJfXCLOMMb+8q&Br8HtnqyZNmYwpNbhzeK zVf-Jlr264?==pV5yej`7cnNGtk~@}D&nN&dDN(;0FUSSC?1$$tC|(;R%{v4K{qWK~ z2f=Ft7rb2;lvF>wghBDD9E0E``1XJ}`{5-NYjuyhqh0dq_Z$Q-p*sL^^}|ch4`Qtq zH@qet7v-8$UL9$~&<`&`N{A)JYpWw^-XI-4HQ^+PrK%Loz@%rINr$U!s7XgUDZ_JQ zU}j&^hPTz>0&Ge0b>n#|DI=K5kX$Y(Nd)O|2~J1qP3c{tCq1cOKFNxhjSkl?NY~MA zOZi=Wuxox@$57J!@Dc`@3jP(4Mj!p~5^VbAgL;x&>Tm&0NB0~MwjW-CZNL1*G5KGI+xIF-l3K0|+ zyXNIEC|=N)_PI7fu~zr=%-|r5P^{IRPx#1ZP1_K>z@;j|==^1pojDw@E}nRCr$9nmec-MHI)^TLraB=FIt@IdkUBemmbaRR=cSvgHEzzy3K>{rt;Hr~HPSmoHqmbZ2@# z`_u7G`7TV&zf|8F0r5l2yQ;@-dpRkutBar=Ippa#2BzlkbO2sIx^f^r-*?llMkA=F z9U$Llw)$Xd{!Rw~y}7*ZztC!e?PJZpn3BKK0nxL9I@YFFJ}YfAH560xw}y%2dUoaf znd;l$KCkY&@xe8-QL3lzZkiCV-?3wj)o!F%bE?Km>px{H+dPA3gW?${Hh{+kZ#(*3m~(*^4su zKyvym`W_JZL233QY#+kk83B0)UitoXx_@wD&zigS%8j)Xpl8FnjdiIXknhXi=^?W0 z`fHcd^N)WXZ(N7WJW1!)>$jxx7!d&EXHZ=c0ER|jYXp#m9Xtv_lM&V{myGVY6*WPA z2JbTH0&>Xr*+ zVtOXbfyQ{Z9=R9=zNqw>4N&4|Fz|FO0osvs()#ev)(8T4EQQXh0?EEQ_gPx|@9le` zTE2Z#wSDK)sUGmdBSyoKgYTwf_|%@)Q!ZdO07khkNlvAglO}#0?BIOP(I(f%pB^A@ zN^T7BiAV0Qp548>+I;st)uzo4RHsj!NOxhG`>AifuHN3izxwFYFO!3EU`+mo*2WL$ z69?0TDAT4Z@-IQoY?V4lwsXh!**3>4x80FLK0OzVg$F)(DYx+hbTE7BYLc@)m(P*& zFPUf}iiWR-KeI~|0PYMrmT5;WN3IV(6I2^N(Z^s|g1Hm&3(y|rU7l_HDG91TNJc$^ z2M--d^$u1vm64|({WU5g=PU7JJUSQ*OE7mrjyQPb>8}$bBHwHmh>9hPU|loA5v4M6 z5gH}h1|X0pOaX&oNpW{~Au&f-raj67^tAEM9KbIr8%Yqc6CepPxMN2S&Iay`Q>LDF zx6^;{1=;u{D!AsS)n&&@Y&N38wV2W%~$qQPZR%A9`13*^b%lS&)0ko z+L05nf7F{owl0_WHB{#_tLkNtfOih|bMC-;xW8aQfmEA-_&2p^a}1p4qiy_72VS;rI8>-m58l<#otg=6PPI zn`iES{QljAlV5z2?oH28z7Kz^Cs3ldP)3Huv&EO4x}F^H&VfUzPwYPrVt<}ZawOaw zL?HY`VeGRA{~Dmo8R5d?Ue?DM8yo000^`g(`_$8pT-{|{K;YmcgIJ?-nXwU_%Uvfp zce7Y5vBV2aa5FeqVvU6{6$<+vH~tQ|5brO8IsRS+w`fKAk6r72l9^? zmlN88Z9@}dZwEMd$^0co{pE-RIN`pTDdN6Gx72INCC@H~Jc z4jyO=w(&f~j$RIM{ihEJs{~x0`T+kgFeLQm1srg}DLfD4!p0$apmzk|b@p1w;@|-v zCHS8Jp*bW04F$U4fGhtHqFvaSM@Snw*NL+ql`;b)p1dCLAHAva0P8>hn@*E0)_1)Z z^ooFdkY-&%4nTIPA*VLPodEQWf>sAO`#JbB1N@jNIYv#H2+{4p< zR&4gnuq_IT21f_D#*&g%#d&fu^o8#NtkF7ClYy;Se&DhQuw7rBz2Y3{PBF^2&wj>^u#Y_xJ&l;R&Zw@Co^FUo~oY;hI*odvz zjP1a&l+fq^kEK0y1kn)?^47;z6r&=Z2=mPBxqgR$KJ?A?0l46V8ym1C4qW)`SW39a z0eIfO#L>~MF1~xC7()INh%9IDhF^SH858I<0m20*+}MCEap2KrmoT!WNGwKxp~D%R z+YJP{69BT?w%w4zFU`zqqH(6uPEb2$9?;i8qZ8e5zy+sv=7YB!&k>c)(YOR0I0_s% ziaj2;4mpzzp(u<3jE!4YU(koXAVw4%CTDHb9&B^)lpVZsB@`V%2haFX6cyk}PGG6C z-t8uCGZ<>QwEc7;_Kl9E443}|(GF~ivrL_n)b)RXHDH~1#luezB0Z6fa$I%yguFZk zN*wXhE^VaF1KcQAcc0;+2*AU7AFt(+pjX`uNG>_-KPE~#;Wqn&+{QTbaa<9NIRKy_ zcZLcjBkY{NgYPPpTMa~rYU30w#Px%fJsC_RCt{2nlW$MKorOS?ovgK2o^pb9AqQx~Qzo;pTi z&Dg06Q#Gzj3DPONXd<+2i_4_9P;A{Afe80GE0I>a3H|Ziz`C6?N0RZ`20RV7$ zb%AiuPka)L+x7w=yB|;oa(K4q6qneg)A{yAfBy6l z@8A9a0H{Y#5sm`9ep5p2RUPijYNF+6`;8j_*}rfFG~Koy4gw7TFP?7!lQ$0l8^!JE zbHhQP&8Nc2tbe1p9T@}Fzt9A@<%X`*x;Q=Qq4I1C-Q(W$ocT5A9{)XedeTFs)`eSc zuuZ}|zi}t+2PTW$QR_T1yPGR@Z5AcB+|W(8t&dvgtc%o5ez)AvX3@33`$_sEGio1u z%GaLq^}O>*`HlCs@!iJ4Ye47w2gg31o#oZxlN(>lg?&%kg-LbHj&ITXk~c!*@pWWJ znASGfcB!=@Jmu^0_&P0hlxnG!%I0Stp7M3I)XK~+2!bF8f*=TjAP9mW2=@?jdmK#t zc`97_gxD8w_va~a<`c+&i)Y=R&n%z7-Jj=znoo#b0o?t03Y__brSbtB{rP45V8|zs z^8sA_d8!{w`GlqN0crK;v(6^~cc4F?bv_}n{yf!hj+f0Rkn#bX{dtO?GoL`(2;GJL se3toyDOvaDv(6_7f*=TjAlz&I01vDiDJS}~Q~&?~07*qoM6N<$f(c1f+5i9m literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Mobs/Animals/Magic/light.rsi/light.png b/Resources/Textures/_Impstation/Mobs/Animals/Magic/light.rsi/light.png new file mode 100644 index 0000000000000000000000000000000000000000..204086fe1fb5e3a9ad88bb2a004ae976fa4c9376 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQjEnx?oJHr&dIz4a`t$-IEG|2 zzP>0!?hd2Ph1zbP1Y+~QyXf9sl)J9#HUH7;EoKRY zyHfX+Nq@X{uZ|)9;2F37n_{0xb>LVu1c&@O1TaS?83{1OW98 BYoq`G literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Mobs/Animals/Magic/light.rsi/meta.json b/Resources/Textures/_Impstation/Mobs/Animals/Magic/light.rsi/meta.json new file mode 100644 index 0000000000000..4f3cdca3bc9e0 --- /dev/null +++ b/Resources/Textures/_Impstation/Mobs/Animals/Magic/light.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprited Starlighthowls", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "light", + "delays": [ + [ 0.5, 0.5 ] + ] + } + ] +} diff --git a/Resources/Textures/_Impstation/Mobs/Animals/Magic/miniwiz.rsi/meta.json b/Resources/Textures/_Impstation/Mobs/Animals/Magic/miniwiz.rsi/meta.json new file mode 100644 index 0000000000000..a30fcdaf9f5c2 --- /dev/null +++ b/Resources/Textures/_Impstation/Mobs/Animals/Magic/miniwiz.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprited fancyplanks", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "miniwiz" + }, + { + "name": "wizded" + } + ] +} diff --git a/Resources/Textures/_Impstation/Mobs/Animals/Magic/miniwiz.rsi/miniwiz.png b/Resources/Textures/_Impstation/Mobs/Animals/Magic/miniwiz.rsi/miniwiz.png new file mode 100644 index 0000000000000000000000000000000000000000..0409848c2eb1655bf83fe20398a203773c0d606e GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}n>}3|Ln2z= zPTt7L~%>ilsS~AXL>fny4}56i&a0|YxJySe(*;k@Th|B vqB#r>8#CgLK3tN$qIbT%PF1j+*kX7&S&s+^>bP0l+XkKXxC=~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Mobs/Animals/Magic/miniwiz.rsi/wizded.png b/Resources/Textures/_Impstation/Mobs/Animals/Magic/miniwiz.rsi/wizded.png new file mode 100644 index 0000000000000000000000000000000000000000..195038bb91d460a13b312878c06d06b9df4b0e14 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}eV#6kArY;~ z2@7o6btHDoZmkL@~=;vC1z{2fB>G)78&qol`;+0K|Go AKmY&$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Mobs/Animals/Magic/rock.rsi/meta.json b/Resources/Textures/_Impstation/Mobs/Animals/Magic/rock.rsi/meta.json new file mode 100644 index 0000000000000..5a0c645ddfbf7 --- /dev/null +++ b/Resources/Textures/_Impstation/Mobs/Animals/Magic/rock.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprited LandSharkRAWR", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "rock", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Impstation/Mobs/Animals/Magic/rock.rsi/rock.png b/Resources/Textures/_Impstation/Mobs/Animals/Magic/rock.rsi/rock.png new file mode 100644 index 0000000000000000000000000000000000000000..281c44fa4e4d79e55cb783ed6442ecb0f04b181d GIT binary patch literal 2888 zcmV-O3%B%%P)Px#1ZP1_K>z@;j|==^1pojF@<~KNRCr$HnoFovWfaFh&&?vPk4q4VFN7X~4`>jg zTp_4|w?U)CK@?4D($I!YZo`74c{T_dnT?u=!w|1r8kFUuh%!+V3RABTfm-MHwf~!S z)>+>^d!KW)fq&TSy}!r$uh+Nsch27FLC1>f9AfwG-T!dDc=2Moa^*_nSc~=R*Z;G5 z^X7bg>eQ*$^E~bcf3G?h(N`iJJa{k*<)Do-%IUD}9E@k)a^PO`kIaB|>(-^KSFfi1 z`}e0ymoB9vM~I)OkN)^IK*nPP1_PA&?2W(D<>OChqfeYTk;?vmB%>oXD_+Pv=MvEk!?GazMmC&;Yq7 zkU@L*?#%1Cq?b&s>*qaArF#-4vgRQN0;Oc7L3 ziGcAM*OW=fR6!cWkMaUCK{OVbz-AeRJA&n3LGdYVF|F}H#3HlseWRSf(}P`FTmF)q z2yNzxzsDoP0|D~9B5nn7?GHiMnunaoVd8De-xY27d)nVyUoh4h>_H1?37y)@! zzUA++Ln3P0DMiqlVvR#0Z|mTmcKR6?ty#hI=^p4D>4IFGr)%I1reD_xh1<>+q3F;^InKNf{5wu28TxrAL zbLY;jU_N@OSOU%}f)q&w1wA}}4kjdbeZUf#7(8hQA3MJbXCpQ>;ZKZaR;UNQDX`5dabU=sc*8zK8Q4nCiC#O>!;T@&hWl=U0@w@((Fef_H*Q zO6}FOWrKGDwMYEgaE-$s{wr(&0Ujoulwwjs&^`T(V?6V6Ka1m00i_W)jx9)#9E^r4-<7cLBxy!%(LGR@B@h` zb#Ve?nZsOU`0o$IWp&UqpSkGD7}~Lcc_sd#)L@{Z>OIT7O*?^hy99{T!r@2q^@qn^ z&Sw;2uAo#Etb%q)y)*Y^KJR(+?}4AvGSEWH(d#T*>=F?|2VkIt$zbm7Wv$7yJ7En~Cl=>DTBnl`6ss6w7bpfUNQ4XVTK`r31W#<7IEe>&l z(ra+QeAR=hX#hoK+EiuMB~G%yNDIGzuPz&5qh_l+z&REe=l>7zh>ETdHu@+;P(-6~ z^bwutvC|beLrGJolrXfZ)@$bZmmEo7-b-2Z7K@{lx4j!UXHRgpew8%9LV-g zr5|0;$vR3pdp)qxW@Wu5XvCWo6@XAxbYEo=$~X!j!fn6$gypCK)#cERk8Hpp(#7@x zWsCm10F1NsU|~Ar~z~^KxyNF zUx^c4;S~5F41xX*c9nCv=6WYO2Pn20K7|q;tUDZbvca}kcn(K zEGLjI5v&c7Ud4?NYfP|0ASK07gvTU(j3qMn!f=nu5t$QibU+t$l0$&i+1lb!RM_sp z1xSF>4`RSI(aAUW34LSp`wAdk^yu|EH!aCVrR^rf0zy3BB=~+ofnpiRAs$USc2XWP z8IPAq#s4DVf30000Px#1ZP1_K>z@;j|==^1poj6$w@>(RCr$Pn!QQ`K@^22zJplUSOt9oQL(TNSO+UX z>@D;uY%Bx|dl9TtSfvOt*b7Q38$t0QR?e_T#A;@pYj$?d2Vs9RbN_btGWR+mgb+dq z5y;l@MYVr^U)6`%vs7<`fbu&BL-#p@So86s8dv306jEwQ=z^fDwv|fS=F^hy;s7i4oR%tTIK6Tkn>|<<(ujisPNo)N@R< z@Tsj&nGlr<$AYvO>2nj9c0WFh%1Ew+5JCtcgb+dqAw*ZfigC<3q17rgFxAtE|zwx9|3~HqbQ`tD1mz|`w>i+oLMy<&p*C<3Ev*JFXBi5K~wtojisGz3jmImQ@S^dnF(c#F!XG5~(8Li3!z*fuDr z#Wx&dri!ZMKsb8dLU}?XU@psfqJc0WNlq#-SE~$QUCwSbi&h@*gxKgynhGzvmj9Q2 h1R;bFLWsg}?hEjPXe87)flvSd002ovPDHLkV1gmJ>KXt5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Objects/Weapons/Guns/Basic/wands.rsi/water-inhand-right.png b/Resources/Textures/_Impstation/Objects/Weapons/Guns/Basic/wands.rsi/water-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..303347447205b9068026998a269fb0016029a3e8 GIT binary patch literal 541 zcmV+&0^Px#1ZP1_K>z@;j|==^1poj6$4Nv%RCr$Pn!ifKKoG_^zJplUSRMKVqGDlvU@caH z*jwmR*jNY__99qcVReO^hrOU&Wg{p)MC1$mfyIfp$!xMqzF(6~*qzLuO)^Zz2_b|K zLWlU?s0=avT>)wnmn z35fdWqbxD@m$Rbq$Ay8hIF4suZtd;Sy|3?9(VyO&2FuD4I$$z=DL1!=)i~Ga2SY>Q zgrnp0Y`1+aXe=U6<5P4%RGlCk#^depFZBZ$%*dy1JoNNKJ95hOa?ME1xw^h@<_LH) z#h2Wo;1dn~|JxCNrou>Tk>KRY^V6v4WqK}z5JCtcgb+dqA-W>8l8m`sl-wKl2h0P- z$dH}^%)wl&X}b_>>HsK@D2Db7{4T&^Eo5X{k!C46v}XWwu?B0~G~VQ&zE#fv9|g+b zP8zNjY4;vj^$c(gWbhv!WhV=jhN4zI1CRk(G~PmH6sVYW&j95>CU=5`+$d1d7~gQn zwAxkXKsiP}hVg_>z`bJLCm1NRNRnd(?v<1Sx`1Dp&S*PHnTNF#f>PlWdIs>{-w%Zl fLI@#5eVqFN%EoRa&1^#s00000NkvXXu0mjfu=w(& literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Objects/Weapons/Guns/Basic/wands.rsi/water.png b/Resources/Textures/_Impstation/Objects/Weapons/Guns/Basic/wands.rsi/water.png new file mode 100644 index 0000000000000000000000000000000000000000..3e9614e162b0de597044f278924cab0c52600562 GIT binary patch literal 1096 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 I&s@IyZ^@&UJ^%m! literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Structures/Specific/Anomalies/anomalocarid_inner_anom_layer.rsi/meta.json b/Resources/Textures/_Impstation/Structures/Specific/Anomalies/anomalocarid_inner_anom_layer.rsi/meta.json index c8ee0b1d73acf..a0223dbe2fd05 100644 --- a/Resources/Textures/_Impstation/Structures/Specific/Anomalies/anomalocarid_inner_anom_layer.rsi/meta.json +++ b/Resources/Textures/_Impstation/Structures/Specific/Anomalies/anomalocarid_inner_anom_layer.rsi/meta.json @@ -37,7 +37,7 @@ ] ] }, - { + { "name": "shock_ANOMALOCARID", "directions": 4, "delays": [ @@ -322,6 +322,36 @@ 0.3 ] ] + }, + { + "name": "curse_ANOMALOCARID", + "directions": 4, + "delays": [ + [ + 0.5, + 0.5, + 0.5, + 0.5 + ], + [ + 0.5, + 0.5, + 0.5, + 0.5 + ], + [ + 0.5, + 0.5, + 0.5, + 0.5 + ], + [ + 0.5, + 0.5, + 0.5, + 0.5 + ] + ] } ] } diff --git a/Resources/Textures/_Impstation/Structures/Specific/Anomalies/inner_anom_layer.rsi/curse.png b/Resources/Textures/_Impstation/Structures/Specific/Anomalies/inner_anom_layer.rsi/curse.png new file mode 100644 index 0000000000000000000000000000000000000000..8d61ca9a3716a034e6b4e6553c3b49c497074c77 GIT binary patch literal 2313 zcmYjTc{r3^8-Hd@ji!hY+2yN*mlm=!W{iDrk;0_wEo6PCWS@~FYfU6&ERp4l7`rff zv`|8pk%@sW2B?7wT8kk*bgXs;@3U z>52&Nq3MhKTRpY}-YJ>+{4&#|7M$w}0X za3FV>>f)^OQS^E35iM(0+hEB>Ng6VKUF0(`CofZ<@mz|mc&G9+*CC{#qvr8}8j0!y zWNd7Dpm)U`wg?juu}|iNeHUQh?t=|+uX>_Amll>R0{QtHXx+F(R$J4oiI1~Pl8^A{ z_~2deO-$9cD2?=V8ebT1nI~_Es+BzE;!k|1^y|}5r+q5p2v@a_I}xGuwy$33bMj1# zQj`}P5#1YdMHjlG`k0Tv7e5zKz=Z79s-$E$?9O8LZJjw2Sbvxc7-ZbyoD?p4y1YN~ z9IHup$si`y;=ul(OIv_tjhKgjZCIFp(AI{|Di3DZK_E+MMvVag(#pod{7iVxVs5X$ zoRv%hez;soqx{}Mh3ujF*OC}z8QcDfb=U0L0+Mgr%*MF^x+1*88Fh%En`$SA>q2ol(n4qY*X_EmQc8IK=AjUMS^G3kj>li(&p}*rf%VJFJlJ$24h}mipUt z&JopwW!R%x% zg{hUk@%E0}h;$AMx@hYoI!=b?Yv8G&N0NXh;_8z5_6nE!jMgXg5x~2@5`SLJv3n%V|9Z8zBog6*2p1OJX>M2-LHE<^f{(@nmXg;xuf3MToe7j65dO z^4OENizX`@nz4aqK}OyRknMxE>6?t}Mu7{M_+l z**sP0z~03=X==|K4MhJ8&SoGxjtCK_(0!%l_w7tH6FWjE5YFFF83THeDtqA;g%PpJ zvfA}maP70&OWI#yZ@yUV%iYH`U#@ycL6eSytM6a0en$fOX{PVgGQW5^j`?{?_EQ)O5Nd>u;UcQLf?BO!B;BK86V@SY-JVq~U!uyI_fSzXmS06>9leT-as&gv? znfNQHFo3By-T=-E)}(E27H5AIZSCZjoeoEc(KEZcA2cpfyAHrE+}x3ss~XJ2m!5>9 z!eZBc41eedI!_@s4&!Ox%a#~5M^>VvPwfkPHZqI2vdOGac-domPxM}E8L$2Z0IWPC ziN9A7@F0J;I4tf2RJ!bBX`|(}YDb0+_s{kIk|ZDEcyxPP<#1)y=bWM@Jy!iY9-6HQ zuS_qpT#h|aMODv+?rJe|YSkY(Q6tw-MjU;-s^I{;EE-7=Pl`So21TOGXnlO^Gl#%k z_CGVf1HJjs!l5-MLGhbyaoJ1o;Oh*BC5vJ_6>qRlZKg1#X@?^?Z%xrN(%X9>$ z(ov)~_n{vXFO8boIl@2mWrJ}Glcds69?snM=KiL*wo@jLgdxAwsgE^4_ti~2zCPRE zBUFBt7Wk9(P_fb&9&k-+`2-ZIu0kDzO{$MI?>>08Gq^mS76iH?$>rf$J%_oae;;YX z?1~sA7VD!Mb=N0Nt{qN4HmBW7)q%hK18M%!Bddfd8`+7Qe2#YlJwd|1s+e-&er!Ll zh1Ls2+7x-z9E0U13rpvgaO-Y|DQ%sn@fW{YO;&90CQXZ@Jpz8kaCzx8YbbJ?;QPR8 zQqJgD+wFu+w&1xw_Yfb8JE6`gVcB^GJ(!UnfeIfY%_S9Bkv3qkgA0cE(cL!Li7E8p zj{FD&*{O(TF5Tx0<`G+nQ}5e+psc*d&rI7%v)^o%e&cD7WW!BO<&q5M6^vazd27Q3 z8E-NbedSjA3jI5POe6FKW7!?QFQZECT4+e%IF?~pTDk^K{|!(ZPG22tmk*`0S#yo7 zBmeYRYqodfPu06f3u6Mo2g$4)5hzKTpd_ZU?4lvZ=XV>G^ez?SK|wP=e--bV_)IDie#(V`M_DegaUca%N= literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Impstation/Structures/Specific/Anomalies/inner_anom_layer.rsi/curse_GRAY.png b/Resources/Textures/_Impstation/Structures/Specific/Anomalies/inner_anom_layer.rsi/curse_GRAY.png new file mode 100644 index 0000000000000000000000000000000000000000..232c97bc578e3774e5c09e49f5eece921b4be119 GIT binary patch literal 2314 zcmYjTc~sKd8vQvWYEd{fs5zviW>0J|(?)Ej1M@Ru+QV z%S83g6NZMp65{@Vr6u8h`>#g_4Ip>cO0>D$c7O!z+Tt&?Zg_m{+xElfC7W)$X@-&1iH>h(=qc-{D ziGvc99_;mg9zJgorl)aR{h@&h2@%J%E+}6-2au+G3`1L)T?-}|uO6yOzUi2z zjYW2LUnu+xF>rmFNhtV%dXnr&)3#QwRyX%X^_D5f~5T+R9isVs6CE&ew(Ob>RDUa*6K4cDv&z*~?J-`R7?%&`YReV~o zxHI85cB93DRT9yD&(6qTG2mDQL87bUPVg6rM;lb_Z!@A z&56jP!`FL}qXGdXH3rnCxv3hyL1_=kfm&k;KU0=>`wbR}OiOPtTuwN&hDOcsmk)g) zSXivq*CC&BZpSjJa-54%Sb5TS-|9$F&6E}vzgOsL&{j$K+*J+nRt12*&SG*OgFXLA z3){-n{4kW?EVpd~glDq!U1e*iG%|&eh5z$(fD@s7yZKMuzg<*ifP02^F-Oe|P17R? z^JJm#sm$D!*?GW4RlkuYt3*P2ehI%UX6UwVbYvS8j3`XglU{OC$Jgb$xjmLGSt4Xc z+f0J;m1^8rCuMvB-&8qw;v;n3EQ4AF8 zusLlDEhB3&?&RuN`4hL~ABcf1e2YRRP!HyJ-c zRiMIDa`)d>FM4+sbDDuCuuK3z)hN%2Jrh^lj7~Iu%4mScgRWQdBEoy27xe@7*H{;P zx(gpuUm|TzcYJg#iEg&mU>+HW>SM&HG`Q2&PXTw{{-o{fzv+{qC*TN_^#AP+X^VIi zcqKI4x7tMNzS>+bYv!O4zoT+9Wo&1mLo4`(IW_F`xFPNOdIC4 zu}skcs)|>WTwbOpOsn}qgkWkkSd>-PjOwAaRWFwqEjZQ=DwT5MCz;WKa?%dO@X#y( zfV7MEx$LudAsVI~T$J|}cuwo$!pwpMZY1G>K~}#|on*vA_Fizhx1o8J)t@kfTtas~ zfb$fWesIvxyk3Y?F0bhUl~asYjnbR|2l_E0-TCBaz+n)q<<7ZQQZpXr0HLA@hNbsE z$sgE!_a||-AHP1#FCL!m%olGa#NViIWFLrsGE^~Ep{?{FcCZ79IadjOgm1wYndrf? z&-A+N%84DrASAResMy-je6Ngd6~+l0`<2u^pFap3{+Cqad@qwaf6(!H9R-#p8`Y=) z`LA0H#bMgMlRgkN%DARH&RP(}T#J~t*3Z-G$aho`yx(}31^74q=nL7Ewu)WW4=FZ7 zHav@$5&jUmog`|X_end#YEa@*coj(by1Il%pPql8?x0X9x4WKHW$gQZ(T22@i&H1g zysP0vDHp}aMTn&)wk>IgFn#F}(uli+Df#M=ezrmGMW99$Q{+U}FN1UpQ-n?3#vzz$aVYD%R;D|!*goEg~{|thL3i^ zm=1qM$3o2|m+Lp{rz!KX?v{DL3%6l(_9k~<`iF|*Pvs~p)p7O?;S0erXdLSO@I#O7 zDO~oNX(qr*98Q?*XwD||qQr538>Ej)PfG;VGdnJ7{X6M&&@((tO0W~ax94C!wmu=@Slw%f>O zx&RdV9OcP4&se$ix%#yms@FUJEBxB>)97D#WH{JHD?j04R>CgN2eIQlwo->?-&!0g zfqFA&_-6d~?IewC$FyI?OdVu#oWYj+r30;Q9%eq$ebL8^wih;-!%kDze&PMkLq3FD z9Z~le8I|n3HxsYx%Ho*omML#Q_T9J-rJZ#Q6Lp&G4D71!!>oE%)Vm45_^7N+XX%&F zaY=}C9Jo}bnUzY;x}7!uMMAI^wZK(eHN?Si(I&dkMTfG-2ZjDcO!$^7wQCQR-bb8N+(uWLv-~EJWIHc=^BCCwMF4durg=5bLT#YpQ$>veBz6Gx zv(>JL(7eD zx(%_$9>#WYCtA2{-s}R Date: Tue, 17 Feb 2026 18:42:27 +0000 Subject: [PATCH 007/193] Automatic changelog update --- Resources/Changelog/Impstation.yml | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/Resources/Changelog/Impstation.yml b/Resources/Changelog/Impstation.yml index 8045703e8be2a..d561101a2df85 100644 --- a/Resources/Changelog/Impstation.yml +++ b/Resources/Changelog/Impstation.yml @@ -1,15 +1,4 @@ Entries: -- author: DinnerCalzone - changes: - - message: Woe, usptream merge be upon ye! This update includes changes from Wizden - published on July 7th and July 20th. - type: Add - - message: The janitorial welder has been removed from the janibelt and moved to - the locker (don't worry, they're still craftable at a lathe!) - type: Tweak - id: 2121 - time: '2025-08-06T10:31:48.0000000+00:00' - url: https://github.com/impstation/imp-station-14/pull/3223 - author: ATDoop changes: - message: Magnum stun projectiles should be a little more obvious. @@ -4160,3 +4149,12 @@ id: 2620 time: '2026-02-12T20:21:20.0000000+00:00' url: https://github.com/impstation/imp-station-14/pull/4083 +- author: Starlighthowls and many many many helpers + changes: + - message: Wizards have a new spell library! + type: Add + - message: Slowed the flash effect on the KILL and EAT tags. + type: Tweak + id: 2621 + time: '2026-02-17T18:41:24.0000000+00:00' + url: https://github.com/impstation/imp-station-14/pull/3606 From 39a688fa7caaaab2ca258a0c67565e2f03acb4b5 Mon Sep 17 00:00:00 2001 From: msTheowo <31812973+msTheowo@users.noreply.github.com> Date: Tue, 17 Feb 2026 14:04:31 -0500 Subject: [PATCH 008/193] make eating and drinking doafters not repeat (#3981) * imbide slowly * fix the test hopefully --- .../Tests/Nutrition/HungerThirstTest.cs | 12 ++++++++++++ .../Nutrition/EntitySystems/IngestionSystem.cs | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Content.IntegrationTests/Tests/Nutrition/HungerThirstTest.cs b/Content.IntegrationTests/Tests/Nutrition/HungerThirstTest.cs index 7a5195800ed67..de7cd3eb542f7 100644 --- a/Content.IntegrationTests/Tests/Nutrition/HungerThirstTest.cs +++ b/Content.IntegrationTests/Tests/Nutrition/HungerThirstTest.cs @@ -58,6 +58,18 @@ public async Task HungerThirstIncreaseDecreaseTest() // We eat the food in hand await UseInHand(); + // IMP START: we removed eating doafter auto-looping so you have to eat it more to actually delete it. sorry + var fullyEaten = false; + while (fullyEaten == false) + { + await AwaitDoAfters(); + await UseInHand(); + + if (HandSys.GetActiveItem((SPlayer, Hands)) != null) + fullyEaten = true; + } + // IMP END + // To see a change in hunger, we need to wait at least 30 seconds await RunSeconds(30); diff --git a/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs b/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs index 80782c85a1174..16baa49b69d8e 100644 --- a/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs +++ b/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs @@ -384,7 +384,7 @@ private void OnEatingDoAfter(Entity entity, ref EatingDoAfterEven if (!afterEv.Destroy) { - args.Repeat = afterEv.Repeat; + args.Repeat = false; // imp edit, afterEv.Repeat -> false return; } @@ -506,7 +506,7 @@ private void OnEdibleIngested(Entity entity, ref IngestedEvent }; RaiseLocalEvent(args.Target, ref ev); - args.Repeat = !args.ForceFed; + args.Repeat = false; // imp edit, !args.ForceFed -> false return; } From 84059ce1babf8d9c66f7a4c9412d4c6db0003817 Mon Sep 17 00:00:00 2001 From: mq <113324899+mqole@users.noreply.github.com> Date: Wed, 18 Feb 2026 06:04:50 +1100 Subject: [PATCH 009/193] Seclink Refactor (#4020) * third times the charm * oops * my little upmerge --- .../VendingMachines/UI/VendingMachineMenu.xaml | 8 ++++++++ .../VendingMachines/UI/VendingMachineMenu.xaml.cs | 5 ++++- .../VendingMachineBoundUserInterface.cs | 10 +++++++++- Content.Server/Store/Systems/StoreSystem.cs | 14 ++++++++++++++ .../VendingMachines/VendingMachineSystem.cs | 13 +++++++++++++ .../VendingMachines/SharedVendingMachineSystem.cs | 8 ++++++++ .../Locale/en-US/_Impstation/store/store.ftl | 2 ++ .../vending-machines/vending-machine.ftl | 1 + Resources/Prototypes/Catalog/Fills/Items/belt.yml | 2 +- .../Prototypes/Catalog/Fills/Lockers/security.yml | 10 +++++----- .../Entities/Objects/Weapons/security.yml | 5 ++++- .../Structures/Machines/vending_machines.yml | 12 ++++++++++-- .../Weapons/Guns/Disablers/seclinkdisablers.yml | 15 +++++++++++++++ .../Entities/Objects/Weapons/Melee/stunbatons.yml | 9 +++++++++ 14 files changed, 103 insertions(+), 11 deletions(-) create mode 100644 Resources/Locale/en-US/_Impstation/vending-machines/vending-machine.ftl diff --git a/Content.Client/VendingMachines/UI/VendingMachineMenu.xaml b/Content.Client/VendingMachines/UI/VendingMachineMenu.xaml index 44b1ff95e7fea..5e51d9a88c3ec 100644 --- a/Content.Client/VendingMachines/UI/VendingMachineMenu.xaml +++ b/Content.Client/VendingMachines/UI/VendingMachineMenu.xaml @@ -7,6 +7,14 @@ + + +