From dd173201ded9f5b2d710cc6647b6463a7eec04f7 Mon Sep 17 00:00:00 2001 From: Eris Date: Tue, 25 Feb 2025 16:41:38 -0500 Subject: [PATCH 01/19] THROUGHOUT HEAVEN AND EARTH ALONE, I AM THE SHITCODER PRIME (Part 1/3 of porting Lavaland) --- .../_Lavaland/Aggression/AggressorsSystem.cs | 5 + .../_Lavaland/Audio/BossMusicSystem.cs | 240 + .../_Lavaland/Mobs/DamageSquareSystem.cs | 5 + .../Shuttles/Systems/DockingConsoleSystem.cs | 5 + .../UI/DockingConsoleBoundUserInterface.cs | 39 + .../Shuttles/UI/DockingConsoleWindow.xaml | 19 + .../Shuttles/UI/DockingConsoleWindow.xaml.cs | 158 + .../Weapons/Block/BlockChargeSystem.cs | 9 + .../Ranged/Upgrades/GunUpgradeSystem.cs | 8 + .../Weapons/WeaponAttachmentSystem.cs | 26 + .../_Lavaland/Aggression/AggressorsSystem.cs | 5 + .../Commands/LavalandListingCommand.cs | 30 + .../Commands/LavalandMappingCommand.cs | 61 + .../_Lavaland/Damage/DamageSquareSystem.cs | 5 + .../EffectConditions/PressureThreshold.cs | 38 + .../Components/HierophantBossComponent.cs | 81 + .../Components/HierophantChaserComponent.cs | 25 + .../HierophantFieldGeneratorComponent.cs | 25 + .../Hierophant/HierophandClubItemSystem.cs | 131 + .../Mobs/Hierophant/HierophantChaserSystem.cs | 132 + .../Mobs/Hierophant/HierophantFieldSystem.cs | 114 + .../Mobs/Hierophant/HierophantSystem.cs | 513 + .../_Lavaland/Mobs/MegafaunaComponent.cs | 35 + .../_Lavaland/Mobs/MegafaunaEvents.cs | 19 + .../_Lavaland/Mobs/MegafaunaSystem.cs | 57 + .../Mobs/MegafaunaWeaponLooterComponent.cs | 8 + .../Pressure/PressureDamageChangeComponent.cs | 18 + .../PressureEfficiencyChangeSystem.cs | 85 + .../Components/LavalandMapComponent.cs | 29 + .../Components/LavalandMemberComponent.cs | 14 + .../Components/LavalandStationComponent.cs | 7 + .../Systems/LavalandMapOptimizationSystem.cs | 39 + .../Systems/LavalandPlanetSystem.cs | 575 + .../_Lavaland/Procedural/UnLoadChunkEvent.cs | 14 + .../_Lavaland/Salvage/ShelterCapsuleSystem.cs | 96 + .../Shuttles/Systems/DockingConsoleSystem.cs | 254 + .../Shuttles/Systems/DockingShuttleSystem.cs | 92 + .../Tendril/Components/TendrilComponent.cs | 43 + .../Tendril/Components/TendrilMobComponent.cs | 10 + .../_Lavaland/Tendril/TendrilMobDeadEvent.cs | 4 + .../_Lavaland/Tendril/TendrilSystem.cs | 128 + .../Weapons/Block/BlockChargeSystem.cs | 32 + .../Ranged/Upgrades/GunUpgradeSystem.cs | 51 + .../Weapons/WeaponAttachmentSystem.cs | 39 + .../Gamerule/LavalandStormSchedulerRule.cs | 77 + .../LavalandStormSchedulerRuleComponent.cs | 17 + .../Weather/LavalandStormedMapComponent.cs | 23 + .../Weather/LavalandWeatherSystem.cs | 139 + .../Aggression/AggressiveComponent.cs | 17 + .../Aggression/AggressorComponent.cs | 8 + .../_Lavaland/Aggression/AgressionEvents.cs | 31 + .../Aggression/SharedAggressorsSystem.cs | 123 + .../_Lavaland/Audio/BossMusicComponent.cs | 10 + .../_Lavaland/Audio/BossMusicEvents.cs | 26 + .../_Lavaland/Audio/BossMusicPrototype.cs | 31 + .../_Lavaland/Body/CursedHeartComponent.cs | 19 + .../Body/CursedHeartGrantComponent.cs | 4 + .../_Lavaland/Body/CursedHeartSystem.cs | 103 + .../_Lavaland/CCVar/CCVars.Lavaland.cs | 16 + .../Chasm/BeforeChasmFallingEvent.cs | 4 + .../Chasm/PreventChasmFallingComponent.cs | 8 + .../Chasm/PreventChasmFallingSystem.cs | 84 + .../_Lavaland/Damage/DamageSquareComponent.cs | 28 + .../Damage/DamageSquareImmunityComponent.cs | 17 + .../_Lavaland/Damage/FaunaComponent.cs | 10 + .../Damage/HierophantClubItemComponent.cs | 38 + .../Damage/HierophantClubItemEvents.cs | 9 + .../Damage/SharedDamageSquareSystem.cs | 79 + .../_Lavaland/OreBag/OreBagComponent.cs | 13 + .../_Lavaland/OreBag/OreBagSystem.cs | 38 + .../Prototypes/LavalandMapPrototype.cs | 70 + .../Prototypes/LavalandRuinPoolPrototype.cs | 35 + .../Prototypes/LavalandRuinPrototype.cs | 23 + .../Shelter/SharedShelterCapsuleSystem.cs | 77 + .../Shelter/ShelterCapsuleComponent.cs | 25 + .../ShelterCapsuleDeployDoAfterEvent.cs | 7 + .../Components/DockingConsoleComponent.cs | 42 + .../Components/DockingShuttleComponent.cs | 54 + .../Components/MiningShuttleComponent.cs | 10 + .../_Lavaland/Shuttles/DockingConsoleUI.cs | 29 + .../Systems/SharedDockingConsoleSystem.cs | 3 + .../Systems/SharedDockingShuttleSystem.cs | 3 + .../UnclaimedOre/UnclaimedOreComponent.cs | 14 + .../Weapons/AttachmentBayonetComponent.cs | 10 + .../_Lavaland/Weapons/AttachmentComponent.cs | 8 + .../Weapons/AttachmentFlashlightComponent.cs | 10 + .../Weapons/Block/BlockChargeComponent.cs | 31 + .../Weapons/Block/BlockChargeUserComponent.cs | 10 + .../Weapons/Block/SharedBlockChargeSystem.cs | 81 + .../Marker/DamageBoostOnMarkerComponent.cs | 17 + .../Ranged/Events/ProjectileShotEvent.cs | 11 + .../Components/GunComponentUpdateComponent.cs | 12 + .../Components/GunUpgradeComponent.cs | 18 + .../GunUpgradeComponentsComponent.cs | 14 + .../Components/GunUpgradeDamageComponent.cs | 14 + .../Components/GunUpgradeFireRateComponent.cs | 13 + .../Components/GunUpgradeSpeedComponent.cs | 13 + .../GunUpgradeVampirismComponent.cs | 21 + .../Components/UpgradeableGunComponent.cs | 21 + .../Ranged/Upgrades/SharedGunUpgradeSystem.cs | 228 + .../Weapons/SharedWeaponAttachmentSystem.cs | 159 + .../Weapons/WeaponAttachmentComponent.cs | 37 + .../Weather/LavalandWeatherPrototype.cs | 37 + .../_Lavaland/Mobs/Bosses/attributions.yml | 9 + .../Audio/_Lavaland/Mobs/Bosses/hiero_bgm.ogg | Bin 0 -> 743109 bytes .../_Lavaland/Mobs/Bosses/hiero_blast.ogg | Bin 0 -> 17597 bytes .../Audio/_Lavaland/Mobs/legion_spawn.ogg | Bin 0 -> 136209 bytes Resources/Audio/_Lavaland/attributions.yml | 4 + Resources/Audio/_Lavaland/heartbeat.ogg | Bin 0 -> 9088 bytes Resources/Audio/_Lavaland/readme.md | 1 + .../en-US/_Lavaland/actions/hierophant.ftl | 6 + .../_Lavaland/advertisements/miningdrobe.ftl | 3 + .../guidebook/chemistry/statuseffects.ftl | 1 + .../_Lavaland/pressure/markups_pressure.ftl | 4 + .../_Lavaland/prototypes/Actions/lava.ftl | 2 + .../Objects/Specific/gun_upgrades.ftl | 9 + .../prototypes/Research/research.ftl | 1 + .../en-US/_Lavaland/reagents/reagents.ftl | 2 + .../_Lavaland/salvage/lavaland_names.ftl | 21 + .../Locale/en-US/_Lavaland/salvage/loot.ftl | 2 + .../_Lavaland/salvage/shelter-capsule.ftl | 3 + .../en-US/_Lavaland/salvage/tendril.ftl | 1 + .../en-US/_Lavaland/weapons/attachments.ftl | 5 + .../Locale/en-US/_Lavaland/weapons/block.ftl | 4 + .../wieldable/wieldable-component.ftl | 1 + .../Lavaland/Dungeon/lavaland_interior.yml | 3049 +++ .../_Lavaland/Lavaland/common_ruin_5x5.yml | 55 + .../_Lavaland/Lavaland/outpost_lavaland.yml | 13332 ++++++++++ .../_Lavaland/Lavaland/ruin_arrivals_back.yml | 753 + .../Lavaland/ruin_arrivals_front.yml | 867 + .../_Lavaland/Lavaland/ruin_beach_biodome.yml | 4263 +++ .../_Lavaland/Lavaland/ruin_cargo_debris.yml | 134 + .../_Lavaland/Lavaland/ruin_chemistry.yml | 1420 + .../_Lavaland/Lavaland/ruin_felenid_lab.yml | 972 + .../_Lavaland/Lavaland/ruin_golem_shuttle.yml | 3510 +++ .../_Lavaland/Lavaland/ruin_graveyard.yml | 468 + .../Maps/_Lavaland/Lavaland/ruin_hermit.yml | 597 + .../Lavaland/ruin_hierophant_arena.yml | 510 + .../Maps/_Lavaland/Lavaland/ruin_lavalake.yml | 2205 ++ .../Lavaland/ruin_mining_outpost.yml | 736 + .../Maps/_Lavaland/Lavaland/ruin_rouge_ai.yml | 5446 ++++ .../_Lavaland/Lavaland/ruin_seed_vault.yml | 1768 ++ .../Maps/_Lavaland/Lavaland/ruin_shelter.yml | 299 + .../_Lavaland/Lavaland/ruin_snow_biodome.yml | 3394 +++ .../Lavaland/ruin_syndicate_base.yml | 21822 ++++++++++++++++ .../Maps/_Lavaland/Lavaland/ruin_toyshop.yml | 3668 +++ .../Maps/_Lavaland/Lavaland/ruin_vulp_lab.yml | 2122 ++ .../_Lavaland/Lavaland/ruin_wafflecohouse.yml | 1351 + .../Maps/_Lavaland/Shelters/shelter_5x5.yml | 429 + .../Maps/_Lavaland/Shelters/shelter_7x7.yml | 727 + .../Maps/_Lavaland/lavaland_playtest.yml | 3821 +++ Resources/Maps/_Lavaland/mining.yml | 495 + .../_Lavaland/Actions/cursed_heart.yml | 13 + .../_Lavaland/Actions/hierophant_club.yml | 46 + .../Catalog/Fills/Crates/necropolis.yml | 36 + .../_Lavaland/Construction/explorer_suit.yml | 30 + .../Entities/Clothing/explorer_suit.yml | 210 + .../Markers/Spawners/Random/crates.yml | 19 + .../Markers/Spawners/Random/tendril.yml | 19 + .../Entities/Mobs/Bosses/hierophant.yml | 141 + .../_Lavaland/Entities/Mobs/base.yml | 26 + .../Entities/Objects/Devices/computer.yml | 10 + .../Entities/Objects/Materials/ore.yml | 214 + .../Objects/Specific/Medical/hypospray.yml | 30 + .../Objects/Specific/Salvage/jaunter.yml | 12 + .../Specific/Salvage/lavaland_loot.yml | 30 + .../Objects/Specific/Salvage/shelter.yml | 48 + .../Objects/Specific/hierophant_telepad.yml | 14 + .../Objects/Weapons/Guns/Basic/pka.yml | 138 + .../Weapons/Guns/Projectiles/projectiles.yml | 48 + .../Entities/Objects/Weapons/crushers.yml | 208 + .../Objects/Weapons/hierophant_club.yml | 21 + .../Entities/Objects/Weapons/pka_upgrade.yml | 107 + .../Structures/Machines/vending_machines.yml | 49 + .../Entities/Structures/Specific/tendril.yml | 154 + .../Structures/Storage/Crates/necropolis.yml | 10 + .../Entities/Structures/airlocks.yml | 26 + .../Entities/Structures/computers.yml | 49 + .../_Lavaland/Entities/Structures/walls.yml | 38 + .../_Lavaland/Gamerules/roundstart.yml | 5 + .../Prototypes/_Lavaland/Maps/lavatest.yml | 15 + .../Procedural/Themes/lavaland_interior.yml | 123 + .../_Lavaland/Procedural/biome_markers.yml | 12 + .../_Lavaland/Procedural/biome_templates.yml | 80 + .../_Lavaland/Procedural/lavaland_planets.yml | 33 + .../_Lavaland/Procedural/lavaland_ruins.yml | 126 + .../_Lavaland/Procedural/lavaland_weather.yml | 13 + .../_Lavaland/Procedural/ruin_pools.yml | 29 + .../_Lavaland/Reagents/medicine.yml | 58 + .../Prototypes/_Lavaland/Recipes/salvage.yml | 29 + .../Prototypes/_Lavaland/Research/arsenal.yml | 13 + .../_Lavaland/Stacks/Materials/materials.yml | 63 + .../_Lavaland/Tiles/hiero_arena.yml | 10 + Resources/Prototypes/_Lavaland/boss_music.yml | 8 + Resources/Prototypes/_Lavaland/readme.md | 8 + Resources/Prototypes/_Lavaland/tags.yml | 20 + .../hierophant_blast-begin.png | Bin 0 -> 2130 bytes .../mob_effects.rsi/hierophant_blast-end.png | Bin 0 -> 3381 bytes .../Effects/mob_effects.rsi/meta.json | 31 + .../explorer_suit.rsi/equipped-HELMET.png | Bin 0 -> 675 bytes .../equipped-OUTERCLOTHING.png | Bin 0 -> 1328 bytes .../Equipment/explorer_suit.rsi/icon.png | Bin 0 -> 520 bytes .../Equipment/explorer_suit.rsi/icon_head.png | Bin 0 -> 316 bytes .../Equipment/explorer_suit.rsi/meta.json | 67 + .../reinforced1-equipped-HELMET.png | Bin 0 -> 717 bytes .../reinforced1-equipped-OUTERCLOTHING.png | Bin 0 -> 1661 bytes .../explorer_suit.rsi/reinforced1-icon.png | Bin 0 -> 549 bytes .../reinforced1-icon_head.png | Bin 0 -> 389 bytes .../reinforced2-equipped-HELMET.png | Bin 0 -> 537 bytes .../reinforced2-equipped-OUTERCLOTHING.png | Bin 0 -> 1854 bytes .../explorer_suit.rsi/reinforced2-icon.png | Bin 0 -> 628 bytes .../reinforced2-icon_head.png | Bin 0 -> 354 bytes .../reinforced3-equipped-HELMET.png | Bin 0 -> 660 bytes .../reinforced3-equipped-OUTERCLOTHING.png | Bin 0 -> 1897 bytes .../explorer_suit.rsi/reinforced3-icon.png | Bin 0 -> 659 bytes .../reinforced3-icon_head.png | Bin 0 -> 434 bytes .../Mobs/Bosses/hierophant.rsi/hierophant.png | Bin 0 -> 1925 bytes .../Mobs/Bosses/hierophant.rsi/meta.json | 27 + .../hierophant_club.rsi/hierophant_club.png | Bin 0 -> 481 bytes .../hierophant_club_beacon.png | Bin 0 -> 535 bytes .../hierophant_club_ready.png | Bin 0 -> 866 bytes .../hierophant_club_ready_beacon.png | Bin 0 -> 913 bytes .../Lavaland/hierophant_club.rsi/meta.json | 39 + .../Specific/Lavaland/loot.rsi/crystal.png | Bin 0 -> 1948 bytes .../Lavaland/loot.rsi/cursed_heart.png | Bin 0 -> 345 bytes .../Specific/Lavaland/loot.rsi/meta.json | 27 + .../Lavaland/loot.rsi/vavilon_book.png | Bin 0 -> 2486 bytes .../Specific/Medical/medipen.rsi/meta.json | 17 + .../Medical/medipen.rsi/survivalpen.png | Bin 0 -> 185 bytes .../Medical/medipen.rsi/survivalpen_empty.png | Bin 0 -> 195 bytes .../Specific/Salvage/capsule.rsi/capsule.png | Bin 0 -> 360 bytes .../Specific/Salvage/capsule.rsi/meta.json | 14 + .../Specific/Salvage/jaunter.rsi/icon.png | Bin 0 -> 747 bytes .../Specific/Salvage/jaunter.rsi/meta.json | 22 + .../equipped-HAND.png | Bin 0 -> 540 bytes .../crusher_claws-inhands.rsi/inhand-left.png | Bin 0 -> 438 bytes .../inhand-right.png | Bin 0 -> 561 bytes .../crusher_claws-inhands.rsi/meta.json | 31 + .../wielded-inhand-left.png | Bin 0 -> 540 bytes .../wielded-inhand-right.png | Bin 0 -> 540 bytes .../Crushers/crusher_claws.rsi/icon-lit.png | Bin 0 -> 145 bytes .../crusher_claws.rsi/icon-uncharged.png | Bin 0 -> 163 bytes .../Crushers/crusher_claws.rsi/icon.png | Bin 0 -> 510 bytes .../Crushers/crusher_claws.rsi/meta.json | 26 + .../inhand-left.png | Bin 0 -> 1363 bytes .../inhand-right.png | Bin 0 -> 1638 bytes .../crusher_hammer-inhands.rsi/meta.json | 27 + .../wielded-inhand-left.png | Bin 0 -> 1007 bytes .../wielded-inhand-right.png | Bin 0 -> 1049 bytes .../Crushers/crusher_hammer.rsi/icon-lit.png | Bin 0 -> 145 bytes .../crusher_hammer.rsi/icon-uncharged.png | Bin 0 -> 175 bytes .../Crushers/crusher_hammer.rsi/icon.png | Bin 0 -> 690 bytes .../Crushers/crusher_hammer.rsi/meta.json | 26 + .../inhand-left.png | Bin 0 -> 752 bytes .../inhand-right.png | Bin 0 -> 897 bytes .../crusher_machete-inhands.rsi/meta.json | 19 + .../Crushers/crusher_machete.rsi/icon-lit.png | Bin 0 -> 144 bytes .../crusher_machete.rsi/icon-uncharged.png | Bin 0 -> 180 bytes .../Crushers/crusher_machete.rsi/icon.png | Bin 0 -> 652 bytes .../Crushers/crusher_machete.rsi/meta.json | 26 + .../crusher_spear-inhands.rsi/inhand-left.png | Bin 0 -> 1060 bytes .../inhand-right.png | Bin 0 -> 1145 bytes .../crusher_spear-inhands.rsi/meta.json | 27 + .../wielded-inhand-left.png | Bin 0 -> 781 bytes .../wielded-inhand-right.png | Bin 0 -> 914 bytes .../Crushers/crusher_spear.rsi/icon-lit.png | Bin 0 -> 145 bytes .../crusher_spear.rsi/icon-uncharged.png | Bin 0 -> 182 bytes .../Crushers/crusher_spear.rsi/icon.png | Bin 0 -> 625 bytes .../Crushers/crusher_spear.rsi/meta.json | 26 + .../inhand-left.png | Bin 0 -> 2476 bytes .../inhand-right.png | Bin 0 -> 2466 bytes .../hierophant_club-inhands.rsi/meta.json | 71 + .../Weapons/hierophant_club.rsi/icon.png | Bin 0 -> 866 bytes .../hierophant_club.rsi/inhand-left.png | Bin 0 -> 2466 bytes .../hierophant_club.rsi/inhand-right.png | Bin 0 -> 2476 bytes .../Weapons/hierophant_club.rsi/meta.json | 82 + .../Objects/Weapons/upgrade.rsi/base.png | Bin 0 -> 255 bytes .../Objects/Weapons/upgrade.rsi/display.png | Bin 0 -> 318 bytes .../Objects/Weapons/upgrade.rsi/meta.json | 28 + .../Objects/Weapons/upgrade.rsi/overlay-1.png | Bin 0 -> 122 bytes .../Objects/Weapons/upgrade.rsi/overlay-2.png | Bin 0 -> 121 bytes .../Objects/Weapons/upgrade.rsi/overlay-3.png | Bin 0 -> 111 bytes .../hierophant_tele_off.png | Bin 0 -> 1416 bytes .../hierophant_tele_on.png | Bin 0 -> 1965 bytes .../Specific/hierophant_telepad.rsi/meta.json | 38 + .../Structures/Specific/tendril.rsi/meta.json | 14 + .../Specific/tendril.rsi/tendril.png | Bin 0 -> 2361 bytes .../Crates/necropolechest.rsi/base.png | Bin 0 -> 1173 bytes .../Crates/necropolechest.rsi/closed.png | Bin 0 -> 1173 bytes .../Crates/necropolechest.rsi/icon.png | Bin 0 -> 1173 bytes .../Crates/necropolechest.rsi/meta.json | 26 + .../Crates/necropolechest.rsi/open.png | Bin 0 -> 1096 bytes .../Crates/necropolechest.rsi/welded.png | Bin 0 -> 1173 bytes .../VendingMachines/minerdrobe.rsi/broken.png | Bin 0 -> 860 bytes .../VendingMachines/minerdrobe.rsi/meta.json | 31 + .../minerdrobe.rsi/normal-unshaded.png | Bin 0 -> 932 bytes .../VendingMachines/minerdrobe.rsi/off.png | Bin 0 -> 519 bytes .../VendingMachines/minerdrobe.rsi/panel.png | Bin 0 -> 190 bytes .../Structures/Walls/hierophant.rsi/full.png | Bin 0 -> 1604 bytes .../Walls/hierophant.rsi/hierophant0.png | Bin 0 -> 2829 bytes .../Walls/hierophant.rsi/hierophant1.png | Bin 0 -> 1901 bytes .../Walls/hierophant.rsi/hierophant2.png | Bin 0 -> 2829 bytes .../Walls/hierophant.rsi/hierophant3.png | Bin 0 -> 1901 bytes .../Walls/hierophant.rsi/hierophant4.png | Bin 0 -> 1919 bytes .../Walls/hierophant.rsi/hierophant5.png | Bin 0 -> 2755 bytes .../Walls/hierophant.rsi/hierophant6.png | Bin 0 -> 1919 bytes .../Walls/hierophant.rsi/hierophant7.png | Bin 0 -> 3009 bytes .../Structures/Walls/hierophant.rsi/meta.json | 537 + .../Walls/hierophant_temp.rsi/full.png | Bin 0 -> 331 bytes .../Walls/hierophant_temp.rsi/hierotemp0.png | Bin 0 -> 555 bytes .../Walls/hierophant_temp.rsi/hierotemp1.png | Bin 0 -> 361 bytes .../Walls/hierophant_temp.rsi/hierotemp2.png | Bin 0 -> 555 bytes .../Walls/hierophant_temp.rsi/hierotemp3.png | Bin 0 -> 361 bytes .../Walls/hierophant_temp.rsi/hierotemp4.png | Bin 0 -> 369 bytes .../Walls/hierophant_temp.rsi/hierotemp5.png | Bin 0 -> 531 bytes .../Walls/hierophant_temp.rsi/hierotemp6.png | Bin 0 -> 369 bytes .../Walls/hierophant_temp.rsi/hierotemp7.png | Bin 0 -> 255 bytes .../Walls/hierophant_temp.rsi/meta.json | 16 + Resources/Textures/_Lavaland/readme.md | 2 + 319 files changed, 87432 insertions(+) create mode 100644 Content.Client/_Lavaland/Aggression/AggressorsSystem.cs create mode 100644 Content.Client/_Lavaland/Audio/BossMusicSystem.cs create mode 100644 Content.Client/_Lavaland/Mobs/DamageSquareSystem.cs create mode 100644 Content.Client/_Lavaland/Shuttles/Systems/DockingConsoleSystem.cs create mode 100644 Content.Client/_Lavaland/Shuttles/UI/DockingConsoleBoundUserInterface.cs create mode 100644 Content.Client/_Lavaland/Shuttles/UI/DockingConsoleWindow.xaml create mode 100644 Content.Client/_Lavaland/Shuttles/UI/DockingConsoleWindow.xaml.cs create mode 100644 Content.Client/_Lavaland/Weapons/Block/BlockChargeSystem.cs create mode 100644 Content.Client/_Lavaland/Weapons/Ranged/Upgrades/GunUpgradeSystem.cs create mode 100644 Content.Client/_Lavaland/Weapons/WeaponAttachmentSystem.cs create mode 100644 Content.Server/_Lavaland/Aggression/AggressorsSystem.cs create mode 100644 Content.Server/_Lavaland/Commands/LavalandListingCommand.cs create mode 100644 Content.Server/_Lavaland/Commands/LavalandMappingCommand.cs create mode 100644 Content.Server/_Lavaland/Damage/DamageSquareSystem.cs create mode 100644 Content.Server/_Lavaland/EntityEffects/EffectConditions/PressureThreshold.cs create mode 100644 Content.Server/_Lavaland/Mobs/Hierophant/Components/HierophantBossComponent.cs create mode 100644 Content.Server/_Lavaland/Mobs/Hierophant/Components/HierophantChaserComponent.cs create mode 100644 Content.Server/_Lavaland/Mobs/Hierophant/Components/HierophantFieldGeneratorComponent.cs create mode 100644 Content.Server/_Lavaland/Mobs/Hierophant/HierophandClubItemSystem.cs create mode 100644 Content.Server/_Lavaland/Mobs/Hierophant/HierophantChaserSystem.cs create mode 100644 Content.Server/_Lavaland/Mobs/Hierophant/HierophantFieldSystem.cs create mode 100644 Content.Server/_Lavaland/Mobs/Hierophant/HierophantSystem.cs create mode 100644 Content.Server/_Lavaland/Mobs/MegafaunaComponent.cs create mode 100644 Content.Server/_Lavaland/Mobs/MegafaunaEvents.cs create mode 100644 Content.Server/_Lavaland/Mobs/MegafaunaSystem.cs create mode 100644 Content.Server/_Lavaland/Mobs/MegafaunaWeaponLooterComponent.cs create mode 100644 Content.Server/_Lavaland/Pressure/PressureDamageChangeComponent.cs create mode 100644 Content.Server/_Lavaland/Pressure/PressureEfficiencyChangeSystem.cs create mode 100644 Content.Server/_Lavaland/Procedural/Components/LavalandMapComponent.cs create mode 100644 Content.Server/_Lavaland/Procedural/Components/LavalandMemberComponent.cs create mode 100644 Content.Server/_Lavaland/Procedural/Components/LavalandStationComponent.cs create mode 100644 Content.Server/_Lavaland/Procedural/Systems/LavalandMapOptimizationSystem.cs create mode 100644 Content.Server/_Lavaland/Procedural/Systems/LavalandPlanetSystem.cs create mode 100644 Content.Server/_Lavaland/Procedural/UnLoadChunkEvent.cs create mode 100644 Content.Server/_Lavaland/Salvage/ShelterCapsuleSystem.cs create mode 100644 Content.Server/_Lavaland/Shuttles/Systems/DockingConsoleSystem.cs create mode 100644 Content.Server/_Lavaland/Shuttles/Systems/DockingShuttleSystem.cs create mode 100644 Content.Server/_Lavaland/Tendril/Components/TendrilComponent.cs create mode 100644 Content.Server/_Lavaland/Tendril/Components/TendrilMobComponent.cs create mode 100644 Content.Server/_Lavaland/Tendril/TendrilMobDeadEvent.cs create mode 100644 Content.Server/_Lavaland/Tendril/TendrilSystem.cs create mode 100644 Content.Server/_Lavaland/Weapons/Block/BlockChargeSystem.cs create mode 100644 Content.Server/_Lavaland/Weapons/Ranged/Upgrades/GunUpgradeSystem.cs create mode 100644 Content.Server/_Lavaland/Weapons/WeaponAttachmentSystem.cs create mode 100644 Content.Server/_Lavaland/Weather/Gamerule/LavalandStormSchedulerRule.cs create mode 100644 Content.Server/_Lavaland/Weather/Gamerule/LavalandStormSchedulerRuleComponent.cs create mode 100644 Content.Server/_Lavaland/Weather/LavalandStormedMapComponent.cs create mode 100644 Content.Server/_Lavaland/Weather/LavalandWeatherSystem.cs create mode 100644 Content.Shared/_Lavaland/Aggression/AggressiveComponent.cs create mode 100644 Content.Shared/_Lavaland/Aggression/AggressorComponent.cs create mode 100644 Content.Shared/_Lavaland/Aggression/AgressionEvents.cs create mode 100644 Content.Shared/_Lavaland/Aggression/SharedAggressorsSystem.cs create mode 100644 Content.Shared/_Lavaland/Audio/BossMusicComponent.cs create mode 100644 Content.Shared/_Lavaland/Audio/BossMusicEvents.cs create mode 100644 Content.Shared/_Lavaland/Audio/BossMusicPrototype.cs create mode 100644 Content.Shared/_Lavaland/Body/CursedHeartComponent.cs create mode 100644 Content.Shared/_Lavaland/Body/CursedHeartGrantComponent.cs create mode 100644 Content.Shared/_Lavaland/Body/CursedHeartSystem.cs create mode 100644 Content.Shared/_Lavaland/CCVar/CCVars.Lavaland.cs create mode 100644 Content.Shared/_Lavaland/Chasm/BeforeChasmFallingEvent.cs create mode 100644 Content.Shared/_Lavaland/Chasm/PreventChasmFallingComponent.cs create mode 100644 Content.Shared/_Lavaland/Chasm/PreventChasmFallingSystem.cs create mode 100644 Content.Shared/_Lavaland/Damage/DamageSquareComponent.cs create mode 100644 Content.Shared/_Lavaland/Damage/DamageSquareImmunityComponent.cs create mode 100644 Content.Shared/_Lavaland/Damage/FaunaComponent.cs create mode 100644 Content.Shared/_Lavaland/Damage/HierophantClubItemComponent.cs create mode 100644 Content.Shared/_Lavaland/Damage/HierophantClubItemEvents.cs create mode 100644 Content.Shared/_Lavaland/Damage/SharedDamageSquareSystem.cs create mode 100644 Content.Shared/_Lavaland/OreBag/OreBagComponent.cs create mode 100644 Content.Shared/_Lavaland/OreBag/OreBagSystem.cs create mode 100644 Content.Shared/_Lavaland/Procedural/Prototypes/LavalandMapPrototype.cs create mode 100644 Content.Shared/_Lavaland/Procedural/Prototypes/LavalandRuinPoolPrototype.cs create mode 100644 Content.Shared/_Lavaland/Procedural/Prototypes/LavalandRuinPrototype.cs create mode 100644 Content.Shared/_Lavaland/Shelter/SharedShelterCapsuleSystem.cs create mode 100644 Content.Shared/_Lavaland/Shelter/ShelterCapsuleComponent.cs create mode 100644 Content.Shared/_Lavaland/Shelter/ShelterCapsuleDeployDoAfterEvent.cs create mode 100644 Content.Shared/_Lavaland/Shuttles/Components/DockingConsoleComponent.cs create mode 100644 Content.Shared/_Lavaland/Shuttles/Components/DockingShuttleComponent.cs create mode 100644 Content.Shared/_Lavaland/Shuttles/Components/MiningShuttleComponent.cs create mode 100644 Content.Shared/_Lavaland/Shuttles/DockingConsoleUI.cs create mode 100644 Content.Shared/_Lavaland/Shuttles/Systems/SharedDockingConsoleSystem.cs create mode 100644 Content.Shared/_Lavaland/Shuttles/Systems/SharedDockingShuttleSystem.cs create mode 100644 Content.Shared/_Lavaland/UnclaimedOre/UnclaimedOreComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/AttachmentBayonetComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/AttachmentComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/AttachmentFlashlightComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Block/BlockChargeComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Block/BlockChargeUserComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Block/SharedBlockChargeSystem.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Marker/DamageBoostOnMarkerComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Events/ProjectileShotEvent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunComponentUpdateComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeComponentsComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeDamageComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeFireRateComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeSpeedComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeVampirismComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/UpgradeableGunComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.cs create mode 100644 Content.Shared/_Lavaland/Weapons/SharedWeaponAttachmentSystem.cs create mode 100644 Content.Shared/_Lavaland/Weapons/WeaponAttachmentComponent.cs create mode 100644 Content.Shared/_Lavaland/Weather/LavalandWeatherPrototype.cs create mode 100644 Resources/Audio/_Lavaland/Mobs/Bosses/attributions.yml create mode 100644 Resources/Audio/_Lavaland/Mobs/Bosses/hiero_bgm.ogg create mode 100644 Resources/Audio/_Lavaland/Mobs/Bosses/hiero_blast.ogg create mode 100644 Resources/Audio/_Lavaland/Mobs/legion_spawn.ogg create mode 100644 Resources/Audio/_Lavaland/attributions.yml create mode 100644 Resources/Audio/_Lavaland/heartbeat.ogg create mode 100644 Resources/Audio/_Lavaland/readme.md create mode 100644 Resources/Locale/en-US/_Lavaland/actions/hierophant.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/advertisements/miningdrobe.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/guidebook/chemistry/statuseffects.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/pressure/markups_pressure.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/prototypes/Actions/lava.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/prototypes/Entities/Objects/Specific/gun_upgrades.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/prototypes/Research/research.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/reagents/reagents.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/salvage/lavaland_names.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/salvage/loot.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/salvage/shelter-capsule.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/salvage/tendril.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/weapons/attachments.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/weapons/block.ftl create mode 100644 Resources/Locale/en-US/_Lavaland/wieldable/wieldable-component.ftl create mode 100644 Resources/Maps/_Lavaland/Lavaland/Dungeon/lavaland_interior.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/common_ruin_5x5.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/outpost_lavaland.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_arrivals_back.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_arrivals_front.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_beach_biodome.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_cargo_debris.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_chemistry.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_felenid_lab.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_golem_shuttle.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_graveyard.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_hermit.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_hierophant_arena.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_lavalake.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_mining_outpost.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_rouge_ai.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_seed_vault.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_shelter.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_snow_biodome.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_syndicate_base.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_toyshop.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_vulp_lab.yml create mode 100644 Resources/Maps/_Lavaland/Lavaland/ruin_wafflecohouse.yml create mode 100644 Resources/Maps/_Lavaland/Shelters/shelter_5x5.yml create mode 100644 Resources/Maps/_Lavaland/Shelters/shelter_7x7.yml create mode 100644 Resources/Maps/_Lavaland/lavaland_playtest.yml create mode 100644 Resources/Maps/_Lavaland/mining.yml create mode 100644 Resources/Prototypes/_Lavaland/Actions/cursed_heart.yml create mode 100644 Resources/Prototypes/_Lavaland/Actions/hierophant_club.yml create mode 100644 Resources/Prototypes/_Lavaland/Catalog/Fills/Crates/necropolis.yml create mode 100644 Resources/Prototypes/_Lavaland/Construction/explorer_suit.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Clothing/explorer_suit.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Markers/Spawners/Random/crates.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Markers/Spawners/Random/tendril.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Mobs/Bosses/hierophant.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Mobs/base.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Objects/Devices/computer.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Objects/Materials/ore.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Objects/Specific/Medical/hypospray.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Objects/Specific/Salvage/jaunter.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Objects/Specific/Salvage/lavaland_loot.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Objects/Specific/Salvage/shelter.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Objects/Specific/hierophant_telepad.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/crushers.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/hierophant_club.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/pka_upgrade.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Structures/Machines/vending_machines.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Structures/Specific/tendril.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Structures/Storage/Crates/necropolis.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Structures/airlocks.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Structures/computers.yml create mode 100644 Resources/Prototypes/_Lavaland/Entities/Structures/walls.yml create mode 100644 Resources/Prototypes/_Lavaland/Gamerules/roundstart.yml create mode 100644 Resources/Prototypes/_Lavaland/Maps/lavatest.yml create mode 100644 Resources/Prototypes/_Lavaland/Procedural/Themes/lavaland_interior.yml create mode 100644 Resources/Prototypes/_Lavaland/Procedural/biome_markers.yml create mode 100644 Resources/Prototypes/_Lavaland/Procedural/biome_templates.yml create mode 100644 Resources/Prototypes/_Lavaland/Procedural/lavaland_planets.yml create mode 100644 Resources/Prototypes/_Lavaland/Procedural/lavaland_ruins.yml create mode 100644 Resources/Prototypes/_Lavaland/Procedural/lavaland_weather.yml create mode 100644 Resources/Prototypes/_Lavaland/Procedural/ruin_pools.yml create mode 100644 Resources/Prototypes/_Lavaland/Reagents/medicine.yml create mode 100644 Resources/Prototypes/_Lavaland/Recipes/salvage.yml create mode 100644 Resources/Prototypes/_Lavaland/Research/arsenal.yml create mode 100644 Resources/Prototypes/_Lavaland/Stacks/Materials/materials.yml create mode 100644 Resources/Prototypes/_Lavaland/Tiles/hiero_arena.yml create mode 100644 Resources/Prototypes/_Lavaland/boss_music.yml create mode 100644 Resources/Prototypes/_Lavaland/readme.md create mode 100644 Resources/Prototypes/_Lavaland/tags.yml create mode 100644 Resources/Textures/_Lavaland/Effects/mob_effects.rsi/hierophant_blast-begin.png create mode 100644 Resources/Textures/_Lavaland/Effects/mob_effects.rsi/hierophant_blast-end.png create mode 100644 Resources/Textures/_Lavaland/Effects/mob_effects.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/equipped-OUTERCLOTHING.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/icon_head.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/reinforced1-equipped-HELMET.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/reinforced1-equipped-OUTERCLOTHING.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/reinforced1-icon.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/reinforced1-icon_head.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/reinforced2-equipped-HELMET.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/reinforced2-equipped-OUTERCLOTHING.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/reinforced2-icon.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/reinforced2-icon_head.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/reinforced3-equipped-HELMET.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/reinforced3-equipped-OUTERCLOTHING.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/reinforced3-icon.png create mode 100644 Resources/Textures/_Lavaland/Equipment/explorer_suit.rsi/reinforced3-icon_head.png create mode 100644 Resources/Textures/_Lavaland/Mobs/Bosses/hierophant.rsi/hierophant.png create mode 100644 Resources/Textures/_Lavaland/Mobs/Bosses/hierophant.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Lavaland/hierophant_club.rsi/hierophant_club.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Lavaland/hierophant_club.rsi/hierophant_club_beacon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Lavaland/hierophant_club.rsi/hierophant_club_ready.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Lavaland/hierophant_club.rsi/hierophant_club_ready_beacon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Lavaland/hierophant_club.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Lavaland/loot.rsi/crystal.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Lavaland/loot.rsi/cursed_heart.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Lavaland/loot.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Lavaland/loot.rsi/vavilon_book.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Medical/medipen.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Medical/medipen.rsi/survivalpen.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Medical/medipen.rsi/survivalpen_empty.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Salvage/capsule.rsi/capsule.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Salvage/capsule.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Salvage/jaunter.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/Salvage/jaunter.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_claws-inhands.rsi/equipped-HAND.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_claws-inhands.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_claws-inhands.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_claws-inhands.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_claws-inhands.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_claws-inhands.rsi/wielded-inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_claws.rsi/icon-lit.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_claws.rsi/icon-uncharged.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_claws.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_claws.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/wielded-inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/icon-lit.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/icon-uncharged.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_machete-inhands.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_machete-inhands.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_machete-inhands.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_machete.rsi/icon-lit.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_machete.rsi/icon-uncharged.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_machete.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_machete.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_spear-inhands.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_spear-inhands.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_spear-inhands.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_spear-inhands.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_spear-inhands.rsi/wielded-inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_spear.rsi/icon-lit.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_spear.rsi/icon-uncharged.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_spear.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_spear.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/hierophant_club-inhands.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/hierophant_club-inhands.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/hierophant_club-inhands.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/hierophant_club.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/hierophant_club.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/hierophant_club.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/hierophant_club.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/upgrade.rsi/base.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/upgrade.rsi/display.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/upgrade.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/upgrade.rsi/overlay-1.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/upgrade.rsi/overlay-2.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/upgrade.rsi/overlay-3.png create mode 100644 Resources/Textures/_Lavaland/Structures/Specific/hierophant_telepad.rsi/hierophant_tele_off.png create mode 100644 Resources/Textures/_Lavaland/Structures/Specific/hierophant_telepad.rsi/hierophant_tele_on.png create mode 100644 Resources/Textures/_Lavaland/Structures/Specific/hierophant_telepad.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Structures/Specific/tendril.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Structures/Specific/tendril.rsi/tendril.png create mode 100644 Resources/Textures/_Lavaland/Structures/Storage/Crates/necropolechest.rsi/base.png create mode 100644 Resources/Textures/_Lavaland/Structures/Storage/Crates/necropolechest.rsi/closed.png create mode 100644 Resources/Textures/_Lavaland/Structures/Storage/Crates/necropolechest.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Structures/Storage/Crates/necropolechest.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Structures/Storage/Crates/necropolechest.rsi/open.png create mode 100644 Resources/Textures/_Lavaland/Structures/Storage/Crates/necropolechest.rsi/welded.png create mode 100644 Resources/Textures/_Lavaland/Structures/VendingMachines/minerdrobe.rsi/broken.png create mode 100644 Resources/Textures/_Lavaland/Structures/VendingMachines/minerdrobe.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Structures/VendingMachines/minerdrobe.rsi/normal-unshaded.png create mode 100644 Resources/Textures/_Lavaland/Structures/VendingMachines/minerdrobe.rsi/off.png create mode 100644 Resources/Textures/_Lavaland/Structures/VendingMachines/minerdrobe.rsi/panel.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant.rsi/full.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant.rsi/hierophant0.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant.rsi/hierophant1.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant.rsi/hierophant2.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant.rsi/hierophant3.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant.rsi/hierophant4.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant.rsi/hierophant5.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant.rsi/hierophant6.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant.rsi/hierophant7.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant_temp.rsi/full.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant_temp.rsi/hierotemp0.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant_temp.rsi/hierotemp1.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant_temp.rsi/hierotemp2.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant_temp.rsi/hierotemp3.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant_temp.rsi/hierotemp4.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant_temp.rsi/hierotemp5.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant_temp.rsi/hierotemp6.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant_temp.rsi/hierotemp7.png create mode 100644 Resources/Textures/_Lavaland/Structures/Walls/hierophant_temp.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/readme.md diff --git a/Content.Client/_Lavaland/Aggression/AggressorsSystem.cs b/Content.Client/_Lavaland/Aggression/AggressorsSystem.cs new file mode 100644 index 00000000000..dbbc1b6567d --- /dev/null +++ b/Content.Client/_Lavaland/Aggression/AggressorsSystem.cs @@ -0,0 +1,5 @@ +using Content.Shared._Lavaland.Aggression; + +namespace Content.Client._Lavaland.Aggression; + +public sealed class AggressorsSystem : SharedAggressorsSystem; diff --git a/Content.Client/_Lavaland/Audio/BossMusicSystem.cs b/Content.Client/_Lavaland/Audio/BossMusicSystem.cs new file mode 100644 index 00000000000..b3e40a545b7 --- /dev/null +++ b/Content.Client/_Lavaland/Audio/BossMusicSystem.cs @@ -0,0 +1,240 @@ +using Content.Client.Audio; +using Content.Shared._Lavaland.Audio; +using Content.Shared.CCVar; +using Content.Shared.GameTicking; +using Content.Shared.Mobs; +using Robust.Client.Audio; +using Robust.Client.Player; +using Robust.Shared.Audio; +using Robust.Shared.Audio.Components; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Configuration; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; +using Robust.Shared.Timing; + +namespace Content.Client._Lavaland.Audio; + +public sealed class BossMusicSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly IConfigurationManager _configManager = default!; + [Dependency] private readonly ContentAudioSystem _audioContent = default!; + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly IPlayerManager _player = default!; + [Dependency] private readonly IGameTiming _timing = default!; + + private static float _volumeSlider; + private Entity? _bossMusicStream; + private BossMusicPrototype? _musicProto; + + // Need how much volume to change per tick and just remove it when it drops below "0" + private readonly Dictionary _fadingOut = new(); + + // Need volume change per tick + target volume. + private readonly Dictionary _fadingIn = new(); + + private readonly List _fadeToRemove = new(); + + private const float MinVolume = -32f; + private const float DefaultDuration = 2f; + + public override void Initialize() + { + base.Initialize(); + + Subs.CVar(_configManager, CCVars.LobbyMusicVolume, BossVolumeCVarChanged, true); + + SubscribeNetworkEvent(OnBossInit); + SubscribeNetworkEvent(OnBossDefeated); + + SubscribeLocalEvent(OnMindRemoved); + SubscribeLocalEvent(OnPlayerDeath); + SubscribeLocalEvent(OnPlayerParentChange); + SubscribeLocalEvent(OnRoundEnd); + } + + public override void Shutdown() + { + base.Shutdown(); + _bossMusicStream = _audio.Stop(_bossMusicStream); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + if (!_timing.IsFirstTimePredicted) + return; + + UpdateFade(frameTime); + } + + private void BossVolumeCVarChanged(float obj) + { + _volumeSlider = SharedAudioSystem.GainToVolume(obj); + + if (_bossMusicStream != null && _musicProto != null) + { + _audio.SetVolume(_bossMusicStream, _musicProto.Sound.Params.Volume + _volumeSlider); + } + } + + private void OnBossInit(BossMusicStartupEvent args) + { + if (_musicProto != null || _bossMusicStream != null) + return; + + _audioContent.DisableAmbientMusic(); + + var sound = _proto.Index(args.MusicId); + _musicProto = sound; + + var strim = _audio.PlayGlobal( + sound.Sound, + Filter.Local(), + false, + AudioParams.Default.WithVolume(sound.Sound.Params.Volume + _volumeSlider).WithLoop(true)); + + + if (_musicProto.FadeIn && strim != null) + { + _bossMusicStream = (strim.Value.Entity, strim.Value.Component); + FadeIn(_bossMusicStream, strim.Value.Component, sound.FadeInTime); + } + } + + private void OnBossDefeated(BossMusicStopEvent args) + { + EndAllMusic(); + } + + private void OnMindRemoved(LocalPlayerDetachedEvent args) + { + EndAllMusic(); + } + + private void OnPlayerDeath(Entity ent, ref MobStateChangedEvent args) + { + if (ent.Comp.PlayerSession == _player.LocalSession && + args.NewMobState == MobState.Dead) + EndAllMusic(); + } + + /// + /// Raised when salvager escapes from lavaland (ohio reference) + /// + private void OnPlayerParentChange(Entity ent, ref EntParentChangedMessage args) + { + if (ent.Comp.PlayerSession == _player.LocalSession && + args.OldMapId != null) + EndAllMusic(); + } + + private void OnRoundEnd(RoundEndMessageEvent args) + { + _bossMusicStream = _audio.Stop(_bossMusicStream); + } + + private void EndAllMusic() + { + if (_musicProto == null || _bossMusicStream == null) + return; + + if (_musicProto.FadeIn) + { + + FadeOut(_bossMusicStream, duration: _musicProto.FadeOutTime); + } + else + { + _audio.Stop(_bossMusicStream); + } + + _musicProto = null; + _bossMusicStream = null; + } + + #region Fades + + private void FadeOut(EntityUid? stream, AudioComponent? component = null, float duration = DefaultDuration) + { + if (stream == null || duration <= 0f || !Resolve(stream.Value, ref component)) + return; + + // Just in case + // TODO: Maybe handle the removals by making it seamless? + _fadingIn.Remove(stream.Value); + var diff = component.Volume - MinVolume; + _fadingOut.Add(stream.Value, diff / duration); + } + + private void FadeIn(EntityUid? stream, AudioComponent? component = null, float duration = DefaultDuration) + { + if (stream == null || duration <= 0f || !Resolve(stream.Value, ref component) || component.Volume < MinVolume) + return; + + _fadingOut.Remove(stream.Value); + var curVolume = component.Volume; + var change = (MinVolume - curVolume) / duration; + _fadingIn.Add(stream.Value, (change, component.Volume)); + component.Volume = MinVolume; + } + + private void UpdateFade(float frameTime) + { + _fadeToRemove.Clear(); + + foreach (var (stream, change) in _fadingOut) + { + if (!TryComp(stream, out AudioComponent? component)) + { + _fadeToRemove.Add(stream); + continue; + } + + var volume = component.Volume - change * frameTime; + volume = MathF.Max(MinVolume, volume); + _audio.SetVolume(stream, volume, component); + + if (component.Volume.Equals(MinVolume)) + { + _audio.Stop(stream); + _fadeToRemove.Add(stream); + } + } + + foreach (var stream in _fadeToRemove) + { + _fadingOut.Remove(stream); + } + + _fadeToRemove.Clear(); + + foreach (var (stream, (change, target)) in _fadingIn) + { + // Cancelled elsewhere + if (!TryComp(stream, out AudioComponent? component)) + { + _fadeToRemove.Add(stream); + continue; + } + + var volume = component.Volume - change * frameTime; + volume = MathF.Min(target, volume); + _audio.SetVolume(stream, volume, component); + + if (component.Volume.Equals(target)) + { + _fadeToRemove.Add(stream); + } + } + + foreach (var stream in _fadeToRemove) + { + _fadingIn.Remove(stream); + } + } + + #endregion +} diff --git a/Content.Client/_Lavaland/Mobs/DamageSquareSystem.cs b/Content.Client/_Lavaland/Mobs/DamageSquareSystem.cs new file mode 100644 index 00000000000..c897f7f814c --- /dev/null +++ b/Content.Client/_Lavaland/Mobs/DamageSquareSystem.cs @@ -0,0 +1,5 @@ +using Content.Shared._Lavaland.Damage; + +namespace Content.Client._Lavaland.Mobs; + +public sealed class DamageSquareSystem : SharedDamageSquareSystem; diff --git a/Content.Client/_Lavaland/Shuttles/Systems/DockingConsoleSystem.cs b/Content.Client/_Lavaland/Shuttles/Systems/DockingConsoleSystem.cs new file mode 100644 index 00000000000..a0bd521b34d --- /dev/null +++ b/Content.Client/_Lavaland/Shuttles/Systems/DockingConsoleSystem.cs @@ -0,0 +1,5 @@ +using Content.Shared._Lavaland.Shuttles.Systems; + +namespace Content.Client._Lavaland.Shuttles.Systems; + +public sealed class DockingConsoleSystem : SharedDockingConsoleSystem; diff --git a/Content.Client/_Lavaland/Shuttles/UI/DockingConsoleBoundUserInterface.cs b/Content.Client/_Lavaland/Shuttles/UI/DockingConsoleBoundUserInterface.cs new file mode 100644 index 00000000000..80b652279c8 --- /dev/null +++ b/Content.Client/_Lavaland/Shuttles/UI/DockingConsoleBoundUserInterface.cs @@ -0,0 +1,39 @@ +using Content.Shared._Lavaland.Shuttles; + +namespace Content.Client._Lavaland.Shuttles.UI; + +public sealed class DockingConsoleBoundUserInterface : BoundUserInterface +{ + [ViewVariables] + private DockingConsoleWindow? _window; + + public DockingConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) + { + } + + protected override void Open() + { + base.Open(); + + _window = new DockingConsoleWindow(Owner); + _window.OnFTL += index => SendMessage(new DockingConsoleFTLMessage(index)); + _window.OnShuttleCall += args => SendMessage(new DockingConsoleShuttleCheckMessage()); + _window.OnClose += Close; + _window.OpenCentered(); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + if (state is DockingConsoleState cast) + _window?.UpdateState(cast); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + + if (disposing) + _window?.Orphan(); + } +} diff --git a/Content.Client/_Lavaland/Shuttles/UI/DockingConsoleWindow.xaml b/Content.Client/_Lavaland/Shuttles/UI/DockingConsoleWindow.xaml new file mode 100644 index 00000000000..0f379427c9e --- /dev/null +++ b/Content.Client/_Lavaland/Shuttles/UI/DockingConsoleWindow.xaml @@ -0,0 +1,19 @@ + + + + + + + +